<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>KMSClient on Grafana Labs</title><link>https://grafana.com/docs/k6/v2.3.x/javascript-api/jslib/aws/kmsclient/</link><description>Recent content in KMSClient on Grafana Labs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="/docs/k6/v2.3.x/javascript-api/jslib/aws/kmsclient/index.xml" rel="self" type="application/rss+xml"/><item><title>generateDataKey</title><link>https://grafana.com/docs/k6/v2.3.x/javascript-api/jslib/aws/kmsclient/generatedatakey/</link><pubDate>Mon, 21 Sep 2026 15:16:28 +0000</pubDate><guid>https://grafana.com/docs/k6/v2.3.x/javascript-api/jslib/aws/kmsclient/generatedatakey/</guid><content><![CDATA[&lt;h1 id=&#34;generatedatakey&#34;&gt;generateDataKey&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;KMSClient.generateDataKey&lt;/code&gt; generates a symmetric data key for use outside of the AWS Key Management Service.&lt;/p&gt;
&lt;h3 id=&#34;parameters&#34;&gt;Parameters&lt;/h3&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Name&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;id&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The identifier of the key. This can be either the key ID or the Amazon Resource Name (ARN) of the key.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;size&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;number&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The length of the data key. For example, use the value 64 to generate a 512-bit data key (64 bytes is 512 bits). For 256-bit (32-byte) data keys, use the value 32, instead.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;returns&#34;&gt;Returns&lt;/h3&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Promise&amp;lt;
    &lt;a href=&#34;/docs/k6/v2.3.x/javascript-api/jslib/aws/kmsclient/kmsdatakey/&#34;&gt;KMSDataKey&lt;/a&gt;&amp;gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;A Promise that fulfills with a 
    &lt;a href=&#34;/docs/k6/v2.3.x/javascript-api/jslib/aws/kmsclient/kmskey/&#34;&gt;KMSDataKey&lt;/a&gt; object.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;example&#34;&gt;Example&lt;/h3&gt;
&lt;!-- md-k6:skip --&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JavaScript&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-javascript&#34;&gt;import exec from &amp;#39;k6/execution&amp;#39;;

import {
  AWSConfig,
  KMSClient,
} from &amp;#39;https://jslib.k6.io/aws/0.14.0/kms.js&amp;#39;;

const awsConfig = new AWSConfig({
  region: __ENV.AWS_REGION,
  accessKeyId: __ENV.AWS_ACCESS_KEY_ID,
  secretAccessKey: __ENV.AWS_SECRET_ACCESS_KEY,
});

const kms = new KMSClient(awsConfig);
const testKeyId = &amp;#39;e67f95-4c047567-4-a0b7-62f7ce8ec8f48&amp;#39;;

export default async function () {
  // List the KMS keys the AWS authentication configuration
  // gives us access to.
  const keys = await kms.listKeys();

  // If our test key does not exist, abort the execution.
  if (keys.filter((b) =&amp;gt; b.keyId === testKeyId).length == 0) {
    exec.test.abort();
  }

  // Generate a data key from the KMS key.
  const key = await kms.generateDataKey(testKeyId, 32);
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;em&gt;A k6 script that generating a data key from an AWS Key Management Service key&lt;/em&gt;&lt;/p&gt;
]]></content><description>&lt;h1 id="generatedatakey">generateDataKey&lt;/h1>
&lt;p>&lt;code>KMSClient.generateDataKey&lt;/code> generates a symmetric data key for use outside of the AWS Key Management Service.&lt;/p>
&lt;h3 id="parameters">Parameters&lt;/h3>
&lt;section class="expand-table-wrapper">&lt;div class="button-div">
&lt;button class="expand-table-btn">Expand table&lt;/button>
&lt;/div>&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">Name&lt;/th>
&lt;th style="text-align: left">Type&lt;/th>
&lt;th style="text-align: left">Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">&lt;code>id&lt;/code>&lt;/td>
&lt;td style="text-align: left">string&lt;/td>
&lt;td style="text-align: left">The identifier of the key. This can be either the key ID or the Amazon Resource Name (ARN) of the key.&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: left">&lt;code>size&lt;/code>&lt;/td>
&lt;td style="text-align: left">number&lt;/td>
&lt;td style="text-align: left">The length of the data key. For example, use the value 64 to generate a 512-bit data key (64 bytes is 512 bits). For 256-bit (32-byte) data keys, use the value 32, instead.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h3 id="returns">Returns&lt;/h3>
&lt;section class="expand-table-wrapper">&lt;div class="button-div">
&lt;button class="expand-table-btn">Expand table&lt;/button>
&lt;/div>&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">Type&lt;/th>
&lt;th style="text-align: left">Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">Promise&amp;lt;
&lt;a href="/docs/k6/v2.3.x/javascript-api/jslib/aws/kmsclient/kmsdatakey/">KMSDataKey&lt;/a>&amp;gt;&lt;/td>
&lt;td style="text-align: left">A Promise that fulfills with a
&lt;a href="/docs/k6/v2.3.x/javascript-api/jslib/aws/kmsclient/kmskey/">KMSDataKey&lt;/a> object.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h3 id="example">Example&lt;/h3>
&lt;!-- md-k6:skip -->
&lt;div class="code-snippet ">&lt;div class="lang-toolbar">
&lt;span class="lang-toolbar__item lang-toolbar__item-active">JavaScript&lt;/span>
&lt;span class="code-clipboard">
&lt;button x-data="app_code_snippet()" x-init="init()" @click="copy()">
&lt;img class="code-clipboard__icon" src="/media/images/icons/icon-copy-small-2.svg" alt="Copy code to clipboard" width="14" height="13">
&lt;span>Copy&lt;/span>
&lt;/button>
&lt;/span>
&lt;div class="lang-toolbar__border">&lt;/div>
&lt;/div>&lt;div class="code-snippet ">
&lt;pre data-expanded="false">&lt;code class="language-javascript">import exec from &amp;#39;k6/execution&amp;#39;;
import {
AWSConfig,
KMSClient,
} from &amp;#39;https://jslib.k6.io/aws/0.14.0/kms.js&amp;#39;;
const awsConfig = new AWSConfig({
region: __ENV.AWS_REGION,
accessKeyId: __ENV.AWS_ACCESS_KEY_ID,
secretAccessKey: __ENV.AWS_SECRET_ACCESS_KEY,
});
const kms = new KMSClient(awsConfig);
const testKeyId = &amp;#39;e67f95-4c047567-4-a0b7-62f7ce8ec8f48&amp;#39;;
export default async function () {
// List the KMS keys the AWS authentication configuration
// gives us access to.
const keys = await kms.listKeys();
// If our test key does not exist, abort the execution.
if (keys.filter((b) =&amp;gt; b.keyId === testKeyId).length == 0) {
exec.test.abort();
}
// Generate a data key from the KMS key.
const key = await kms.generateDataKey(testKeyId, 32);
}&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;p>&lt;em>A k6 script that generating a data key from an AWS Key Management Service key&lt;/em>&lt;/p></description></item><item><title>listKeys</title><link>https://grafana.com/docs/k6/v2.3.x/javascript-api/jslib/aws/kmsclient/listkeys/</link><pubDate>Mon, 21 Sep 2026 15:16:28 +0000</pubDate><guid>https://grafana.com/docs/k6/v2.3.x/javascript-api/jslib/aws/kmsclient/listkeys/</guid><content><![CDATA[&lt;h1 id=&#34;listkeys&#34;&gt;listKeys&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;KMSClient.listKeys()&lt;/code&gt; lists all the Key Management Service keys in the caller&amp;rsquo;s AWS account and region.&lt;/p&gt;
&lt;h3 id=&#34;returns&#34;&gt;Returns&lt;/h3&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Promise&amp;lt;
    &lt;a href=&#34;/docs/k6/v2.3.x/javascript-api/jslib/aws/kmsclient/kmskey/&#34;&gt;KMSKey[]&lt;/a&gt;&amp;gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;A Promise that fulfills with an array of 
    &lt;a href=&#34;/docs/k6/v2.3.x/javascript-api/jslib/aws/kmsclient/kmskey/&#34;&gt;&lt;code&gt;KMSKey&lt;/code&gt;&lt;/a&gt; objects.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;example&#34;&gt;Example&lt;/h3&gt;
&lt;!-- md-k6:skip --&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JavaScript&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-javascript&#34;&gt;import exec from &amp;#39;k6/execution&amp;#39;;

import {
  AWSConfig,
  KMSClient,
} from &amp;#39;https://jslib.k6.io/aws/0.14.0/kms.js&amp;#39;;

const awsConfig = new AWSConfig({
  region: __ENV.AWS_REGION,
  accessKeyId: __ENV.AWS_ACCESS_KEY_ID,
  secretAccessKey: __ENV.AWS_SECRET_ACCESS_KEY,
});

const kms = new KMSClient(awsConfig);
const testKeyId = &amp;#39;e67f95-4c047567-4-a0b7-62f7ce8ec8f48&amp;#39;;

export default async function () {
  // List the KMS keys the AWS authentication configuration
  // gives us access to.
  const keys = await kms.listKeys();

  // If our test key does not exist, abort the execution.
  if (keys.filter((b) =&amp;gt; b.keyId === testKeyId).length == 0) {
    exec.test.abort();
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;em&gt;A k6 script querying the user&amp;rsquo;s Key Management Service keys and verifying their test key exists&lt;/em&gt;&lt;/p&gt;
]]></content><description>&lt;h1 id="listkeys">listKeys&lt;/h1>
&lt;p>&lt;code>KMSClient.listKeys()&lt;/code> lists all the Key Management Service keys in the caller&amp;rsquo;s AWS account and region.&lt;/p>
&lt;h3 id="returns">Returns&lt;/h3>
&lt;section class="expand-table-wrapper">&lt;div class="button-div">
&lt;button class="expand-table-btn">Expand table&lt;/button>
&lt;/div>&lt;div class="responsive-table-wrapper">
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align: left">Type&lt;/th>
&lt;th style="text-align: left">Description&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align: left">Promise&amp;lt;
&lt;a href="/docs/k6/v2.3.x/javascript-api/jslib/aws/kmsclient/kmskey/">KMSKey[]&lt;/a>&amp;gt;&lt;/td>
&lt;td style="text-align: left">A Promise that fulfills with an array of
&lt;a href="/docs/k6/v2.3.x/javascript-api/jslib/aws/kmsclient/kmskey/">&lt;code>KMSKey&lt;/code>&lt;/a> objects.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;/section>&lt;h3 id="example">Example&lt;/h3>
&lt;!-- md-k6:skip -->
&lt;div class="code-snippet ">&lt;div class="lang-toolbar">
&lt;span class="lang-toolbar__item lang-toolbar__item-active">JavaScript&lt;/span>
&lt;span class="code-clipboard">
&lt;button x-data="app_code_snippet()" x-init="init()" @click="copy()">
&lt;img class="code-clipboard__icon" src="/media/images/icons/icon-copy-small-2.svg" alt="Copy code to clipboard" width="14" height="13">
&lt;span>Copy&lt;/span>
&lt;/button>
&lt;/span>
&lt;div class="lang-toolbar__border">&lt;/div>
&lt;/div>&lt;div class="code-snippet ">
&lt;pre data-expanded="false">&lt;code class="language-javascript">import exec from &amp;#39;k6/execution&amp;#39;;
import {
AWSConfig,
KMSClient,
} from &amp;#39;https://jslib.k6.io/aws/0.14.0/kms.js&amp;#39;;
const awsConfig = new AWSConfig({
region: __ENV.AWS_REGION,
accessKeyId: __ENV.AWS_ACCESS_KEY_ID,
secretAccessKey: __ENV.AWS_SECRET_ACCESS_KEY,
});
const kms = new KMSClient(awsConfig);
const testKeyId = &amp;#39;e67f95-4c047567-4-a0b7-62f7ce8ec8f48&amp;#39;;
export default async function () {
// List the KMS keys the AWS authentication configuration
// gives us access to.
const keys = await kms.listKeys();
// If our test key does not exist, abort the execution.
if (keys.filter((b) =&amp;gt; b.keyId === testKeyId).length == 0) {
exec.test.abort();
}
}&lt;/code>&lt;/pre>
&lt;/div>
&lt;/div>
&lt;p>&lt;em>A k6 script querying the user&amp;rsquo;s Key Management Service keys and verifying their test key exists&lt;/em>&lt;/p></description></item><item><title>KMSDataKey</title><link>https://grafana.com/docs/k6/v2.3.x/javascript-api/jslib/aws/kmsclient/kmsdatakey/</link><pubDate>Mon, 21 Sep 2026 15:16:28 +0000</pubDate><guid>https://grafana.com/docs/k6/v2.3.x/javascript-api/jslib/aws/kmsclient/kmsdatakey/</guid><content><![CDATA[&lt;h1 id=&#34;kmsdatakey&#34;&gt;KMSDataKey&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;KMSClient.*DataKey&lt;/code&gt; methods, querying Key Management Service data keys, return some KMSDataKey instances.
The KMSDataKey object describes an Amazon Key Management Service data key.
For instance, the 
    &lt;a href=&#34;/docs/k6/v2.3.x/javascript-api/jslib/aws/kmsclient/generatedatakey/&#34;&gt;&lt;code&gt;generateDataKey&lt;/code&gt;&lt;/a&gt; returns the generated KMSDataKey object.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Name&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;KMSDataKey.id&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The identifier of the Key Management Service key that encrypted the data key.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;KMSDataKey.ciphertextBlob&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The base64-encoded encrypted copy of the data key.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;KMSDataKey.plaintext&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;The plain text data key. Use this data key to encrypt your data outside of Key Management Service. Then, remove it from memory as soon as possible.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;example&#34;&gt;Example&lt;/h3&gt;
&lt;!-- md-k6:skip --&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JavaScript&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-javascript&#34;&gt;import exec from &amp;#39;k6/execution&amp;#39;;

import {
  AWSConfig,
  KMSClient,
} from &amp;#39;https://jslib.k6.io/aws/0.14.0/kms.js&amp;#39;;

const awsConfig = new AWSConfig({
  region: __ENV.AWS_REGION,
  accessKeyId: __ENV.AWS_ACCESS_KEY_ID,
  secretAccessKey: __ENV.AWS_SECRET_ACCESS_KEY,
});

const kms = new KMSClient(awsConfig);
const testKeyId = &amp;#39;e67f95-4c047567-4-a0b7-62f7ce8ec8f48&amp;#39;;

export default async function () {
  // List the KMS keys the AWS authentication configuration
  // gives us access to.
  const keys = await kms.listKeys();

  // If our test key does not exist, abort the execution.
  if (keys.filter((b) =&amp;gt; b.keyId === testKeyId).length == 0) {
    exec.test.abort();
  }

  // Generate a data key from the KMS key.
  const key = await kms.generateDataKey(testKeyId, 32);
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;em&gt;A k6 script that generating a data key from an AWS Key Management Service key&lt;/em&gt;&lt;/p&gt;
]]></content><description>&lt;h1 id="kmsdatakey">KMSDataKey&lt;/h1>
&lt;p>&lt;code>KMSClient.*DataKey&lt;/code> methods, querying Key Management Service data keys, return some KMSDataKey instances.
The KMSDataKey object describes an Amazon Key Management Service data key.
For instance, the
&lt;a href="/docs/k6/v2.3.x/javascript-api/jslib/aws/kmsclient/generatedatakey/">&lt;code>generateDataKey&lt;/code>&lt;/a> returns the generated KMSDataKey object.&lt;/p></description></item><item><title>KMSKey</title><link>https://grafana.com/docs/k6/v2.3.x/javascript-api/jslib/aws/kmsclient/kmskey/</link><pubDate>Mon, 21 Sep 2026 15:16:28 +0000</pubDate><guid>https://grafana.com/docs/k6/v2.3.x/javascript-api/jslib/aws/kmsclient/kmskey/</guid><content><![CDATA[&lt;h1 id=&#34;kmskey&#34;&gt;KMSKey&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;KMSClient.*&lt;/code&gt; methods querying Key Management Service keys return some &lt;code&gt;KMSKey&lt;/code&gt; instances. Namely, &lt;code&gt;listKeys()&lt;/code&gt; returns an array of &lt;code&gt;KMSKey&lt;/code&gt; objects. The &lt;code&gt;KMSKey&lt;/code&gt; object describes an Amazon Key Management Service key.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Name&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;
              &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;KMSKey.keyId&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;Unique identifier of the key&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;KMSKey.keyArn&lt;/code&gt;&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;
              &lt;td style=&#34;text-align: left&#34;&gt;ARN of the key&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;example&#34;&gt;Example&lt;/h3&gt;
&lt;!-- md-k6:skip --&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JavaScript&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-javascript&#34;&gt;import exec from &amp;#39;k6/execution&amp;#39;;

import {
  AWSConfig,
  KMSClient,
} from &amp;#39;https://jslib.k6.io/aws/0.14.0/kms.js&amp;#39;;

const awsConfig = new AWSConfig({
  region: __ENV.AWS_REGION,
  accessKeyId: __ENV.AWS_ACCESS_KEY_ID,
  secretAccessKey: __ENV.AWS_SECRET_ACCESS_KEY,
});

const kms = new KMSClient(awsConfig);
const testKeyId = &amp;#39;e67f95-4c047567-4-a0b7-62f7ce8ec8f48&amp;#39;;

export default async function () {
  // List the KMS keys the AWS authentication configuration
  // gives us access to.
  const keys = await kms.listKeys();

  // If our test key does not exist, abort the execution.
  if (keys.filter((b) =&amp;gt; b.keyId === testKeyId).length == 0) {
    exec.test.abort();
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;em&gt;A k6 script querying the user&amp;rsquo;s Key Management Service keys and verifying their test key exists&lt;/em&gt;&lt;/p&gt;
]]></content><description>&lt;h1 id="kmskey">KMSKey&lt;/h1>
&lt;p>&lt;code>KMSClient.*&lt;/code> methods querying Key Management Service keys return some &lt;code>KMSKey&lt;/code> instances. Namely, &lt;code>listKeys()&lt;/code> returns an array of &lt;code>KMSKey&lt;/code> objects. The &lt;code>KMSKey&lt;/code> object describes an Amazon Key Management Service key.&lt;/p></description></item></channel></rss>