

Doc AWS SDK Examples GitHub リポジトリには、他にも SDK の例があります。 [AWS](https://github.com/awsdocs/aws-doc-sdk-examples)

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS KMS を使用した の例 AWS CLI
<a name="cli_2_kms_code_examples"></a>

次のコード例は、 AWS Command Line Interface で を使用してアクションを実行し、一般的なシナリオを実装する方法を示しています AWS KMS。

*アクション*はより大きなプログラムからのコードの抜粋であり、コンテキスト内で実行する必要があります。アクションは個々のサービス機能を呼び出す方法を示していますが、コンテキスト内のアクションは、関連するシナリオで確認できます。

各例には完全なソースコードへのリンクが含まれており、コードの設定方法と実行方法に関する手順を確認できます。

**Topics**
+ [アクション](#actions)

## アクション
<a name="actions"></a>

### `cancel-key-deletion`
<a name="kms_CancelKeyDeletion_cli_2_topic"></a>

次のコード例は、`cancel-key-deletion` を使用する方法を示しています。

**AWS CLI**  
**カスタマーマネージド KMS キーのスケジュールされた削除をキャンセルするには**  
次の `cancel-key-deletion` の例では、カスタマーマネージド KMS キーのスケジュールされた削除をキャンセルします。  

```
aws kms cancel-key-deletion \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```
出力:  

```
{
    "KeyId": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab"
}
```
`cancel-key-deletion` コマンドが成功すると、スケジュールされた削除はキャンセルされます。ただし、KMS キーのキー状態は `Disabled` であるため、暗号化オペレーションで KMS キーを使用することはできません。機能を復元するには、`enable-key` コマンドを使用します。  
詳細については、「*AWS Key Management Service デベロッパーガイド*」の「[キーの削除のスケジュールとキャンセル](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html#deleting-keys-scheduling-key-deletion)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[CancelKeyDeletion](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/cancel-key-deletion.html)」を参照してください。

### `connect-custom-key-store`
<a name="kms_ConnectCustomKeyStore_cli_2_topic"></a>

次のコード例は、`connect-custom-key-store` を使用する方法を示しています。

**AWS CLI**  
**カスタムキーストアを接続するには**  
次の `connect-custom-key-store` の例では、指定されたカスタムキーストアを再接続します。このようなコマンドを使用すると、カスタムキーストアを初めて接続したり、切断されたキーストアを再接続したりできます。  
このコマンドを使用して、 AWS CloudHSM キーストアまたは外部キーストアを接続できます。  

```
aws kms connect-custom-key-store \
    --custom-key-store-id cks-1234567890abcdef0
```
このコマンドは出力を返しません。コマンドが有効であることを確認するには、`describe-custom-key-stores` コマンドを使用します。  
 AWS CloudHSM キーストアの接続については、[「 Key Management Service デベロッパーガイド」の AWS CloudHSM キーストアの接続と切断](https://docs.aws.amazon.com/kms/latest/developerguide/disconnect-keystore.html)」を参照してください。 *AWS *  
外部キーストアの接続については、「*AWS Key Management Service デベロッパーガイド*」の「[外部キーストアの接続と切断](https://docs.aws.amazon.com/kms/latest/developerguide/xks-connect-disconnect.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[ConnectCustomKeyStore](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/connect-custom-key-store.html)」を参照してください。

### `create-alias`
<a name="kms_CreateAlias_cli_2_topic"></a>

次のコード例は、`create-alias` を使用する方法を示しています。

**AWS CLI**  
**KMS キーのエイリアスを作成するには**  
次の `create-alias` コマンドは、キー ID `1234abcd-12ab-34cd-56ef-1234567890ab` で識別される KMS キーの `example-alias` という名前のエイリアスを作成します。  
エイリアス名は `alias/` で始める必要があります。で始まるエイリアス名は使用しないでください`alias/aws`。これらは で使用するために予約されています AWS。  

```
aws kms create-alias \
    --alias-name alias/example-alias \
    --target-key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```
このコマンドは出力を返しません。新しいエイリアスを確認するには、`list-aliases` コマンドを使用します。  
詳細については、「AWS Key Management Service デベロッパーガイド」の「[エイリアスの使用](https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html)」を参照してください。**  
+  API の詳細については、AWS CLI コマンドリファレンスの「[CreateAlias](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/create-alias.html)」を参照してください。**

### `create-custom-key-store`
<a name="kms_CreateCustomKeyStore_cli_2_topic"></a>

次の例は、`create-custom-key-store` を使用する方法を説明しています。

**AWS CLI**  
**例 1: AWS CloudHSM キーストアを作成するには**  
次の の`create-custom-key-store`例では、必要なパラメータを使用して AWS CloudHSM クラスターによってバックアップされた AWS CloudHSM キーストアを作成します。また、`custom-key-store-type``parameter with the default value: ``AWS_CLOUDHSM` を追加することもできます  
 AWS CLI で `trust-anchor-certificate` コマンドのファイル入力を指定するには、 `file://` プレフィックスが必要です。  

```
aws kms create-custom-key-store \
    --custom-key-store-name ExampleCloudHSMKeyStore \
    --cloud-hsm-cluster-id cluster-1a23b4cdefg \
    --key-store-password kmsPswd \
    --trust-anchor-certificate file://customerCA.crt
```
出力:  

```
{
    "CustomKeyStoreId": cks-1234567890abcdef0
}
```
詳細については、「 Key Management Service [デベロッパーガイド」の AWS CloudHSM キーストア](https://docs.aws.amazon.com/kms/latest/developerguide/create-keystore.html)の作成」を参照してください。 *AWS *  
**例 2: パブリックエンドポイント接続を使用する外部キーストアを作成するには**  
次の`create-custom-key-store`例では、インターネット経由で KMS と通信する外部キーストア (XKS) AWS を作成します。  
この例では、`XksProxyUriPath` はオプションのプレフィックス `example-prefix` を使用します。  
注: AWS CLI バージョン 1.0 を使用する場合は、XksProxyUriEndpoint パラメータなどの HTTP または HTTPS 値を持つパラメータを指定する前に、次のコマンドを実行します。  

```
aws configure set cli_follow_urlparam false
```
それ以外の場合、 AWS CLI バージョン 1.0 はパラメータ値をその URI アドレスにあるコンテンツに置き換えます。  

```
aws kms create-custom-key-store \
    --custom-key-store-name ExamplePublicEndpointXKS \
    --custom-key-store-type EXTERNAL_KEY_STORE \
    --xks-proxy-connectivity PUBLIC_ENDPOINT \
    --xks-proxy-uri-endpoint "https://myproxy.xks.example.com" \
    --xks-proxy-uri-path "/example-prefix/kms/xks/v1" \
    --xks-proxy-authentication-credential "AccessKeyId=ABCDE12345670EXAMPLE, RawSecretAccessKey=DXjSUawnel2fr6SKC7G25CNxTyWKE5PF9XX6H/u9pSo="
```
出力:  

```
{
    "CustomKeyStoreId": cks-2234567890abcdef0
}
```
詳細については、「AWS Key Management Service デベロッパーガイド」の「[外部キーストアの作成](https://docs.aws.amazon.com/kms/latest/developerguide/create-keystorecreate-xks-keystore.html)」を参照してください。**  
**例 3: VPC エンドポイントサービス接続を使用する外部キーストアを作成するには**  
次の`create-custom-key-store`例では、Amazon VPC エンドポイントサービスを使用して KMS と通信する外部キーストア (XKS) AWS を作成します。  
注: AWS CLI バージョン 1.0 を使用する場合は、XksProxyUriEndpoint パラメータなどの HTTP または HTTPS 値を持つパラメータを指定する前に、次のコマンドを実行します。  

```
aws configure set cli_follow_urlparam false
```
それ以外の場合、 AWS CLI バージョン 1.0 はパラメータ値をその URI アドレスにあるコンテンツに置き換えます。  

```
aws kms create-custom-key-store \
    --custom-key-store-name ExampleVPCEndpointXKS \
    --custom-key-store-type EXTERNAL_KEY_STORE \
    --xks-proxy-connectivity VPC_ENDPOINT_SERVICE \
    --xks-proxy-uri-endpoint "https://myproxy-private.xks.example.com" \
    --xks-proxy-uri-path "/kms/xks/v1" \
    --xks-proxy-vpc-endpoint-service-name "com.amazonaws.vpce.us-east-1.vpce-svc-example1" \
    --xks-proxy-authentication-credential "AccessKeyId=ABCDE12345670EXAMPLE, RawSecretAccessKey=DXjSUawnel2fr6SKC7G25CNxTyWKE5PF9XX6H/u9pSo="
```
出力:  

```
{
    "CustomKeyStoreId": cks-3234567890abcdef0
}
```
詳細については、「AWS Key Management Service デベロッパーガイド」の「[外部キーストアの作成](https://docs.aws.amazon.com/kms/latest/developerguide/create-keystorecreate-xks-keystore.html)」を参照してください。**  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[CreateCustomKeyStore](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/create-custom-key-store.html)」を参照してください。

### `create-grant`
<a name="kms_CreateGrant_cli_2_topic"></a>

次のコード例は、`create-grant` を使用する方法を示しています。

**AWS CLI**  
**権限を作成するには**  
次の `create-grant` の例は、`exampleUser` ユーザーが `1234abcd-12ab-34cd-56ef-1234567890ab` の KMS キーで `decrypt` コマンドを使用する権限を作成します。廃止するプリンシパルは `adminRole` ロールです。この権限は `EncryptionContextSubset` 権限の制約を使用して `"Department": "IT"` キー値ペアを含む `decrypt` リクエストでの暗号化のみを許可します。  

```
aws kms create-grant \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --grantee-principal arn:aws:iam::123456789012:user/exampleUser \
    --operations Decrypt \
    --constraints EncryptionContextSubset={Department=IT} \
    --retiring-principal arn:aws:iam::123456789012:role/adminRole
```
出力:  

```
{
    "GrantId": "1a2b3c4d2f5e69f440bae30eaec9570bb1fb7358824f9ddfa1aa5a0dab1a59b2",
    "GrantToken": "<grant token here>"
}
```
権限に関する詳細情報を表示するには、`list-grants` コマンドを使用します。  
詳細については、*AWS 「 Key Management Service デベロッパーガイド*」の[「KMS AWS でのグラン](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)ト」を参照してください。  
+  API の詳細については、AWS CLI コマンドリファレンスの「[CreateGrant](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/create-grant.html)」を参照してください。**

### `create-key`
<a name="kms_CreateKey_cli_2_topic"></a>

次の例は、`create-key` を使用する方法を説明しています。

**AWS CLI**  
**例 1: KMS でカスタマーマネージド KMS AWS キーを作成するには**  
次の `create-key` の例は、対称暗号化 KMS キーを作成します。  
基本的な KMS キー (対称暗号化キー) を作成するには、パラメータを指定する必要はありません。対称暗号化キーは、これらのパラメータのデフォルト値によって作成されます。  
このコマンドはキーポリシーを指定しないため、KMS キーにはプログラムで作成された KMS キーの[デフォルトキーポリシー](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default)が適用されます。キーポリシーを表示するには、`get-key-policy` コマンドを使用します。キーポリシーを変更するには、`put-key-policy` コマンドを使用します。  

```
aws kms create-key
```
この `create-key` コマンドは、新しい KMS キーのキー ID と ARN を含むキーメタデータを返します。これらの値を使用して、他の KMS オペレーションで KMS AWS キーを識別できます。出力にはタグは含まれません。KMS キーのタグを表示するには、`list-resource-tags command` を使用します。  
出力:  

```
{
    "KeyMetadata": {
        "AWSAccountId": "111122223333",
        "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
        "CreationDate": "2017-07-05T14:04:55-07:00",
        "CurrentKeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6",
        "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
        "Description": "",
        "Enabled": true,
        "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "KeyManager": "CUSTOMER",
        "KeySpec": "SYMMETRIC_DEFAULT",
        "KeyState": "Enabled",
        "KeyUsage": "ENCRYPT_DECRYPT",
        "MultiRegion": false,
        "Origin": "AWS_KMS"
        "EncryptionAlgorithms": [
            "SYMMETRIC_DEFAULT"
        ]
    }
}
```
注: この `create-key` コマンドではエイリアスを指定できません。新しい KMS キーのエイリアスを作成するには、`create-alias` コマンドを使用してください。  
詳細については、「AWS Key Management Service デベロッパーガイド」の「[キーの作成](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)」を参照してください。**  
**例 2: 暗号化と復号用の非対称 RSA KMS キーを作成するには**  
次の `create-key` の例は、暗号化と復号用の非対称 RSA キーペアを含む KMS キーを作成します。キーの作成後は、キー仕様とキーの使用方法を変更することはできません。  

```
aws kms create-key \
   --key-spec RSA_4096 \
   --key-usage ENCRYPT_DECRYPT
```
出力:  

```
{
    "KeyMetadata": {
        "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
        "AWSAccountId": "111122223333",
        "CreationDate": "2021-04-05T14:04:55-07:00",
        "CustomerMasterKeySpec": "RSA_4096",
        "Description": "",
        "Enabled": true,
        "EncryptionAlgorithms": [
            "RSAES_OAEP_SHA_1",
            "RSAES_OAEP_SHA_256"
        ],
        "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "KeyManager": "CUSTOMER",
        "KeySpec": "RSA_4096",
        "KeyState": "Enabled",
        "KeyUsage": "ENCRYPT_DECRYPT",
        "MultiRegion": false,
        "Origin": "AWS_KMS"
    }
}
```
詳細については、「 Key Management Service デベロッパーガイド」の[「KMS AWS の非対称](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)キー」を参照してください。 *AWS *  
**例 3: 署名と検証用に非対称楕円曲線 KMS キーを作成するには**  
署名と検証用に非対称楕円曲線 (ECC) キーペアを持つ非対称 KMS キーを作成します。`SIGN_VERIFY` は ECC KMS キーの唯一の有効な値ですが、`--key-usage` パラメータは必須です。キーの作成後は、キー仕様とキーの使用方法を変更することはできません。  

```
aws kms create-key \
    --key-spec ECC_NIST_P521 \
    --key-usage SIGN_VERIFY
```
出力:  

```
{
    "KeyMetadata": {
        "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
        "AWSAccountId": "111122223333",
        "CreationDate": "2019-12-02T07:48:55-07:00",
        "CustomerMasterKeySpec": "ECC_NIST_P521",
        "Description": "",
        "Enabled": true,
        "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "KeyManager": "CUSTOMER",
        "KeySpec": "ECC_NIST_P521",
        "KeyState": "Enabled",
        "KeyUsage": "SIGN_VERIFY",
        "MultiRegion": false,
        "Origin": "AWS_KMS",
        "SigningAlgorithms": [
            "ECDSA_SHA_512"
        ]
    }
}
```
詳細については、「 Key Management Service デベロッパーガイド」の[「KMS AWS の非対称](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)キー」を参照してください。 *AWS *  
**例 4: 署名と検証用に非対称 ML-DSA KMS キーを作成するには**  
この例では、署名と検証用の Module-Lattice Digital Signature Algorithm (ML-DSA) キーを作成します。`SIGN_VERIFY` は ML-DSA キーの唯一の有効な値ですが、key-usage パラメータは必須です。  

```
aws kms create-key \
    --key-spec ML_DSA_65 \
    --key-usage SIGN_VERIFY
```
出力:  

```
{
    "KeyMetadata": {
        "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
        "AWSAccountId": "111122223333",
        "CreationDate": "2019-12-02T07:48:55-07:00",
        "Description": "",
        "Enabled": true,
        "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "KeyManager": "CUSTOMER",
        "KeySpec": "ML_DSA_65",
        "KeyState": "Enabled",
        "KeyUsage": "SIGN_VERIFY",
        "MultiRegion": false,
        "Origin": "AWS_KMS",
        "SigningAlgorithms": [
            "ML_DSA_SHAKE_256"
        ]
    }
}
```
詳細については、「 Key Management Service デベロッパーガイド」の[「KMS AWS の非対称](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)キー」を参照してください。 *AWS *  
**例 5: HMAC KMS キーを作成するには**  
次の `create-key` の例は、384-bit HMAC KMS キーを作成します。`--key-usage` パラメータの値 `GENERATE_VERIFY_MAC` は HMAC KMS キーの唯一の有効な値ですが、この値は必須です。  

```
aws kms create-key \
    --key-spec HMAC_384 \
    --key-usage GENERATE_VERIFY_MAC
```
出力:  

```
{
    "KeyMetadata": {
        "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
        "AWSAccountId": "111122223333",
        "CreationDate": "2022-04-05T14:04:55-07:00",
        "CustomerMasterKeySpec": "HMAC_384",
        "Description": "",
        "Enabled": true,
        "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "KeyManager": "CUSTOMER",
        "KeySpec": "HMAC_384",
        "KeyState": "Enabled",
        "KeyUsage": "GENERATE_VERIFY_MAC",
        "MacAlgorithms": [
            "HMAC_SHA_384"
        ],
        "MultiRegion": false,
        "Origin": "AWS_KMS"
    }
}
```
詳細については、「 Key Management Service デベロッパーガイド」の[「KMS AWS の HMAC キー](https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html)」を参照してください。 *AWS *  
**例 6: マルチリージョンのプライマリ KMS キーを作成するには**  
次の `create-key` の例は、マルチリージョンのプライマリ対称暗号化キーを作成します。すべてのパラメータのデフォルト値によって対称暗号化キーが作成されるため、この KMS キーに必要なのは `--multi-region` パラメータだけです。 AWS CLI で、ブールパラメータが true であることを示すには、パラメータ名を指定します。  

```
aws kms create-key \
    --multi-region
```
出力:  

```
{
    "KeyMetadata": {
        "Arn": "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef12345678990ab",
        "AWSAccountId": "111122223333",
        "CreationDate": "2021-09-02T016:15:21-09:00",
        "CurrentKeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6",
        "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
        "Description": "",
        "Enabled": true,
        "EncryptionAlgorithms": [
          "SYMMETRIC_DEFAULT"
        ],
        "KeyId": "mrk-1234abcd12ab34cd56ef12345678990ab",
        "KeyManager": "CUSTOMER",
        "KeySpec": "SYMMETRIC_DEFAULT",
        "KeyState": "Enabled",
        "KeyUsage": "ENCRYPT_DECRYPT",
        "MultiRegion": true,
        "MultiRegionConfiguration": {
            "MultiRegionKeyType": "PRIMARY",
            "PrimaryKey": {
                "Arn": "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef12345678990ab",
                "Region": "us-west-2"
            },
            "ReplicaKeys": []
        },
        "Origin": "AWS_KMS"
    }
}
```
詳細については、「 Key Management Service デベロッパーガイド」の[「KMS AWS の非対称](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)キー」を参照してください。 *AWS *  
**例 7: インポートされたキーマテリアルの KMS キーを作成するには**  
次の `create-key` の例は、キーマテリアルなしで KMS キーを作成します。操作が完了すると、独自のキーマテリアルを KMS キーにインポートできます。この KMS キーを作成するには、`--origin` パラメータを `EXTERNAL` に設定します。  

```
aws kms create-key \
    --origin EXTERNAL
```
出力:  

```
{
     "KeyMetadata": {
         "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
         "AWSAccountId": "111122223333",
         "CreationDate": "2019-12-02T07:48:55-07:00",
         "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
         "Description": "",
         "Enabled": false,
         "EncryptionAlgorithms": [
             "SYMMETRIC_DEFAULT"
         ],
         "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
         "KeyManager": "CUSTOMER",
         "KeySpec": "SYMMETRIC_DEFAULT",
         "KeyState": "PendingImport",
         "KeyUsage": "ENCRYPT_DECRYPT",
         "MultiRegion": false,
         "Origin": "EXTERNAL"
     }
 }
```
詳細については、[「 Key Management Service デベロッパーガイド」の「KMS AWS キーでのキーマテリアルのインポート](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html)」を参照してください。 *AWS *  
**例 6: AWS CloudHSM キーストアに KMS キーを作成するには**  
次の の`create-key`例では、指定された AWS CloudHSM キーストアに KMS キーを作成します。オペレーションは、KMS で KMS AWS キーとそのメタデータを作成し、カスタムキーストアに関連付けられた AWS CloudHSM クラスターにキーマテリアルを作成します。`--custom-key-store-id` および `--origin` パラメータが必要です。  

```
aws kms create-key \
    --origin AWS_CLOUDHSM \
    --custom-key-store-id cks-1234567890abcdef0
```
出力:  

```
{
    "KeyMetadata": {
        "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
        "AWSAccountId": "111122223333",
        "CloudHsmClusterId": "cluster-1a23b4cdefg",
        "CreationDate": "2019-12-02T07:48:55-07:00",
        "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
        "CustomKeyStoreId": "cks-1234567890abcdef0",
        "Description": "",
        "Enabled": true,
        "EncryptionAlgorithms": [
            "SYMMETRIC_DEFAULT"
        ],
        "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "KeyManager": "CUSTOMER",
        "KeySpec": "SYMMETRIC_DEFAULT",
        "KeyState": "Enabled",
        "KeyUsage": "ENCRYPT_DECRYPT",
        "MultiRegion": false,
        "Origin": "AWS_CLOUDHSM"
    }
}
```
詳細については、「AWS Key Management Service デベロッパーガイド」の「[AWS CloudHSM キーストア](https://docs.aws.amazon.com/kms/latest/developerguide/keystore-cloudhsm.html)」を参照してください。**  
**例 8: 外部キーストアに KMS キーを作成するには**  
次の `create-key` の例は、指定された外部キーストアに KMS キーを作成します。このコマンドでは、`--custom-key-store-id`、`--origin`、および `--xks-key-id` パラメータが必須です。  
`--xks-key-id` パラメータは、外部キーマネージャーにある既存の対称暗号化キーの ID を指定します。このキーは KMS キーの外部キーマテリアルとして機能します。`--origin` パラメータの値は、`EXTERNAL_KEY_STORE` である必要があります。`custom-key-store-id` パラメータは、外部キーストアプロキシに接続されている外部キーストアを識別する必要があります。  

```
aws kms create-key \
    --origin EXTERNAL_KEY_STORE \
    --custom-key-store-id cks-9876543210fedcba9 \
    --xks-key-id bb8562717f809024
```
出力:  

```
{
    "KeyMetadata": {
        "Arn": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
        "AWSAccountId": "111122223333",
        "CreationDate": "2022-12-02T07:48:55-07:00",
        "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
        "CustomKeyStoreId": "cks-9876543210fedcba9",
        "Description": "",
        "Enabled": true,
        "EncryptionAlgorithms": [
            "SYMMETRIC_DEFAULT"
        ],
        "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "KeyManager": "CUSTOMER",
        "KeySpec": "SYMMETRIC_DEFAULT",
        "KeyState": "Enabled",
        "KeyUsage": "ENCRYPT_DECRYPT",
        "MultiRegion": false,
        "Origin": "EXTERNAL_KEY_STORE",
        "XksKeyConfiguration": {
            "Id": "bb8562717f809024"
        }
    }
}
```
詳細については、「AWS Key Management Service デベロッパーガイド」の「[外部キーストア](https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html)」を参照してください。**  
+  API の詳細については、AWS CLI コマンドリファレンスの「[CreateKey](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/create-key.html)」を参照してください。**

### `decrypt`
<a name="kms_Decrypt_cli_2_topic"></a>

次のコード例は、`decrypt` を使用する方法を示しています。

**AWS CLI**  
**例 1: 対称 KMS キーを使用して暗号化されたメッセージを復号するには (Linux および macOS)**  
次の`decrypt`コマンド例は、 AWS CLI でデータを復号化するための推奨方法を示しています。このバージョンは、対称 KMS キーを使用してデータを復号する方法を示しています。  
ファイルに暗号文を指定します。`--ciphertext-blob` パラメータの値には、バイナリファイルからデータを読み取るように CLI に指示する `fileb://` プレフィックスを使用します。ファイルが現在のディレクトリにない場合は、ファイルへのフルパスを入力します。ファイルから AWS CLI パラメータ値を読み取る方法の詳細については、*AWS 「 コマンドラインインターフェイスユーザーガイド*」の「Load AWS CLI parameters from a file <https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-file.html>」および*AWS 「 コマンドラインツールブログ*」の「Best Practices for Local File Parameters<https://aws.amazon.com/blogs/developer/best-practices-for-local-file-parameters/>」を参照してください。暗号化テキストを復号する KMS キーを指定します。対称 KMS キーで復号する場合、 `--key-id` パラメータは必要ありません。 AWS KMS は、暗号化テキストのメタデータからデータを暗号化するために使用された KMS キーのキー ID を取得できます。ただし、ベストプラクティスは常に、使用している KMS キーを指定することです。この方法により、意図した KMS キーを使用することができ、信頼できない KMS キーを使用して誤って暗号文を復号するのを防ぐことができます。プレーンテキストの出力をテキスト値としてリクエストします。`--query` パラメータは、出力から `Plaintext` フィールドの値のみを取得するように CLI に指示します。`--output` パラメータは出力を text.Base64 でデコードしたプレーンテキストとして返し、ファイルに保存します。次の例では、`Plaintext` パラメータの値を Base64 ユーティリティにパイプ (\$1) して、Base64 ユーティリティでデコードします。次に、デコードされた出力を `ExamplePlaintext` ファイルにリダイレクト (>) します。  
このコマンドを実行する前に、サンプルキー ID を AWS アカウントの有効なキー ID に置き換えます。  

```
aws kms decrypt \
    --ciphertext-blob fileb://ExampleEncryptedFile \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --output text \
    --query Plaintext | base64 \
    --decode > ExamplePlaintextFile
```
このコマンドでは何も出力されません。`decrypt` コマンドからの出力は base64 でデコードされ、ファイルに保存されます。  
詳細については、「AWS Key Management Service API リファレンス」の「[Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)」を参照してください。**  
**例 2: 対称 KMS キーを使用して暗号化されたメッセージを復号するには (Windows コマンドプロンプト)**  
次の例は、`certutil` ユーティリティを使用してプレーンテキストデータを Base64 でデコードする点を除いて、前の例と同じです。この手順には、次の例に示すように 2 つのコマンドが必要です。  
このコマンドを実行する前に、サンプルキー ID を AWS アカウントの有効なキー ID に置き換えます。  

```
aws kms decrypt ^
    --ciphertext-blob fileb://ExampleEncryptedFile ^
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab ^
    --output text ^
    --query Plaintext > ExamplePlaintextFile.base64
```
`certutil` コマンドを実行します。  

```
certutil -decode ExamplePlaintextFile.base64 ExamplePlaintextFile
```
出力:  

```
Input Length = 18
Output Length = 12
CertUtil: -decode command completed successfully.
```
詳細については、「AWS Key Management Service API リファレンス」の「[Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)」を参照してください。**  
**例 3: 非対称 KMS キーを使用して暗号化されたメッセージを復号するには (Linux および macOS)**  
次の `decrypt` コマンドの例は、RSA 非対称 KMS キーで暗号化されたデータを復号する方法を示します。  
非対称 KMS キーを使用する場合は、プレーンテキストの暗号化に使用するアルゴリズムを指定する `encryption-algorithm` パラメータが必要です。  
このコマンドを実行する前に、サンプルキー ID を AWS アカウントの有効なキー ID に置き換えます。  

```
aws kms decrypt \
    --ciphertext-blob fileb://ExampleEncryptedFile \
    --key-id 0987dcba-09fe-87dc-65ba-ab0987654321 \
    --encryption-algorithm RSAES_OAEP_SHA_256 \
    --output text \
    --query Plaintext | base64 \
    --decode > ExamplePlaintextFile
```
このコマンドでは何も出力されません。`decrypt` コマンドからの出力は base64 でデコードされ、ファイルに保存されます。  
詳細については、「 Key Management Service デベロッパーガイド」の[「KMS AWS の非対称](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)キー」を参照してください。 *AWS *  
+  API の詳細については、AWS CLI コマンドリファレンスの「[Decrypt](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/decrypt.html)」を参照してください。**

### `delete-alias`
<a name="kms_DeleteAlias_cli_2_topic"></a>

次の例は、`delete-alias` を使用する方法を説明しています。

**AWS CLI**  
** AWS KMS エイリアスを削除するには**  
次の `delete-alias` の例は、エイリアス `alias/example-alias` を削除します。エイリアス名は alias/ で始まる必要があります。  

```
aws kms delete-alias \
    --alias-name alias/example-alias
```
このコマンドは何も出力しません。エイリアスを見つけるには、`list-aliases` コマンドを使用します。  
詳細については、「AWS Key Management Service デベロッパーガイド」の「[エイリアスの削除](https://docs.aws.amazon.com/kms/latest/developerguide/alias-manage.html#alias-delete)」を参照してください。**  
+  API の詳細については、AWS CLI コマンドリファレンスの「[DeleteAlias](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/delete-alias.html)」を参照してください。**

### `delete-custom-key-store`
<a name="kms_DeleteCustomKeyStore_cli_2_topic"></a>

次のコード例は、`delete-custom-key-store` を使用する方法を示しています。

**AWS CLI**  
**カスタムキーストアを削除するには**  
次の `delete-custom-key-store` の例では、指定されたカスタムキーストアを削除します。  
 AWS CloudHSM キーストアを削除しても、関連付けられた CloudHSM クラスターには影響しません。外部キーストアを削除しても、関連付けられた外部キーストアプロキシ、外部キーマネージャー、または外部キーには影響しません。  
**注:** カスタムキーストアを削除する前に、カスタムキーストア内のすべての KMS キーの削除をスケジュールし、それらの KMS キーが削除されるまで待つ必要があります。その後、カスタムキーストアを切断する必要があります。カスタムキーストアで KMS キーを検索する方法については、*AWS 「 Key Management Service* [デベロッパーガイド」の「Delete an AWS CloudHSM key store (API)](https://docs.aws.amazon.com/kms/latest/developerguide/delete-keystore.html#delete-keystore-api)」を参照してください。  

```
delete-custom-key-store \
    --custom-key-store-id cks-1234567890abcdef0
```
このコマンドは出力を返しません。カスタムキーストアが削除されたことを確認するには、`describe-custom-key-stores` コマンドを使用します。  
 AWS CloudHSM キーストアの削除については、「 Key Management Service [デベロッパーガイド」の AWS CloudHSM キーストア](https://docs.aws.amazon.com/kms/latest/developerguide/delete-keystore.html)の削除」を参照してください。 *AWS *  
外部キーストアの削除については、「*AWS Key Management Service デベロッパーガイド*」の「[外部キーストアの削除](https://docs.aws.amazon.com/kms/latest/developerguide/delete-xks.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[DeleteCustomKeyStore](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/delete-custom-key-store.html)」を参照してください。

### `delete-imported-key-material`
<a name="kms_DeleteImportedKeyMaterial_cli_2_topic"></a>

次のコード例は、`delete-imported-key-material` を使用する方法を示しています。

**AWS CLI**  
**KMS キーからインポートされたキーマテリアルを削除するには**  
次の `delete-imported-key-material` の例では、KMS キーにインポートされたキーマテリアルを削除します。  

```
aws kms delete-imported-key-material \
   --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```
出力:  

```
{
    "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
    "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6"
}
```
詳細については、「*AWS Key Management Service デベロッパーガイド*」の「[Deleting imported key material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-delete-key-material.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[DeleteImportedKeyMaterial](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/delete-imported-key-material.html)」を参照してください。

### `derive-shared-secret`
<a name="kms_DeriveSharedSecret_cli_2_topic"></a>

次のコード例は、`derive-shared-secret` を使用する方法を示しています。

**AWS CLI**  
**共有シークレットを取得するには**  
次の `derive-shared-secret` の例では、キーアグリーメントアルゴリズムを使用して共有シークレットを取得します。  
DeriveSharedSecret を呼び出すには、NIST 推奨楕円曲線 (ECC) または SM2 (中国リージョンのみ) の非対称 KMS キーペアを使用し、`KeyUsage`の値として `KEY_AGREEMENT` を指定する必要があります。  

```
aws kms derive-shared-secret \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --key-agreement-algorithm ECDH \
    --public-key "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvH3Yj0wbkLEpUl95Cv1cJVjsVNSjwGq3tCLnzXfhVwVvmzGN8pYj3U8nKwgouaHbBWNJYjP5VutbbkKS4Kv4GojwZBJyHN17kmxo8yTjRmjR15SKIQ8cqRA2uaERMLnpztIXdZp232PQPbWGxDyXYJ0aJ5EFSag"
```
出力:  

```
{
    "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
    "SharedSecret": "MEYCIQCKZLWyTk5runarx6XiAkU9gv3lbwPO/pHa+DXFehzdDwIhANwpsIV2g/9SPWLLsF6p/hiSskuIXMTRwqrMdVKWTMHG",
    "KeyAgreementAlgorithm": "ECDH",
    "KeyOrigin": "AWS_KMS"
}
```
詳細については、「*AWS Key Management Service API リファレンス*」の「[DeriveSharedSecret](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeriveSharedSecret.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[DeriveSharedSecret](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/derive-shared-secret.html)」を参照してください。

### `describe-custom-key-stores`
<a name="kms_DescribeCustomKeyStores_cli_2_topic"></a>

次の例は、`describe-custom-key-stores` を使用する方法を説明しています。

**AWS CLI**  
**例 1: AWS CloudHSM キーストアの詳細を取得するには**  
次の の`describe-custom-key-store`例では、指定された AWS CloudHSM キーストアの詳細を表示します。コマンドはどのタイプのカスタムキーストアでも同じですが、出力はキーストアのタイプと接続オプション (外部キーストアの場合) によって異なります。  
デフォルトでは、このコマンドはアカウントとリージョン内のすべてのカスタムキーストアに関する情報を表示します。特定のカスタムキーストアに関する情報を表示するには、`custom-key-store-name` または `custom-key-store-id` パラメータを使用します。  

```
aws kms describe-custom-key-stores \
    --custom-key-store-name ExampleCloudHSMKeyStore
```
このコマンドの出力には、接続状態 () を含む AWS CloudHSM キーストアに関する有用な詳細が含まれます`ConnectionState`。接続状態が `FAILED` の場合、出力には問題を説明する `ConnectionErrorCode` が含まれています。  
出力:  

```
{
    "CustomKeyStores": [
        {
            "CloudHsmClusterId": "cluster-1a23b4cdefg",
            "ConnectionState": "CONNECTED",
            "CreationDate": "2022-04-05T14:04:55-07:00",
            "CustomKeyStoreId": "cks-1234567890abcdef0",
            "CustomKeyStoreName": "ExampleExternalKeyStore",
            "TrustAnchorCertificate": "<certificate appears here>"
        }
    ]
}
```
詳細については、[「 Key Management Service デベロッパーガイド」の AWS CloudHSM キーストア](https://docs.aws.amazon.com/kms/latest/developerguide/view-keystore.html)の表示」を参照してください。 *AWS *  
**例 2: パブリックエンドポイント接続を使用する外部キーストアの詳細を取得するには**  
次の `describe-custom-key-store` の例では、指定された外部キーストアの詳細を表示します。コマンドはどのタイプのカスタムキーストアでも同じですが、出力はキーストアのタイプと接続オプション (外部キーストアの場合) によって異なります。  
デフォルトでは、このコマンドはアカウントとリージョン内のすべてのカスタムキーストアに関する情報を表示します。特定のカスタムキーストアに関する情報を表示するには、`custom-key-store-name` または `custom-key-store-id` パラメータを使用します。  

```
aws kms describe-custom-key-stores \
    --custom-key-store-id cks-9876543210fedcba9
```
このコマンドの出力には、接続状態 (`ConnectionState`) など、外部キーストアに関する有益な詳細が含まれています。接続状態が `FAILED` の場合、出力には問題を説明する `ConnectionErrorCode` が含まれています。  
出力:  

```
{
    "CustomKeyStores": [
        {
            "CustomKeyStoreId": "cks-9876543210fedcba9",
            "CustomKeyStoreName": "ExampleXKS",
            "ConnectionState": "CONNECTED",
            "CreationDate": "2022-12-02T07:48:55-07:00",
            "CustomKeyStoreType": "EXTERNAL_KEY_STORE",
            "XksProxyConfiguration": {
                "AccessKeyId": "ABCDE12345670EXAMPLE",
                "Connectivity": "PUBLIC_ENDPOINT",
                "UriEndpoint": "https://myproxy.xks.example.com",
                "UriPath": "/example-prefix/kms/xks/v1"
            }
        }
    ]
}
```
詳細については、「AWS Key Management Service デベロッパーガイド」の「[外部キーストアを表示する](https://docs.aws.amazon.com/kms/latest/developerguide/view-xks-keystore.html)」を参照してください。**  
**例 3: VPC エンドポイントサービス接続を使用する外部キーストアの詳細を取得するには**  
次の `describe-custom-key-store` の例では、指定された外部キーストアの詳細を表示します。コマンドはどのタイプのカスタムキーストアでも同じですが、出力はキーストアのタイプと接続オプション (外部キーストアの場合) によって異なります。  
デフォルトでは、このコマンドはアカウントとリージョン内のすべてのカスタムキーストアに関する情報を表示します。特定のカスタムキーストアに関する情報を表示するには、`custom-key-store-name` または `custom-key-store-id` パラメータを使用します。  

```
aws kms describe-custom-key-stores \
    --custom-key-store-id cks-2234567890abcdef0
```
このコマンドの出力には、接続状態 (`ConnectionState`) など、外部キーストアに関する有益な詳細が含まれています。接続状態が `FAILED` の場合、出力には問題を説明する `ConnectionErrorCode` が含まれています。  
出力:  

```
{
    "CustomKeyStores": [
        {
            "CustomKeyStoreId": "cks-3234567890abcdef0",
            "CustomKeyStoreName": "ExampleVPCExternalKeyStore",
            "ConnectionState": "CONNECTED",
            "CreationDate": "2022-12-22T07:48:55-07:00",
            "CustomKeyStoreType": "EXTERNAL_KEY_STORE",
            "XksProxyConfiguration": {
                "AccessKeyId": "ABCDE12345670EXAMPLE",
                "Connectivity": "VPC_ENDPOINT_SERVICE",
                "UriEndpoint": "https://myproxy-private.xks.example.com",
                "UriPath": "/kms/xks/v1",
                "VpcEndpointServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-example1"
            }
        }
    ]
}
```
詳細については、「AWS Key Management Service デベロッパーガイド」の「[外部キーストアを表示する](https://docs.aws.amazon.com/kms/latest/developerguide/view-xks-keystore.html)」を参照してください。**  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[DescribeCustomKeyStores](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/describe-custom-key-stores.html)」を参照してください。

### `describe-key`
<a name="kms_DescribeKey_cli_2_topic"></a>

次のコード例は、`describe-key` を使用する方法を示しています。

**AWS CLI**  
**例 1: KMS キーの詳細情報を取得するには**  
次の の`describe-key`例では、サンプルアカウントとリージョンの Amazon S3 の AWS マネージドキーに関する詳細情報を取得します。このコマンドを使用して、 AWS マネージドキーとカスタマーマネージドキーの詳細を検索できます。  
KMS キーを指定するには、`key-id` パラメータを使用します。この例では、エイリアス名値を使用していますが、このコマンドでは、キー ID、キー ARN、エイリアス名、またはエイリアス ARN を使用できます。  

```
aws kms describe-key \
    --key-id alias/aws/s3
```
出力:  

```
{
    "KeyMetadata": {
        "AWSAccountId": "846764612917",
        "KeyId": "b8a9477d-836c-491f-857e-07937918959b",
        "Arn": "arn:aws:kms:us-west-2:846764612917:key/b8a9477d-836c-491f-857e-07937918959b",
        "CurrentKeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6",
        "CreationDate": 2017-06-30T21:44:32.140000+00:00,
        "Enabled": true,
        "Description": "Default KMS key that protects my S3 objects when no other key is defined",
        "KeyUsage": "ENCRYPT_DECRYPT",
        "KeyState": "Enabled",
        "Origin": "AWS_KMS",
        "KeyManager": "AWS",
        "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
        "EncryptionAlgorithms": [
            "SYMMETRIC_DEFAULT"
        ]
    }
}
```
詳細については、「AWS Key Management Service デベロッパーガイド」の「[キーの表示](https://docs.aws.amazon.com/kms/latest/developerguide/viewing-keys.html)」を参照してください。**  
**例 2: RSA 非対称 KMS キーの詳細を取得するには**  
次の `describe-key` の例は、署名と検証に使用される非対称 RSA KMS キーに関する詳細情報を取得します。  

```
aws kms describe-key \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```
出力:  

```
{
    "KeyMetadata": {
        "AWSAccountId": "111122223333",
        "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
        "CreationDate": "2019-12-02T19:47:14.861000+00:00",
        "CustomerMasterKeySpec": "RSA_2048",
        "Enabled": false,
        "Description": "",
        "KeyState": "Disabled",
        "Origin": "AWS_KMS",
        "MultiRegion": false,
        "KeyManager": "CUSTOMER",
        "KeySpec": "RSA_2048",
        "KeyUsage": "SIGN_VERIFY",
        "SigningAlgorithms": [
            "RSASSA_PKCS1_V1_5_SHA_256",
            "RSASSA_PKCS1_V1_5_SHA_384",
            "RSASSA_PKCS1_V1_5_SHA_512",
            "RSASSA_PSS_SHA_256",
            "RSASSA_PSS_SHA_384",
            "RSASSA_PSS_SHA_512"
        ]
    }
}
```
**例 3: マルチリージョンのレプリカキーに関する詳細を取得するには**  
次の `describe-key` の例は、マルチリージョンのレプリカキーのメタデータを取得します。このマルチリージョンキーは対称暗号化キーです。マルチリージョンキーの `describe-key` コマンドの出力は、プライマリキーとそのすべてのレプリカに関する情報を返します。  

```
aws kms describe-key \
    --key-id arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab
```
出力:  

```
{
    "KeyMetadata": {
        "MultiRegion": true,
        "AWSAccountId": "111122223333",
        "Arn": "arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
        "CreationDate": "2021-06-28T21:09:16.114000+00:00",
        "CurrentKeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6",
        "Description": "",
        "Enabled": true,
        "KeyId": "mrk-1234abcd12ab34cd56ef1234567890ab",
        "KeyManager": "CUSTOMER",
        "KeyState": "Enabled",
        "KeyUsage": "ENCRYPT_DECRYPT",
        "Origin": "AWS_KMS",
        "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
        "EncryptionAlgorithms": [
            "SYMMETRIC_DEFAULT"
        ],
        "MultiRegionConfiguration": {
            "MultiRegionKeyType": "PRIMARY",
            "PrimaryKey": {
                "Arn": "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
                "Region": "us-west-2"
            },
            "ReplicaKeys": [
                {
                    "Arn": "arn:aws:kms:eu-west-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
                    "Region": "eu-west-1"
                },
                {
                    "Arn": "arn:aws:kms:ap-northeast-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
                    "Region": "ap-northeast-1"
                },
                {
                    "Arn": "arn:aws:kms:sa-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
                    "Region": "sa-east-1"
                }
            ]
        }
    }
}
```
**例 4: HMAC KMS キーの詳細を取得するには**  
次の `describe-key` の例は、HMAC KMS キーの詳細情報を取得します。  

```
aws kms describe-key \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```
出力:  

```
{
    "KeyMetadata": {
        "AWSAccountId": "123456789012",
        "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
        "Arn": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab",
        "CreationDate": "2022-04-03T22:23:10.194000+00:00",
        "Enabled": true,
        "Description": "Test key",
        "KeyUsage": "GENERATE_VERIFY_MAC",
        "KeyState": "Enabled",
        "Origin": "AWS_KMS",
        "KeyManager": "CUSTOMER",
        "CustomerMasterKeySpec": "HMAC_256",
        "MacAlgorithms": [
            "HMAC_SHA_256"
        ],
        "MultiRegion": false
    }
}
```
+  API の詳細については、AWS CLI コマンドリファレンスの「[DescribeKey](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/describe-key.html)」を参照してください。**

### `disable-key-rotation`
<a name="kms_DisableKeyRotation_cli_2_topic"></a>

次のコード例は、`disable-key-rotation` を使用する方法を示しています。

**AWS CLI**  
**KMS キーの自動ローテーションを無効にするには**  
次の `disable-key-rotation` の例では、カスタマーマネージド KMS キーの自動ローテーションを無効にします。自動ローテーションを再度有効にするには、`enable-key-rotation` コマンドを使用します。  

```
aws kms disable-key-rotation \
    --key-id arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
```
このコマンドは何も出力しません。KMS キーの自動ローテーションが無効になったことを確認するには、`get-key-rotation-status` コマンドを使用します。  
詳細については、「*AWS Key Management Service Developer Guide*」の「[Rotating keys](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[DisableKeyRotation](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/disable-key-rotation.html)」を参照してください。

### `disable-key`
<a name="kms_DisableKey_cli_2_topic"></a>

次のコード例は、`disable-key` を使用する方法を示しています。

**AWS CLI**  
**KMS キーを一時的に無効にするには**  
次の `disable-key` コマンドは、カスタマーマネージド KMS キーを無効にします。KMS キーを再度有効にするには、`enable-key` コマンドを使用します。  

```
aws kms disable-key \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```
このコマンドは何も出力しません。  
詳細については、「AWS Key Management Service デベロッパーガイド」の「[キーの有効化と無効化](https://docs.aws.amazon.com/kms/latest/developerguide/enabling-keys.html)」を参照してください。**  
+  API の詳細については、AWS CLI コマンドリファレンス**の「[DisableKey](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/disable-key.html)」を参照してください。

### `disconnect-custom-key-store`
<a name="kms_DisconnectCustomKeyStore_cli_2_topic"></a>

次のコード例は、`disconnect-custom-key-store` を使用する方法を示しています。

**AWS CLI**  
**カスタムキーストアを切断するには**  
次の の`disconnect-custom-key-store`例では、 AWS CloudHSM クラスターからカスタムキーストアを切断します。キーストアを切断するのは、問題をトラブルシューティングする場合、キーストアの設定を更新する場合、キーストアの KMS キーが暗号化オペレーションで使用されないようにする場合です。  
このコマンドは、 AWS CloudHSM キーストアや外部キーストアなど、すべてのカスタムキーストアで同じです。  
このコマンドを実行する前に、例のカスタムキーストア ID を有効な ID に置き換えます。  

```
$ aws kms disconnect-custom-key-store \
    --custom-key-store-id cks-1234567890abcdef0
```
このコマンドでは何も出力されません。コマンドが有効であることを確認するには、`describe-custom-key-stores` コマンドを使用します。  
 AWS CloudHSM キーストアの切断の詳細については、「 Key *AWS Management Service デベロッパーガイド*[」の AWS CloudHSM キーストアの接続と切断](https://docs.aws.amazon.com/kms/latest/developerguide/disconnect-keystore.html)」を参照してください。  
外部キーストアの切断については、「*AWS Key Management Service デベロッパーガイド*」の「[外部キーストアの接続と切断](https://docs.aws.amazon.com/kms/latest/developerguide/xks-connect-disconnect.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[DisconnectCustomKeyStore](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/disconnect-custom-key-store.html)」を参照してください。

### `enable-key-rotation`
<a name="kms_EnableKeyRotation_cli_2_topic"></a>

次のコード例は、`enable-key-rotation` を使用する方法を示しています。

**AWS CLI**  
**KMS キーの自動ローテーションを有効化するには**  
次の`enable-key-rotation` 例では、カスタマーマネージド KMS キーの自動ローテーションを、ローテーション期間が 180 日となるよう有効化します。KMS キーは、このコマンドの完了日から 1 年後 (約 365 日後) にローテーションされ、その後も毎年自動ローテーションされます。  
`--key-id` パラメータは KMS キーを識別します。この例ではキーの ARN 値を使用していますが、KMS キーのキー ID または ARN のどちらでも使用可能です。`--rotation-period-in-days` パラメータで次のローテーション日までの日数を指定します。90 日から 2560 日までの範囲で値を指定してください。値を指定しない場合、デフォルトは 365 日になります。  

```
aws kms enable-key-rotation \
    --key-id arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab \
    --rotation-period-in-days 180
```
このコマンドは何も出力しません。KMS キーが有効になっていることを確認するには、`get-key-rotation-status` コマンドを使用します。  
詳細については、「*AWS Key Management Service Developer Guide*」の「[Rotating keys](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[EnableKeyRotation](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/enable-key-rotation.html)」を参照してください。

### `enable-key`
<a name="kms_EnableKey_cli_2_topic"></a>

次のコード例は、`enable-key` を使用する方法を示しています。

**AWS CLI**  
**KMS キーを有効にするには**  
次の `enable-key` の例は、カスタマーマネージドキーを有効にします。このようなコマンドでは、`disable-key` コマンドを使用して一時的に無効にした KMS キーを有効にできます。また、削除が予定されていて削除がキャンセルされたために無効になっている KMS キーを有効にすることもできます。  
KMS キーを指定するには、`key-id` パラメータを使用します。この例では、キー ID 値を使用していますが、このコマンドでは、キー ID またはキー ARN 値を使用できます。  
このコマンドを実行する前に、サンプルキー ID を有効なキー ID に置き換えます。  

```
aws kms enable-key \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```
このコマンドは何も出力しません。KMS キーが有効になっていることを確認するには、`describe-key` コマンドを使用します。`describe-key` 出力の `KeyState` および `Enabled` フィールドの値を参照してください。  
詳細については、「AWS Key Management Service デベロッパーガイド」の「[キーの有効化と無効化](https://docs.aws.amazon.com/kms/latest/developerguide/enabling-keys.html)」を参照してください。**  
+  API の詳細については、AWS CLI コマンドリファレンス**の「[EnableKey](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/enable-key.html)」を参照してください。

### `encrypt`
<a name="kms_Encrypt_cli_2_topic"></a>

次のコード例は、`encrypt` を使用する方法を示しています。

**AWS CLI**  
**例 1: Linux または MacOS でファイルの内容を暗号化するには**  
次の`encrypt`コマンドは、 AWS CLI でデータを暗号化するために推奨される方法を示しています。  

```
aws kms encrypt \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --plaintext fileb://ExamplePlaintextFile \
    --output text \
    --query CiphertextBlob | base64 \
    --decode > ExampleEncryptedFile
```
このコマンドは、以下の操作を行います。  
`--plaintext` パラメータを使用して暗号化するデータを指定します。このパラメータ値は base64 でエンコードされている必要があります。 `plaintext`パラメータの値は base64 でエンコードされている必要があります。または、 ファイルからバイナリデータを読み取るように AWS CLI に指示する `fileb://` プレフィックスを使用する必要があります。ファイルが現在のディレクトリにない場合は、ファイルへのフルパスを入力します。例えば、`fileb:///var/tmp/ExamplePlaintextFile` や `fileb://C:\Temp\ExamplePlaintextFile` などです。ファイルからの AWS CLI パラメータ値の読み取りの詳細については、*AWS 「 コマンドラインインターフェイスユーザーガイド*」の[「ファイルからのパラメータのロード](https://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html#cli-using-param-file)」および「 コマンドラインツールブログ」の[「ローカルファイルパラメータのベストプラクティス](https://blogs.aws.amazon.com/cli/post/TxLWWN1O25V1HE/Best-Practices-for-Local-File-Parameters)」を参照してください。 `--output`および AWS `--query`パラメータを使用して、コマンドの出力を制御します。これらのパラメータは、コマンドの出力から*暗号化テキスト*と呼ばれる暗号化されたデータを抽出します。出力の制御の詳細については、「 コマンド*AWS ラインインターフェイスユーザーガイド*[」の「コマンド出力の制御](https://docs.aws.amazon.com/cli/latest/userguide/controlling-output.html)」を参照してください。 `base64`ユーティリティを使用して、抽出された出力をバイナリデータにデコードします。`encrypt`コマンドが成功した場合に返される暗号化テキストは base64 でエンコードされたテキストです。 AWS CLI を使用して復号する前に、このテキストをデコードする必要があります。 はバイナリ暗号文を ファイルに保存します。 コマンド (`> ExampleEncryptedFile`) の最後の部分では、復号を容易にするためにバイナリ暗号文を ファイルに保存します。 AWS CLI を使用してデータを復号するコマンドの例については、復号の例を参照してください。  
**例 2: CLI AWS を使用して Windows でデータを暗号化する**  
この例は前の例と同じですが、`base64` の代わりに `certutil` ツールを使用します。この手順には、次の例に示すように 2 つのコマンドが必要です。  

```
aws kms encrypt \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --plaintext fileb://ExamplePlaintextFile \
    --output text \
    --query CiphertextBlob > C:\Temp\ExampleEncryptedFile.base64

certutil -decode C:\Temp\ExampleEncryptedFile.base64 C:\Temp\ExampleEncryptedFile
```
**例 3: 非対称 KMS キーを使用して暗号化する**  
次の `encrypt` コマンドは、プレーンテキストを非対称 KMS キーで暗号化する方法を示しています。`--encryption-algorithm` パラメータは必須です。すべての `encrypt` CLI コマンドと同様に、 `plaintext`パラメータは base64 でエンコードされているか、 `fileb://` プレフィックスを使用する必要があります。プレフィックスは、 ファイルからバイナリデータを読み取るように CLI AWS に指示します。  

```
aws kms encrypt \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --encryption-algorithm RSAES_OAEP_SHA_256 \
    --plaintext fileb://ExamplePlaintextFile \
    --output text \
    --query CiphertextBlob | base64 \
    --decode > ExampleEncryptedFile
```
このコマンドでは何も出力されません。  
+  API の詳細については、AWS CLI コマンドリファレンスの「[Encrypt](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/encrypt.html)」を参照してください。**

### `generate-data-key-pair-without-plaintext`
<a name="kms_GenerateDataKeyPairWithoutPlaintext_cli_2_topic"></a>

次のコード例は、`generate-data-key-pair-without-plaintext` を使用する方法を示しています。

**AWS CLI**  
**ECC NIST P384 非対称データキーペアを生成するには**  
次の`generate-data-key-pair-without-plaintext`例では、ECC NIST P384 キーペアの外部での使用をリクエストします AWS。  
このコマンドは、プレーンテキストのパブリックキーとおよび指定された KMS キーで暗号化されたプライベートキーのコピーを返します。プレーンテキストのプライベートキーは返されません。暗号化されたプライベートキーを暗号化されたデータに安全に保存し、使用する必要がある場合は KMS AWS を呼び出してプライベートキーを復号できます。  
ECC NIST P384 非同期データキーペアをリクエストするには、値 `ECC_NIST_P384` を含む `key-pair-spec` パラメータを使用します。  
指定する KMS キーは、対称暗号化 KMS キー、つまり `KeySpec` が `SYMMETRIC_DEFAULT` の KMS キーである必要があります。  
注: この例の出力の値は、表示のために一部が切り捨てられています。  

```
aws kms generate-data-key-pair-without-plaintext \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --key-pair-spec ECC_NIST_P384
```
出力:  

```
{
    "PrivateKeyCiphertextBlob": "AQIDAHi6LtupRpdKl2aJTzkK6FbhOtQkMlQJJH3PdtHvS/y+hAFFxmiD134doUDzMGmfCEtcAAAHaTCCB2UGCSqGSIb3DQEHBqCCB1...",
    "PublicKey": "MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA3A3eGMyPrvSn7+LdlJE1oUoQV5HpEuHAVbdOyND+NmYDH/mL1OSIEuLrcdZ5hrMH4pk83r40l...",
    "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6",
    "KeyPairSpec": "ECC_NIST_P384"
}
```
`PublicKey` と `PrivateKeyCiphertextBlob` は base64 でエンコードされた形式で返されます。  
詳細については、「AWS Key Management Service デベロッパーガイド」の「[データキーペア](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-key-pairs)」を参照してください。**  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[GenerateDataKeyPairWithoutPlaintext](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/generate-data-key-pair-without-plaintext.html)」を参照してください。

### `generate-data-key-pair`
<a name="kms_GenerateDataKeyPair_cli_2_topic"></a>

次のコード例は、`generate-data-key-pair` を使用する方法を示しています。

**AWS CLI**  
**2048 ビット RSA 非対称データキーペアを生成するには**  
次の`generate-data-key-pair`例では、 の外部で使用する 2048 ビット RSA 非対称データキーペアをリクエストします AWS。このコマンドは、すぐに使用および削除できるプレーンテキストのパブリックキーとプレーンテキストのプライベートキー、および指定された KMS キーで暗号化されたプライベートキーのコピーを返します。暗号化されたデータとともに、暗号化されたプライベートキーを安全に保存できます。  
2048 ビットの RSA 非同期データキーペアをリクエストするには、値 `RSA_2048` を含む `key-pair-spec` パラメータを使用します。  
指定する KMS キーは、対称暗号化 KMS キー、つまり `KeySpec` が `SYMMETRIC_DEFAULT` の KMS キーである必要があります。  
注: この例の出力の値は、表示のために一部が切り捨てられています。  

```
aws kms generate-data-key-pair \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --key-pair-spec RSA_2048
```
出力:  

```
{
    "PrivateKeyCiphertextBlob": "AQIDAHi6LtupRpdKl2aJTzkK6FbhOtQkMlQJJH3PdtHvS/y+hAFFxmiD134doUDzMGmfCEtcAAAHaTCCB2UGCSqGSIb3DQEHBqCCB1...",
    "PrivateKeyPlaintext": "MIIG/QIBADANBgkqhkiG9w0BAQEFAASCBucwggbjAgEAAoIBgQDcDd4YzI+u9Kfv4t2UkTWhShBXkekS4cBVt07I0P42ZgMf+YvU5IgS4ut...",
    "PublicKey": "MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA3A3eGMyPrvSn7+LdlJE1oUoQV5HpEuHAVbdOyND+NmYDH/mL1OSIEuLrcdZ5hrMH4pk83r40l...",
    "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6"
    "KeyPairSpec": "RSA_2048"
}
```
`PublicKey`、`PrivateKeyPlaintext`、`PrivateKeyCiphertextBlob` が base64 エンコード形式で返されます。  
詳細については、「AWS Key Management Service デベロッパーガイド」の「[データキーペア](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-key-pairs)」を参照してください。**  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[GenerateDataKeyPair](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/generate-data-key-pair.html)」を参照してください。

### `generate-data-key-without-plaintext`
<a name="kms_GenerateDataKeyWithoutPlaintext_cli_2_topic"></a>

次のコード例は、`generate-data-key-without-plaintext` を使用する方法を示しています。

**AWS CLI**  
**プレーンテキストキーを使用せずに 256 ビットの対称データキーを生成するには**  
次の `generate-data-key-without-plaintext` の例は、256 ビットの対称データキーの暗号化コピーを AWSの外部で使用するようにリクエストします。使用する準備ができたら、KMS AWS を呼び出してデータキーを復号化できます。  
256 ビットのデータキーをリクエストするには、値 `AES_256` を含む `key-spec` パラメータを使用します。128 ビットのデータキーをリクエストするには、値 `AES_128` を含む `key-spec` パラメータを使用します。その他のすべてのデータキー長には、`number-of-bytes` パラメーターを使用します。  
指定する KMS キーは、対称暗号化 KMS キー、つまりキースペック値が SYMMETRIC\$1DEFAULT の KMS キーである必要があります。  

```
aws kms generate-data-key-without-plaintext \
    --key-id "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" \
    --key-spec AES_256
```
出力:  

```
{
    "CiphertextBlob": "AQEDAHjRYf5WytIc0C857tFSnBaPn2F8DgfmThbJlGfR8P3WlwAAAH4wfAYJKoZIhvcNAQcGoG8wbQIBADBoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDEFogL",
    "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6"
}
```
`CiphertextBlob` (暗号化されたデータキー) は base64 でエンコードされた形式で返されます。  
詳細については、「AWS Key Management Service デベロッパーガイド」の「[データキー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys)」を参照してください。**  
+  API の詳細については、AWS CLI コマンドリファレンスの「[GenerateDataKeyWithoutPlaintext](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/generate-data-key-without-plaintext.html)」を参照してください。**

### `generate-data-key`
<a name="kms_GenerateDataKey_cli_2_topic"></a>

次のコード例は、`generate-data-key` を使用する方法を示しています。

**AWS CLI**  
**例 1: 256 ビットの対称データキーを生成するには**  
次の`generate-data-key`例では、 の外部で使用する 256 ビット対称データキーをリクエストします AWS。このコマンドは、すぐに使用および削除できるプレーンテキストのデータキーと、指定された KMS キーで暗号化されたデータキーのコピーを返します。暗号化されたデータとともに、暗号化されたデータキーを安全に保存できます。  
256 ビットのデータキーをリクエストするには、値 `AES_256` を含む `key-spec` パラメータを使用します。128 ビットのデータキーをリクエストするには、値 `AES_128` を含む `key-spec` パラメータを使用します。その他のすべてのデータキー長には、`number-of-bytes` パラメーターを使用します。  
指定する KMS キーは、対称暗号化 KMS キー、つまりキースペック値が SYMMETRIC\$1DEFAULT の KMS キーである必要があります。  

```
aws kms generate-data-key \
    --key-id alias/ExampleAlias \
    --key-spec AES_256
```
出力:  

```
{
    "Plaintext": "VdzKNHGzUAzJeRBVY+uUmofUGGiDzyB3+i9fVkh3piw=",
    "KeyId": "arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6",
    "CiphertextBlob": "AQEDAHjRYf5WytIc0C857tFSnBaPn2F8DgfmThbJlGfR8P3WlwAAAH4wfAYJKoZIhvcNAQcGoG8wbQIBADBoBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDEFogLqPWZconQhwHAIBEIA7d9AC7GeJJM34njQvg4Wf1d5sw0NIo1MrBqZa+YdhV8MrkBQPeac0ReRVNDt9qleAt+SHgIRF8P0H+7U="
}
```
`Plaintext` (プレーンテキストデータキー) と `CiphertextBlob` (暗号化データキー) は base64 でエンコードされた形式で返されます。  
詳細については、「AWS Key Management Service デベロッパーガイド」の「[データキー](https://docs.aws.amazon.com/kms/latest/developerguide/data-keys.html)」を参照してください。****例 2: 512 ビットの対称データキーを生成するには**  
次の `generate-data-key` の例は、暗号化と復号用の 512 ビットの対称データキーを要求します。このコマンドは、すぐに使用および削除できるプレーンテキストのデータキーと、指定された KMS キーで暗号化されたデータキーのコピーを返します。暗号化されたデータとともに、暗号化されたデータキーを安全に保存できます。  
128 ビットまたは 256 ビット以外のキー長をリクエストするには、`number-of-bytes` パラメーターを使用します。512 ビットのデータキーをリクエストするために、次の例では値が 64 (バイト) の `number-of-bytes` パラメータを使用します。  
指定する KMS キーは、対称暗号化 KMS キー、つまりキースペック値が SYMMETRIC\$1DEFAULT の KMS キーである必要があります。  
注: この例の出力の値は、表示のために一部が切り捨てられています。  

```
aws kms generate-data-key \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --number-of-bytes 64
```
出力:  

```
{
    "CiphertextBlob": "AQIBAHi6LtupRpdKl2aJTzkK6FbhOtQkMlQJJH3PdtHvS/y+hAEnX/QQNmMwDfg2korNMEc8AAACaDCCAmQGCSqGSIb3DQEHBqCCAlUwggJRAgEAMIICSgYJKoZ...",
    "Plaintext": "ty8Lr0Bk6OF07M2BWt6qbFdNB+G00ZLtf5MSEb4al3R2UKWGOp06njAwy2n72VRm2m7z/Pm9Wpbvttz6a4lSo9hgPvKhZ5y6RTm4OovEXiVfBveyX3DQxDzRSwbKDPk/...",
    "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6"
}
```
`Plaintext` (プレーンテキストデータキー) と `CiphertextBlob` (暗号化データキー) は base64 でエンコードされた形式で返されます。  
詳細については、「AWS Key Management Service デベロッパーガイド」の「[データキー](https://docs.aws.amazon.com/kms/latest/developerguide/data-keys.html)」を参照してください。**  
+  API の詳細については、*AWS CLI コマンドリファレンス*の「[GenerateDataKey](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/generate-data-key.html)」を参照してください。

### `generate-mac`
<a name="kms_GenerateMac_cli_2_topic"></a>

次のコード例は、`generate-mac` を使用する方法を示しています。

**AWS CLI**  
**例 1: メッセージの HMAC を生成するには**  
次の `generate-mac` コマンドは、メッセージの HMAC、HMAC KMS キー、および MAC アルゴリズムを生成します。アルゴリズムは、指定された HMAC KMS キーでサポートされる必要があります。  
 AWS CLI v2 では、 `message`パラメータの値は Base64-encodedされている必要があります。または、メッセージをファイルに保存し、 `fileb://` プレフィックスを使用して、ファイルからバイナリデータを読み取るように AWS CLI に指示することもできます。  
このコマンドを実行する前に、サンプルキー ID を AWS アカウントの有効なキー ID に置き換えます。キー ID は、キー用途が `GENERATE_VERIFY_MAC` の HMAC KMS キーを表す必要があります。  

```
msg=(echo 'Hello World' | base64)

aws kms generate-mac \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --message fileb://Message \
    --mac-algorithm HMAC_SHA_384
```
出力:  

```
{
    "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "Mac": "<HMAC_TAG>",
    "MacAlgorithm": "HMAC_SHA_384"
}
```
KMS での HMAC KMS AWS キーの使用の詳細については、「 Key Management Service デベロッパーガイド」の[「KMS AWS での HMAC キー](https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html)」を参照してください。 *AWS *  
**例 2: HMAC をファイルに保存するには (Linux および macOS)**  
次の `generate-mac` の例では、ローカルファイルに保存されている短いメッセージ向けの HMAC を生成します。コマンドはレスポンスから `Mac` プロパティも取得し、これを Base64 デコードして ExampleMac ファイルに保存します。この MAC ファイルを、MAC を検証する `verify-mac` コマンドで使用できます。  
`generate-mac` コマンドには、Base64 エンコードされたメッセージと、HMAC KMS キーがサポートする MAC アルゴリズムが必要です。KMS キーがサポートする MAC アルゴリズムを取得するには、`describe-key` コマンドを使用します。  
このコマンドを実行する前に、サンプルキー ID を AWS アカウントの有効なキー ID に置き換えます。キー ID は、キー用途が GENERATE\$1VERIFY\$1MAC である非対称 KMS キーを表している必要があります。  

```
echo 'hello world' | base64 > EncodedMessage

aws kms generate-mac \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --message fileb://EncodedMessage \
    --mac-algorithm HMAC_SHA_384 \
    --output text \
    --query Mac | base64 --decode > ExampleMac
```
このコマンドでは何も出力されません。この例では、出力の `Mac` プロパティを抽出し、ファイルに保存します。  
KMS での HMAC KMS AWS キーの使用の詳細については、「 Key Management Service デベロッパーガイド」の[「KMS AWS での HMAC キー](https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html)」を参照してください。 *AWS *  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[GenerateMac](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/generate-mac.html)」を参照してください。

### `generate-random`
<a name="kms_GenerateRandom_cli_2_topic"></a>

次のコード例は、`generate-random` を使用する方法を示しています。

**AWS CLI**  
**例 1: 256 ビットのランダムバイト文字列を生成するには (Linux または macOs)**  
次の `generate-random` の例は、256 ビット (32 バイト) の base64 でエンコードされたランダムバイト文字列を生成します。この例は、バイト文字列をデコードしてランダムファイルに保存します。  
このコマンドを実行する際は、`number-of-bytes` パラメーターを使用してランダム値の長さをバイト単位で指定する必要があります。  
このコマンドを実行する際は、KMS キーは指定しません。ランダムバイト文字列は KMS キーとは関係ありません。  
デフォルトでは、 AWS KMS は乱数を生成します。ただし、[カスタムキーストア](https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html)を指定すると、カスタムキーストアに関連付けられた AWS CloudHSM クラスターにランダムなバイト文字列が生成されます。  
この例は以下のパラメータと値を使用します。  
値 を持つ必須`--number-of-bytes`パラメータを使用して `32` 32 バイト (256 ビット) をリクエストします。string.It は の値 を持つ `--output`パラメータを使用して CLI AWS `text`に出力をテキストとして返すように指示します。JSON.It は を使用して response.It パイプ ( \$1 ) から `Plaintext` プロパティの値を`--query parameter`抽出し`base64`、抽出された output.It はリダイレクト演算子 ( > ) を使用してデコードされたバイト文字列を `ExampleRandom` file.It に保存します。  

```
aws kms generate-random \
    --number-of-bytes 32 \
    --output text \
    --query Plaintext | base64 --decode > ExampleRandom
```
このコマンドでは何も出力されません。  
詳細については、「AWS Key Management Service API リファレンス」の「[GenerateRandom](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateRandom.html)」を参照してください。**  
**例 2: 256 ビットの乱数を生成するには (Windows コマンドプロンプト)**  
次の例は、`generate-random` コマンドを使用して、base64 でエンコードされた 256 ビット (32 バイト) のランダムバイト文字列を生成します。この例は、バイト文字列をデコードしてランダムファイルに保存します。この例は前の例と同じですが、Windows の `certutil` のユーティリティを使用して、ランダムバイト文字列を base64 でデコードしてからファイルに保存する点が異なります。  
最初に base64 でエンコードされたランダムバイト文字列を生成し、テンポラリファイル (`ExampleRandom.base64`) に保存します。  

```
aws kms generate-random \
    --number-of-bytes 32 \
    --output text \
    --query Plaintext > ExampleRandom.base64
```
`generate-random` コマンドの出力はファイルに保存されるため、この例では何も出力されません。  
次に、`certutil -decode` コマンドを使用して、`ExampleRandom.base64` ファイル内の base64 でエンコードされたバイト文字列をデコードします。その後、デコードされたバイト文字列を `ExampleRandom` ファイルに保存します。  

```
certutil -decode ExampleRandom.base64 ExampleRandom
```
出力:  

```
Input Length = 18
Output Length = 12
CertUtil: -decode command completed successfully.
```
詳細については、「AWS Key Management Service API リファレンス」の「[GenerateRandom](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateRandom.html)」を参照してください。**  
+  API の詳細については、AWS CLI コマンドリファレンスの「[GenerateRandom](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/generate-random.html)」を参照してください。**

### `get-key-policy`
<a name="kms_GetKeyPolicy_cli_2_topic"></a>

次のコード例は、`get-key-policy` を使用する方法を示しています。

**AWS CLI**  
**ある KMS キーから別の KMS キーにキーポリシーをコピーするには**  
次の `get-key-policy` の例は、ある KMS キーからキーポリシーを取得し、テキストファイルに保存します。その後、テキストファイルをポリシー入力として使用して、別の KMS キーのポリシーを置き換えます。  
`put-key-policy` の `--policy` パラメータには文字列が必要なため、JSON ではなくテキスト文字列として出力を返す `--output text` オプションを使用する必要があります。  

```
aws kms get-key-policy \
    --policy-name default \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --query Policy \
    --output text > policy.txt

aws kms put-key-policy \
    --policy-name default \
    --key-id 0987dcba-09fe-87dc-65ba-ab0987654321 \
    --policy file://policy.txt
```
このコマンドは何も出力しません。  
詳細については、「AWS KMS API リファレンス」の「[PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html)」を参照してください。**  
+  API の詳細については、AWS CLI コマンドリファレンスの「[GetKeyPolicy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/get-key-policy.html)」を参照してください。**

### `get-key-rotation-status`
<a name="kms_GetKeyRotationStatus_cli_2_topic"></a>

次のコード例は、`get-key-rotation-status` を使用する方法を示しています。

**AWS CLI**  
**KMS キーのローテーションステータスを取得するには**  
次の `get-key-rotation-status` の例では、自動ローテーションが有効になっているかどうか、ローテーション期間、次にスケジュールされているローテーション日など、指定された KMS キーのローテーションステータスに関する情報を返します。このコマンドは、カスタマーマネージド KMS キーと AWS マネージド KMS キーで使用できます。ただし、すべての AWS マネージド KMS キーは毎年自動的にローテーションされます。  

```
aws kms get-key-rotation-status \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```
出力:  

```
{
    "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
    "KeyRotationEnabled": true,
    "NextRotationDate": "2024-02-14T18:14:33.587000+00:00",
    "RotationPeriodInDays": 365
}
```
詳細については、「*AWS Key Management Service Developer Guide*」の「[Rotating keys](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[GetKeyRotationStatus](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/get-key-rotation-status.html)」を参照してください。

### `get-parameters-for-import`
<a name="kms_GetParametersForImport_cli_2_topic"></a>

次のコード例は、`get-parameters-for-import` を使用する方法を示しています。

**AWS CLI**  
**キーマテリアルを KMS キーにインポートするために必要な項目を取得するには**  
次の `get-parameters-for-import` の例では、キーマテリアルを KMS キーにインポートするために必要なパブリックキーとインポートトークンを取得します。`import-key-material` コマンドを使用する際には、同じ `get-parameters-for-import` コマンドで返されたパブリックキーによって暗号化されたインポートトークンとキーマテリアルを必ず使用してください。また、このコマンドで指定するラップアルゴリズムは、キーマテリアルをパブリックキーで暗号化するために使用するアルゴリズムである必要があります。  
KMS キーを指定するには、`key-id` パラメータを使用します。この例ではキー ID を使用していますが、このコマンドでは、キー ID またはキー ARN を使用できます。  

```
aws kms get-parameters-for-import \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --wrapping-algorithm RSAES_OAEP_SHA_256 \
    --wrapping-key-spec RSA_2048
```
出力:  

```
{
    "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "PublicKey": "<public key base64 encoded data>",
    "ImportToken": "<import token base64 encoded data>",
    "ParametersValidTo": 1593893322.32
}
```
詳細については、「*AWS Key Management Service デベロッパーガイド*」の「[パブリックキーおよびインポートトークンのダウンロード](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-get-public-key-and-token.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[GetParametersForImport](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/get-parameters-for-import.html)」を参照してください。

### `get-public-key`
<a name="kms_GetPublicKey_cli_2_topic"></a>

次のコード例は、`get-public-key` を使用する方法を示しています。

**AWS CLI**  
**例 1: 非対称 KMS キーのパブリックキーをダウンロードするには**  
次の `get-public-key` の例では、非対称 KMS キーのパブリックキーをダウンロードします。  
パブリックキーを返すだけでなく、出力には、キーの使用やサポートされている暗号化アルゴリズムなど、KMS AWS の外部でパブリックキーを安全に使用するために必要な情報が含まれます。  

```
aws kms get-public-key \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```
出力:  

```
{
    "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "PublicKey": "jANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAl5epvg1/QtJhxSi2g9SDEVg8QV/...",
    "CustomerMasterKeySpec": "RSA_4096",
    "KeyUsage": "ENCRYPT_DECRYPT",
    "EncryptionAlgorithms": [
        "RSAES_OAEP_SHA_1",
        "RSAES_OAEP_SHA_256"
    ]
}
```
KMS で非対称 KMS AWS キーを使用する方法の詳細については、「 Key Management Service デベロッパーガイド」の[「KMS AWS の非対称](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)キー」を参照してください。 *AWS ***例 2: パブリックキーを DER 形式に変換するには (Linux および macOS)**  
次の `get-public-key` の例では、非対称 KMS キーのパブリックキーをダウンロードして DER ファイルに保存します。  
 AWS CLI で `get-public-key` コマンドを使用すると、Base64-encodedされた X.509 パブリックキーが返されます。この例では、`PublicKey` プロパティの値をテキストとして取得します。この `PublicKey` を Base64 でエンコードして `public_key.der` ファイルに保存します。`output` パラメータは、JSON ではなくテキストとして出力を返します。`--query` パラメータは `PublicKey`プロパティのみを取得し、KMS AWS の外部でパブリックキーを安全に使用するために必要なプロパティは取得しません。  
このコマンドを実行する前に、サンプルキー ID を AWS アカウントの有効なキー ID に置き換えます。  

```
aws kms get-public-key \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --output text \
    --query PublicKey | base64 --decode > public_key.der
```
このコマンドでは何も出力されません。  
KMS で非対称 KMS AWS キーを使用する方法の詳細については、「 Key Management Service デベロッパーガイド」の[「KMS AWS の非対称](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)キー」を参照してください。 *AWS *  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[GetPublicKey](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/get-public-key.html)」を参照してください。

### `import-key-material`
<a name="kms_ImportKeyMaterial_cli_2_topic"></a>

次のコード例は、`import-key-material` を使用する方法を示しています。

**AWS CLI**  
**キーマテリアルを KMS キーにインポートするには**  
次の `import-key-material` の例では、キーマテリアルなしで作成された KMS キーにキーマテリアルをアップロードします。KMS キーのキーストアは `PendingImport` である必要があります。  
このコマンドは、`get-parameters-for-import` コマンドが返したパブリックキーで暗号化したキーマテリアルを使用します。また、同じ `get-parameters-for-import` コマンドからのインポートトークンも使用します。  
`expiration-model` パラメータは、キーマテリアルが `valid-to` パラメータで指定された日時に自動的に期限切れになることを示します。キーマテリアルの有効期限が切れると、 AWS KMS はキーマテリアルを削除`Pending import`し、KMS キーのキー状態は に変わり、KMS キーは使用できなくなります。KMS キーを復元するには、同じキーマテリアルを再インポートする必要があります。別のキーマテリアルを使用するには、新しい KMS キーを作成する必要があります。  
このコマンドを実行する前に、サンプルキー ID を AWS アカウントの有効なキー ID またはキー ARN に置き換えます。  

```
aws kms import-key-material \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --encrypted-key-material fileb://EncryptedKeyMaterial.bin \
    --import-token fileb://ImportToken.bin \
    --expiration-model KEY_MATERIAL_EXPIRES \
    --valid-to 2021-09-21T19:00:00Z
```
出力:  

```
{
    "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
    "KeyMaterialId": "0b7fd7ddbac6eef27907413567cad8c810e2883dc8a7534067a82ee1142fc1e6"
}
```
AWS KMS へのキーマテリアルのインポートの詳細については、「*AWS Key Management Service デベロッパーガイド*」の「[キーマテリアルのインポート](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[ImportKeyMaterial](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/import-key-material.html)」を参照してください。

### `list-aliases`
<a name="kms_ListAliases_cli_2_topic"></a>

次の例は、`list-aliases` を使用する方法を説明しています。

**AWS CLI**  
**例 1: AWS アカウントとリージョン内のすべてのエイリアスを一覧表示するには**  
次の例では、 `list-aliases` コマンドを使用して、 AWS アカウントのデフォルトリージョン内のすべてのエイリアスを一覧表示します。出力には、 AWS マネージド KMS キーとカスタマーマネージド KMS キーに関連付けられたエイリアスが含まれます。  

```
aws kms list-aliases
```
出力:  

```
{
    "Aliases": [
        {
            "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/testKey",
            "AliasName": "alias/testKey",
            "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab"
        },
        {
            "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/FinanceDept",
            "AliasName": "alias/FinanceDept",
            "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321"
        },
        {
            "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/aws/dynamodb",
            "AliasName": "alias/aws/dynamodb",
            "TargetKeyId": "1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d"
        },
        {
            "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/aws/ebs",
            "AliasName": "alias/aws/ebs",
            "TargetKeyId": "0987ab65-43cd-21ef-09ab-87654321cdef"
        },
        ...
    ]
}
```
**例 2: 特定の KMS キーのすべてのエイリアスを一覧表示するには**  
次の例では、`list-aliases` コマンドとその `key-id` パラメータを使用して、特定の KMS キーに関連するすべてのエイリアスを一覧表示します。  
各エイリアスは 1 つの KMS のみに関連付けられますが、1 つの KMS キーには複数のエイリアスを設定することができます。このコマンドは、KMS AWS コンソールに KMS キーごとに 1 つのエイリアスしか一覧表示されないため、非常に便利です。KMS キーのすべてのエイリアスを検索するには、`list-aliases` コマンドを使用する必要があります。  
この例では、KMS キーのキー ID を `--key-id` パラメータに使用しますが、キー ID、キー ARN、エイリアス名、またはエイリアス ARN を使用することもできます。  

```
aws kms list-aliases --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```
出力:  

```
{
    "Aliases": [
        {
            "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
            "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/oregon-test-key",
            "AliasName": "alias/oregon-test-key"
        },
        {
            "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
            "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/project121-test",
            "AliasName": "alias/project121-test"
        }
    ]
}
```
詳細については、「AWS Key Management Service デベロッパーガイド」の「[エイリアスの使用](https://docs.aws.amazon.com/kms/latest/developerguide/programming-aliases.html)」を参照してください。**  
+  API の詳細については、AWS CLI コマンドリファレンスの「[ListAliases](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/list-aliases.html)」を参照してください。**

### `list-grants`
<a name="kms_ListGrants_cli_2_topic"></a>

次の例は、`list-grants` を使用する方法を説明しています。

**AWS CLI**  
**KMS AWS キーの許可を表示するには**  
次の の`list-grants`例では、アカウントの Amazon DynamoDB の指定された AWS マネージド KMS キーに対するすべての許可を表示します。この権限により、DynamoDB はユーザーに代わって KMS キーを使用して、DynamoDB テーブルをディスクに書き込む前に暗号化できます。このようなコマンドを使用して、 AWS アカウントとリージョンの AWS マネージド KMS キーとカスタマーマネージド KMS キーの許可を表示できます。  
このコマンドは、キー ID を含む `key-id` パラメータを使用して KMS キーを識別します。ユーザーは、キー ID またはキー ARN を使用して KMS キーを識別できます。 AWS マネージド KMS キーのキー ID またはキー ARN を取得するには、 `list-keys`または `list-aliases` コマンドを使用します。  

```
aws kms list-grants \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```
これにより、暗号化操作において Amazon DynamoDB に KMS キーを使用する権限が付与され、KMS キーに関する詳細情報を表示する権限 (`DescribeKey`) と権限を廃止する権限 (`RetireGrant`) が付与されていることが出力に表示されます。`EncryptionContextSubset` の制約により、これらの権限は指定された暗号化コンテキストペアを含むリクエストに限定されます。そのため、この権限のアクセス許可は指定されたアカウントと DynamoDB テーブルでのみ有効です。  

```
{
    "Grants": [
        {
            "Constraints": {
                "EncryptionContextSubset": {
                    "aws:dynamodb:subscriberId": "123456789012",
                    "aws:dynamodb:tableName": "Services"
                }
            },
            "IssuingAccount": "arn:aws:iam::123456789012:root",
            "Name": "8276b9a6-6cf0-46f1-b2f0-7993a7f8c89a",
            "Operations": [
                "Decrypt",
                "Encrypt",
                "GenerateDataKey",
                "ReEncryptFrom",
                "ReEncryptTo",
                "RetireGrant",
                "DescribeKey"
            ],
            "GrantId": "1667b97d27cf748cf05b487217dd4179526c949d14fb3903858e25193253fe59",
            "KeyId": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab",
            "RetiringPrincipal": "dynamodb.us-west-2.amazonaws.com",
            "GranteePrincipal": "dynamodb.us-west-2.amazonaws.com",
            "CreationDate": "2021-05-13T18:32:45.144000+00:00"
        }
    ]
}
```
詳細については、*AWS 「 Key Management Service デベロッパーガイド*」の[「KMS AWS でのグラン](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)ト」を参照してください。  
+  API の詳細については、AWS CLI コマンドリファレンスの「[ListGrants](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/list-grants.html)」を参照してください。**

### `list-key-policies`
<a name="kms_ListKeyPolicies_cli_2_topic"></a>

次のコード例は、`list-key-policies` を使用する方法を示しています。

**AWS CLI**  
**KMS キーのキーポリシーの名前を取得するには**  
次の `list-key-policies` の例は、サンプルアカウントとリージョンのカスタマーマネージドキーのキーポリシーの名前を取得します。このコマンドを使用して、 AWS マネージドキーとカスタマーマネージドキーのキーポリシーの名前を検索できます。  
有効なキーポリシー名は `default` のみであるため、このコマンドは有用ではありません。  
KMS キーを指定するには、`key-id` パラメータを使用します。この例では、キー ID 値を使用していますが、このコマンドでは、キー ID またはキー ARN を使用できます。  

```
aws kms list-key-policies \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```
出力:  

```
{
    "PolicyNames": [
    "default"
    ]
}
```
KMS キーポリシーの詳細については、 AWS 「 Key Management Service デベロッパーガイド」の[「KMS AWS でのキーポリシー](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)の使用」を参照してください。 *AWS *  
+  API の詳細については、AWS CLI コマンドリファレンスの「[ListKeyPolicies](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/list-key-policies.html)」を参照してください。**

### `list-key-rotations`
<a name="kms_ListKeyRotations_cli_2_topic"></a>

次のコード例は、`list-key-rotations` を使用する方法を示しています。

**AWS CLI**  
**完了したすべてのキーマテリアルローテーションに関する情報を取得するには**  
次の `list-key-rotations` の例では、指定された KMS キーに対して完了したすべてのキーマテリアルローテーションに関する情報を一覧表示します。  

```
aws kms list-key-rotations \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```
出力:  

```
{
    "Rotations": [
        {
            "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
            "RotationDate": "2024-03-02T10:11:36.564000+00:00",
            "RotationType": "AUTOMATIC"
        },
        {
            "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
            "RotationDate": "2024-04-05T15:14:47.757000+00:00",
            "RotationType": "ON_DEMAND"
        }
    ],
    "Truncated": false
}
```
詳細については、「*AWS Key Management Service Developer Guide*」の「[Rotating keys](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[ListKeyRotations](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/list-key-rotations.html)」を参照してください。

### `list-keys`
<a name="kms_ListKeys_cli_2_topic"></a>

次のコード例は、`list-keys` を使用する方法を示しています。

**AWS CLI**  
**アカウントとリージョンの KMS キーを取得するには**  
次の `list-keys` の例は、アカウントとリージョンの KMS キーを取得します。このコマンドは、 AWS マネージドキーとカスタマーマネージドキーの両方を返します。  

```
aws kms list-keys
```
出力:  

```
{
    "Keys": [
        {
            "KeyArn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
            "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab"
        },
        {
            "KeyArn": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321",
            "KeyId": "0987dcba-09fe-87dc-65ba-ab0987654321"
        },
        {
            "KeyArn": "arn:aws:kms:us-east-2:111122223333:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d",
            "KeyId": "1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d"
        }
    ]
}
```
詳細については、「AWS Key Management Service デベロッパーガイド」の「[キーの表示](https://docs.aws.amazon.com/kms/latest/developerguide/viewing-keys.html)」を参照してください。**  
+  API の詳細については、AWS CLI コマンドリファレンスの「[ListKeys](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/list-keys.html)」を参照してください。**

### `list-resource-tags`
<a name="kms_ListResourceTags_cli_2_topic"></a>

次のコード例は、`list-resource-tags` を使用する方法を示しています。

**AWS CLI**  
**KMS キーのタグを取得するには**  
次の `list-resource-tags` の例では、KMS キーのタグを取得します。KMS キーのリソースタグを追加または置換するには、`tag-resource` コマンドを使用します。出力は、この KMS キーに 2 つのリソースタグがあり、それぞれにキーと値があることを示しています。  
KMS キーを指定するには、`key-id` パラメータを使用します。この例では、キー ID 値を使用していますが、このコマンドでは、キー ID またはキー ARN を使用できます。  

```
aws kms list-resource-tags \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```
出力:  

```
{
    "Tags": [
    {
        "TagKey": "Dept",
        "TagValue": "IT"
    },
    {
        "TagKey": "Purpose",
        "TagValue": "Test"
    }
    ],
    "Truncated": false
}
```
KMS でのタグの使用の詳細については、「 Key Management Service AWS デベロッパーガイド[」の「キーのタグ付け](https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html)」を参照してください。 *AWS *  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[ListResourceTags](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/list-resource-tags.html)」を参照してください。

### `list-retirable-grants`
<a name="kms_ListRetirableGrants_cli_2_topic"></a>

次のコード例は、`list-retirable-grants` を使用する方法を示しています。

**AWS CLI**  
**プリンシパルが廃止できる許可を表示するには**  
次の の`list-retirable-grants`例では、`ExampleAdmin`ユーザーが AWS アカウントとリージョンの KMS キーで廃止できるすべての許可を表示します。このようなコマンドを使用して、アカウントプリンシパルがアカウント AWS とリージョンの KMS キーで廃止できる許可を表示できます。  
必須の `retiring-principal` パラメータの値は、アカウント、ユーザー、またはロールの Amazon リソースネーム (ARN) である必要があります。  
このコマンドで `retiring-principal` の値としてサービスを指定することはできません。ただし、サービスが廃止プリンシパルである場合があります。特定のサービスが廃止プリンシパルである許可を見つけるには、`list-grants` コマンドを使用します。  
出力は、`ExampleAdmin` ユーザーがアカウントとリージョン内の 2 つの異なる KMS キーに対する許可を廃止するアクセス許可を持っていることを示しています。廃止プリンシパルに加えて、アカウントには、アカウント内の許可を廃止するアクセス許可があります。  

```
aws kms list-retirable-grants \
    --retiring-principal arn:aws:iam::111122223333:user/ExampleAdmin
```
出力:  

```
{
    "Grants": [
        {
            "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
            "GrantId": "156b69c63cb154aa21f59929ff19760717be8d9d82b99df53e18b94a15a5e88e",
            "Name": "",
            "CreationDate": 2021-01-14T20:17:36.419000+00:00,
            "GranteePrincipal": "arn:aws:iam::111122223333:user/ExampleUser",
            "RetiringPrincipal": "arn:aws:iam::111122223333:user/ExampleAdmin",
            "IssuingAccount": "arn:aws:iam::111122223333:root",
            "Operations": [
                "Encrypt"
            ],
            "Constraints": {
                "EncryptionContextSubset": {
                    "Department": "IT"
                }
            }
        },
        {
            "KeyId": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321",
            "GrantId": "8c94d1f12f5e69f440bae30eaec9570bb1fb7358824f9ddfa1aa5a0dab1a59b2",
            "Name": "",
            "CreationDate": "2021-02-02T19:49:49.638000+00:00",
            "GranteePrincipal": "arn:aws:iam::111122223333:role/ExampleRole",
            "RetiringPrincipal": "arn:aws:iam::111122223333:user/ExampleAdmin",
            "IssuingAccount": "arn:aws:iam::111122223333:root",
            "Operations": [
                "Decrypt"
            ],
            "Constraints": {
                "EncryptionContextSubset": {
                    "Department": "IT"
                }
            }
        }
    ],
    "Truncated": false
}
```
詳細については、*AWS 「 Key Management Service デベロッパーガイド*」の[「KMS AWS でのグラン](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)ト」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[ListRetirableGrants](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/list-retirable-grants.html)」を参照してください。

### `put-key-policy`
<a name="kms_PutKeyPolicy_cli_2_topic"></a>

次のコード例は、`put-key-policy` を使用する方法を示しています。

**AWS CLI**  
**KMS キーのキーポリシーを変更するには**  
次の `put-key-policy` の例は、カスタマーマネージドキーのキーポリシーを変更します。  
まず、キーポリシーを作成して、ローカルの JSON ファイルに保存します。この例では、`key_policy.json` がこのファイルです。また、キーポリシーを `policy` パラメータの文字列値として指定することもできます。  
このキーポリシーの最初のステートメントは、IAM ポリシーを使用して KMS キーへのアクセスを制御するアクセス許可を AWS アカウントに付与します。2 番目のステートメントは、KMS キーで `describe-key` コマンドおよび `list-keys` コマンドを実行する権限を `test-user` ユーザーに付与します。  
`key_policy.json` の内容:  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id" : "key-default-1",
    "Statement" : [
        {
            "Sid" : "Enable IAM User Permissions",
            "Effect" : "Allow",
            "Principal" : {
                "AWS" : "arn:aws:iam::111122223333:root"
            },
            "Action" : "kms:*",
            "Resource" : "*"
        },
        {
            "Sid" : "Allow Use of Key",
            "Effect" : "Allow",
            "Principal" : {
                "AWS" : "arn:aws:iam::111122223333:user/test-user"
            },
            "Action" : [
                "kms:DescribeKey",
                "kms:ListKeys"
            ],
            "Resource" : "*"
        }
    ]
}
```
この例では KMS キーの識別にキー ID を使用しますが、キー ARN を使用することもできます。キーポリシーを指定するために、このコマンドは `policy` パラメータを使用します。ポリシーがファイル内にあることを示すには、必要な `file://` プレフィックスを使用します。このプレフィックスは、サポートされているすべてのオペレーティングシステムでファイルを識別するために必要です。最後に、コマンドは値が `default` の `policy-name` パラメーターを使用します。ポリシー名を指定しない場合、デフォルト値は `default` となります。唯一の有効な値は `default` です。  

```
aws kms put-key-policy \
    --policy-name default \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --policy file://key_policy.json
```
このコマンドでは、出力が生成されません。コマンドが有効であることを確認するには、`get-key-policy` コマンドを使用します。次のコマンド例は、同じ KMS キーのキーポリシーを取得します。値が `text` の `output` パラメータは、読みやすいテキスト形式を返します。  

```
aws kms get-key-policy \
    --policy-name default \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --output text
```
出力:  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id" : "key-default-1",
    "Statement" : [
        {
            "Sid" : "Enable IAM User Permissions",
            "Effect" : "Allow",
            "Principal" : {
                "AWS" : "arn:aws:iam::111122223333:root"
            },
            "Action" : "kms:*",
            "Resource" : "*"
            },
            {
            "Sid" : "Allow Use of Key",
            "Effect" : "Allow",
            "Principal" : {
                "AWS" : "arn:aws:iam::111122223333:user/test-user"
            },
            "Action" : [ "kms:Describe", "kms:List" ],
            "Resource" : "*"
        }
    ]
}
```
詳細については、「AWS Key Management Service デベロッパーガイド」の「[キーポリシーの変更](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html)」を参照してください。**  
+  API の詳細については、AWS CLI コマンドリファレンスの「[PutKeyPolicy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/put-key-policy.html)」を参照してください。**

### `re-encrypt`
<a name="kms_ReEncrypt_cli_2_topic"></a>

次のコード例は、`re-encrypt` を使用する方法を示しています。

**AWS CLI**  
**例 1: 異なる対称 KMS キーで暗号化されたメッセージを再暗号化するには (Linux と macOS)**  
次の`re-encrypt`コマンド例は、 CLI AWS でデータを再暗号化するための推奨方法を示しています。  
ファイルに暗号文を指定します。`--ciphertext-blob` パラメータの値には、バイナリファイルからデータを読み取るように CLI に指示する `fileb://` プレフィックスを使用します。ファイルが現在のディレクトリにない場合は、ファイルへのフルパスを入力します。ファイルから AWS CLI パラメータ値を読み取る方法の詳細については、*AWS 「 コマンドラインインターフェイスユーザーガイド*[AWS 」の「ファイルからの CLI パラメータのロード](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-file.html)」および*AWS 「 コマンドラインツールブログ*」の[「ローカルファイルパラメータのベストプラクティス](https://aws.amazon.com/blogs/developer/best-practices-for-local-file-parameters/)」を参照してください。暗号化テキストを復号するソース KMS キーを指定します。対称暗号化 KMS キーで復号する場合、 `--source-key-id` パラメータは必要ありません。 AWS KMS は、暗号化テキスト BLOB のメタデータからデータを暗号化するために使用された KMS キーを取得できます。ただし、ベストプラクティスは常に、使用している KMS キーを指定することです。この方法により、意図した KMS キーを使用することができ、信頼できない KMS キーを使用して誤って暗号文を復号するのを防ぐことができます。送信先の KMS キーを指定して、データを再暗号化します。`--destination-key-id` パラメータは常に必須です。この例ではキー ARN を使用していますが、有効である限り任意のキー識別子を使用できます。プレーンテキストの出力をテキスト値としてリクエストします。`--query` パラメータは、出力から `Plaintext` フィールドの値のみを取得するよう CLI に命令します。`--output` パラメータは出力を text.Base64 でデコードしたプレーンテキストとして返し、ファイルに保存します。次の例では、`Plaintext` パラメータの値を Base64 ユーティリティにパイプ (\$1) して、Base64 ユーティリティでデコードします。次に、デコードされた出力を `ExamplePlaintext` ファイルにリダイレクト (>) します。  
このコマンドを実行する前に、サンプルキー IDsを AWS アカウントの有効なキー識別子に置き換えます。  

```
aws kms re-encrypt \
    --ciphertext-blob fileb://ExampleEncryptedFile \
    --source-key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --destination-key-id 0987dcba-09fe-87dc-65ba-ab0987654321 \
    --query CiphertextBlob \
    --output text | base64 --decode > ExampleReEncryptedFile
```
このコマンドでは何も出力されません。`re-encrypt` コマンドからの出力は base64 でデコードされ、ファイルに保存されます。  
詳細については、「*AWS Key Management Service API リファレンス*」の「[ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html)」を参照してください。  
**例 2: 異なる対称 KMS キーで暗号化されたメッセージを再暗号化するには (Windows コマンドプロンプト)**  
次の `re-encrypt` の例は、`certutil` ユーティリティを使用してプレーンテキストデータを Base64 でデコードする点を除いて、前の例と同じです。この手順には、次の例に示すように 2 つのコマンドが必要です。  
このコマンドを実行する前に、サンプルキー ID を AWS アカウントの有効なキー ID に置き換えます。  

```
aws kms re-encrypt ^
    --ciphertext-blob fileb://ExampleEncryptedFile ^
    --source-key-id 1234abcd-12ab-34cd-56ef-1234567890ab ^
    --destination-key-id 0987dcba-09fe-87dc-65ba-ab0987654321 ^
    --query CiphertextBlob ^
    --output text > ExampleReEncryptedFile.base64
```
その後、`certutil` ユーティリティーを使用します。  

```
certutil -decode ExamplePlaintextFile.base64 ExamplePlaintextFile
```
出力:  

```
Input Length = 18
Output Length = 12
CertUtil: -decode command completed successfully.
```
詳細については、「*AWS Key Management Service API リファレンス*」の「[ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html)」を参照してください。  
+  API の詳細については、AWS CLI コマンドリファレンスの「[ReEncrypt](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/re-encrypt.html)」を参照してください。**

### `retire-grant`
<a name="kms_RetireGrant_cli_2_topic"></a>

次のコード例は、`retire-grant` を使用する方法を示しています。

**AWS CLI**  
**カスタマーマスターキーの権限を廃止するには**  
次の `retire-grant` の例は、KMS キーから権限を削除します。  
次のコマンド例は、`grant-id` パラメータと `key-id` パラメータを指定します。`key-id` パラメータの値は、KMS キーのキー ARN である必要があります。  

```
aws kms retire-grant \
    --grant-id 1234a2345b8a4e350500d432bccf8ecd6506710e1391880c4f7f7140160c9af3 \
    --key-id arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
```
このコマンドは何も出力しません。権限が廃止されたことを確認するには、`list-grants` コマンドを使用します。  
詳細については、「AWS Key Management Service デベロッパーガイド」の「[グラントの使用停止と取り消し](https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#grant-delete)」を参照してください。**  
+  API の詳細については、AWS CLI コマンドリファレンスの「[RetireGrant](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/retire-grant.html)」を参照してください。**

### `revoke-grant`
<a name="kms_RevokeGrant_cli_2_topic"></a>

次のコード例は、`revoke-grant` を使用する方法を示しています。

**AWS CLI**  
**カスタマーマスターキーの権限を取り消すには**  
次の `revoke-grant` の例は、KMS キーから権限を削除します。次のコマンド例は、`grant-id` パラメータと `key-id` パラメータを指定します。`key-id` パラメータの値には、KMS キーのキー ID またはキー ARN を使用できます。  

```
aws kms revoke-grant \
    --grant-id 1234a2345b8a4e350500d432bccf8ecd6506710e1391880c4f7f7140160c9af3 \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```
このコマンドは何も出力しません。権限が取り消されたことを確認するには、`list-grants` コマンドを使用します。  
詳細については、「AWS Key Management Service デベロッパーガイド」の「[グラントの使用停止と取り消し](https://docs.aws.amazon.com/kms/latest/developerguide/grant-manage.html#grant-delete)」を参照してください。**  
+  API の詳細については、AWS CLI コマンドリファレンスの「[RevokeGrant](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/revoke-grant.html)」を参照してください。**

### `rotate-key-on-demand`
<a name="kms_RotateKeyOnDemand_cli_2_topic"></a>

次のコード例は、`rotate-key-on-demand` を使用する方法を示しています。

**AWS CLI**  
**KMS キーのオンデマンドローテーションを実行するには**  
次の `rotate-key-on-demand` の例では、指定された KMS キーのキーマテリアルのローテーションをすぐに開始します。  

```
aws kms rotate-key-on-demand \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```
出力:  

```
{
    "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab"
}
```
詳細については、「*AWS Key Management Service デベロッパーガイド*」の「[How to perform on-demand key rotation](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html#rotating-keys-on-demand)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[RotateKeyOnDemand](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/rotate-key-on-demand.html)」を参照してください。

### `schedule-key-deletion`
<a name="kms_ScheduleKeyDeletion_cli_2_topic"></a>

次のコード例は、`schedule-key-deletion` を使用する方法を示しています。

**AWS CLI**  
**カスタマーマネージド KMS キーの削除をスケジュールするには**  
次の `schedule-key-deletion` の例は、指定されたカスタマーマネージド KMS キーを 15 日後に削除するようにスケジュールします。  
`--key-id` パラメータは KMS キーを識別します。この例では、キーの ARN 値を使用していますが、キー ID または KMS キー ARN のいずれかを使用できます。`--pending-window-in-days` パラメータは 7 ～ 30 日の待機期間の長さを指定します。デフォルトでは、待機時間は 30 日です。この例では、値として 15 を指定し、コマンドの完了から 15 日後に AWS に KMS キーを完全に削除するように指示します。  

```
aws kms schedule-key-deletion \
    --key-id arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab \
    --pending-window-in-days 15
```
レスポンスには、キー ARN、キーの状態、待機期間 (`PendingWindowInDays`)、および UNIX 時間の削除日が含まれます。削除日を現地時間で表示するには、KMS AWS コンソールを使用します。`PendingDeletion` キー状態の KMS キーを暗号化処理で使用することはできません。  

```
{
    "KeyId": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "DeletionDate": "2022-06-18T23:43:51.272000+00:00",
    "KeyState": "PendingDeletion",
    "PendingWindowInDays": 15
}
```
詳細については、「**AWS Key Management Service デベロッパーガイド」の「[Deleting keys](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html)」を参照してください。  
+  API の詳細については、AWS CLI コマンドリファレンスの「[ScheduleKeyDeletion](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/schedule-key-deletion.html)」を参照してください。**

### `sign`
<a name="kms_Sign_cli_2_topic"></a>

次のコード例は、`sign` を使用する方法を示しています。

**AWS CLI**  
**例 1: メッセージ向けデジタル署名を生成するには**  
次の `sign` 例では、短いメッセージ向けの暗号化署名を生成します。コマンドの出力には、`verify` コマンドを使用して検証できる、Base64 エンコードされた `Signature` フィールドが含まれています。  
署名するメッセージと、非対称 KMS キーがサポートする署名アルゴリズムを指定する必要があります。KMS キー向け署名アルゴリズムを取得するには、`describe-key` コマンドを使用します。  
 AWS CLI v2 では、 `message`パラメータの値は Base64-encodedされている必要があります。または、メッセージをファイルに保存し、 `fileb://` プレフィックスを使用して、ファイルからバイナリデータを読み取るように AWS CLI に指示することもできます。  
このコマンドを実行する前に、サンプルキー ID を AWS アカウントの有効なキー ID に置き換えます。キー ID は、キー用途が SIGN\$1VERIFY である非対称 KMS キーを表している必要があります。  

```
msg=(echo 'Hello World' | base64)

aws kms sign \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --message fileb://UnsignedMessage \
    --message-type RAW \
    --signing-algorithm RSASSA_PKCS1_V1_5_SHA_256
```
出力:  

```
{
    "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "Signature": "ABCDEFhpyVYyTxbafE74ccSvEJLJr3zuoV1Hfymz4qv+/fxmxNLA7SE1SiF8lHw80fKZZ3bJ...",
    "SigningAlgorithm": "RSASSA_PKCS1_V1_5_SHA_256"
}
```
KMS で非対称 KMS AWS キーを使用する方法の詳細については、「 Key Management Service デベロッパーガイド」の[「KMS AWS の非対称](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)キー」を参照してください。 *AWS *  
**例 2: デジタル署名をファイルに保存するには (Linux および macOs)**  
次の `sign` 例では、ローカルファイルに保存されている短いメッセージ向けの暗号化署名を生成します。コマンドはレスポンスから `Signature` プロパティも取得し、これを Base64 デコードして ExampleSignature ファイルに保存します。この署名ファイルを、署名検証用の `verify` コマンドで使用できます。  
`sign` コマンドには、Base64 エンコードされたメッセージと、非対称 KMS キーがサポートする署名アルゴリズムが必要です。KMS キーがサポートする署名アルゴリズムを取得するには、`describe-key` コマンドを使用します。  
このコマンドを実行する前に、サンプルキー ID を AWS アカウントの有効なキー ID に置き換えます。キー ID は、キー用途が SIGN\$1VERIFY である非対称 KMS キーを表している必要があります。  

```
echo 'hello world' | base64 > EncodedMessage

aws kms sign \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --message fileb://EncodedMessage \
    --message-type RAW \
    --signing-algorithm RSASSA_PKCS1_V1_5_SHA_256 \
    --output text \
    --query Signature | base64 --decode > ExampleSignature
```
このコマンドは何も出力しません。この例では、出力の `Signature` プロパティを抽出し、ファイルに保存します。  
KMS で非対称 KMS AWS キーを使用する方法の詳細については、「 Key Management Service デベロッパーガイド」の[「KMS AWS の非対称](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)キー」を参照してください。 *AWS *  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[Sign](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/sign.html)」を参照してください。

### `tag-resource`
<a name="kms_TagResource_cli_2_topic"></a>

次のコード例は、`tag-resource` を使用する方法を示しています。

**AWS CLI**  
**KMS キーにタグを追加するには**  
次の `tag-resource` 例では、カスタマーマネージド KMS キーに `"Purpose":"Test"` タグと `"Dept":"IT"` タグを追加します。これらのタグを使用して KMS キーにラベルを付け、アクセス許可用と監査用の KMS キーカテゴリを作成できます。  
KMS キーを指定するには、`key-id` パラメータを使用します。この例では、キー ID 値を使用していますが、このコマンドでは、キー ID またはキー ARN を使用できます。  

```
aws kms tag-resource \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --tags TagKey='Purpose',TagValue='Test' TagKey='Dept',TagValue='IT'
```
このコマンドでは何も出力されません。KMS KMS AWS キーのタグを表示するには、 `list-resource-tags` コマンドを使用します。  
KMS でのタグの使用の詳細については、「 Key Management Service AWS デベロッパーガイド[」の「キーのタグ付け](https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html)」を参照してください。 *AWS *  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[TagResource](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/tag-resource.html)」を参照してください。

### `untag-resource`
<a name="kms_UntagResource_cli_2_topic"></a>

次のコード例は、`untag-resource` を使用する方法を示しています。

**AWS CLI**  
**KMS キーからタグを削除するには**  
次の `untag-resource` の例では、カスタマーマネージド KMS キーから `"Purpose"` キーを持つタグを削除します。  
KMS キーを指定するには、`key-id` パラメータを使用します。この例では、キー ID 値を使用していますが、このコマンドでは、キー ID またはキー ARN を使用できます。このコマンドを実行する前に、サンプルキー ID を AWS アカウントの有効なキー ID に置き換えます。  

```
aws kms untag-resource \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --tag-key 'Purpose'
```
このコマンドでは何も出力されません。KMS KMS AWS キーのタグを表示するには、 `list-resource-tags` コマンドを使用します。  
KMS でのタグの使用の詳細については、「 Key Management Service AWS デベロッパーガイド[」の「キーのタグ付け](https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html)」を参照してください。 *AWS *  
+  API の詳細については、「AWS CLI コマンドリファレンス」の「[UntagResource](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/untag-resource.html)」を参照してください。

### `update-alias`
<a name="kms_UpdateAlias_cli_2_topic"></a>

次のコード例は、`update-alias` を使用する方法を示しています。

**AWS CLI**  
**エイリアスを別の KMS キーに関連付けるには**  
次の `update-alias` の例は、エイリアス `alias/test-key` を別の KMS キーに関連付けます。  
`--alias-name` パラメータはエイリアス名を指定します。エイリアス名の値は `alias/` で始まる必要があります。`--target-key-id` パラメータは、エイリアスに関連付ける KMS キーを指定します。エイリアスの現在の KMS キーを指定する必要はありません。  

```
aws kms update-alias \
    --alias-name alias/test-key \
    --target-key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```
このコマンドは何も出力しません。エイリアスを見つけるには、`list-aliases` コマンドを使用します。  
詳細については、「AWS Key Management Service デベロッパーガイド」の「[エイリアスの更新](https://docs.aws.amazon.com/kms/latest/developerguide/alias-manage.html#alias-update)」を参照してください。**  
+  API の詳細については、AWS CLI コマンドリファレンスの「[UpdateAlias](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/update-alias.html)」を参照してください。**

### `update-custom-key-store`
<a name="kms_UpdateCustomKeyStore_cli_2_topic"></a>

次のコード例は、`update-custom-key-store` を使用する方法を示しています。

**AWS CLI**  
**例 1: カスタムキーストアのわかりやすい名前を編集するには**  
次の `update-custom-key-store` の例では、カスタムキーストアの名前を変更します。この例では、 AWS CloudHSM キーストアまたは外部キーストアで動作します。  
`custom-key-store-id` を使用して、キーストアを識別します。`new-custom-key-store-name` パラメータを使用して、新しいフレンドリ名を指定します。  
 AWS CloudHSM キーストアのフレンドリ名を更新するには、まず `disconnect-custom-key-store` コマンドを使用するなどしてキーストアを切断する必要があります。外部キーストアのわかりやすい名前は、外部キーストアが接続されていても切断されていても更新できます。カスタムキーストアの接続状態を確認するには、`describe-custom-key-store` コマンドを使用します。  

```
aws kms update-custom-key-store \
    --custom-key-store-id cks-1234567890abcdef0 \
    --new-custom-key-store-name ExampleKeyStore
```
このコマンドはデータを返しません。コマンドが機能したことを確認するには、`describe-custom-key-stores` コマンドを使用します。  
 AWS CloudHSM キーストアの更新の詳細については、「 Key Management Service デベロッパーガイド」の[「Editing AWS CloudHSM key store settings](https://docs.aws.amazon.com/kms/latest/developerguide/update-keystore.html)」を参照してください。 *AWS *  
外部キーストアの更新の詳細については、「*AWS Key Management Service デベロッパーガイド*」の「[外部キーストアのプロパティの編集](https://docs.aws.amazon.com/kms/latest/developerguide/update-xks-keystore.html)」を参照してください。  
**例 2: AWS CloudHSM キーストアの kmsuser パスワードを編集するには**  
次の `update-custom-key-store` 例では、`kmsuser` パスワードの値を、指定されたキーストアに関連付けられた CloudHSM クラスター内の `kmsuser` の現在のパスワードに更新します。このコマンドは、クラスターの `kmsuser` パスワードを変更しません。現在のパスワードを KMS AWS に伝えるだけです。KMS に現在の`kmsuser`パスワードがない場合は、 AWS CloudHSM キーストアに接続できません。  
**注:** AWS CloudHSM キーストアを更新する前に、そのキーストアを切断する必要があります。`disconnect-custom-key-store` コマンドを使用します。コマンドが完了したら、 AWS CloudHSM キーストアを再接続できます。`connect-custom-key-store` コマンドを使用します。  

```
aws kms update-custom-key-store \
    --custom-key-store-id cks-1234567890abcdef0 \
    --key-store-password ExamplePassword
```
このコマンドは出力を返しません。変更が有効であることを確認するには、`describe-custom-key-stores` コマンドを使用します。  
 AWS CloudHSM キーストアの更新の詳細については、「 Key Management Service デベロッパーガイド」の[「Editing AWS CloudHSM key store settings](https://docs.aws.amazon.com/kms/latest/developerguide/update-keystore.html)」を参照してください。 *AWS *  
**例 3: AWS CloudHSM キーストアの AWS CloudHSM クラスターを編集するには**  
次の例では、 AWS CloudHSM キーストアに関連付けられている AWS CloudHSM クラスターを、同じクラスターの別のバックアップなど、関連するクラスターに変更します。  
**注:** AWS CloudHSM キーストアを更新する前に、そのキーストアを切断する必要があります。`disconnect-custom-key-store` コマンドを使用します。コマンドが完了したら、 AWS CloudHSM キーストアを再接続できます。`connect-custom-key-store` コマンドを使用します。  

```
aws kms update-custom-key-store \
    --custom-key-store-id cks-1234567890abcdef0 \
    --cloud-hsm-cluster-id cluster-1a23b4cdefg
```
このコマンドは出力を返しません。変更が有効であることを確認するには、`describe-custom-key-stores` コマンドを使用します。  
 AWS CloudHSM キーストアの更新の詳細については、「 Key Management Service デベロッパーガイド」の[「Editing AWS CloudHSM key store settings](https://docs.aws.amazon.com/kms/latest/developerguide/update-keystore.html)」を参照してください。 *AWS *  
**例 4: 外部キーストアのプロキシ認証情報を編集するには**  
次の例では、外部キーストアのプロキシ認証の認証情報を更新を更新します。値のうち 1 つを変更する場合でも、`raw-secret-access-key` と `access-key-id` の両方を指定する必要があります。この機能を使用して、無効な認証情報を修正したり、外部キーストアプロキシが認証情報をローテーションしたときに認証情報を変更したりできます。  
外部キーストアで KMS AWS のプロキシ認証情報を確立します。次に、このコマンドを使用して認証情報を KMS AWS に提供します。 AWS KMS はこの認証情報を使用して、外部キーストアプロキシへのリクエストに署名します。  
外部キーストアの接続または切断中にプロキシ認証情報を更新できます。カスタムキーストアの接続状態を確認するには、`describe-custom-key-store` コマンドを使用します。  

```
aws kms update-custom-key-store \
    --custom-key-store-id cks-1234567890abcdef0 \
    --xks-proxy-authentication-credential "AccessKeyId=ABCDE12345670EXAMPLE, RawSecretAccessKey=DXjSUawnel2fr6SKC7G25CNxTyWKE5PF9XX6H/u9pSo="
```
このコマンドは出力を返しません。変更が有効であることを確認するには、`describe-custom-key-stores` コマンドを使用します。  
外部キーストアの更新の詳細については、「*AWS Key Management Service デベロッパーガイド*」の「[外部キーストアのプロパティの編集](https://docs.aws.amazon.com/kms/latest/developerguide/update-xks-keystore.html)」を参照してください。  
**例 5: 外部キーストアのプロキシ接続を編集するには**  
次の例では、外部キーストアのプロキシ接続オプションをパブリックエンドポイント接続から VPC エンドポイントサービス接続に変更します。`xks-proxy-connectivity` 値を変更するだけでなく、VPC エンドポイントサービスに関連付けられたプライベート DNS 名を反映するように `xks-proxy-uri-endpoint` 値を変更する必要があります。また、`xks-proxy-vpc-endpoint-service-name` 値を追加する必要があります。  
**注:** 外部ストアのプロキシ接続を更新する前に、プロキシ接続を切断する必要があります。`disconnect-custom-key-store` コマンドを使用します。コマンドが完了したら、`connect-custom-key-store` コマンドを使用して外部キーストアを再接続できます。  

```
aws kms update-custom-key-store \
    --custom-key-store-id cks-1234567890abcdef0 \
    --xks-proxy-connectivity VPC_ENDPOINT_SERVICE \
    --xks-proxy-uri-endpoint "https://myproxy-private.xks.example.com" \
    --xks-proxy-vpc-endpoint-service-name "com.amazonaws.vpce.us-east-1.vpce-svc-example"
```
このコマンドは出力を返しません。変更が有効であることを確認するには、`describe-custom-key-stores` コマンドを使用します。  
外部キーストアの更新の詳細については、「*AWS Key Management Service デベロッパーガイド*」の「[外部キーストアのプロパティの編集](https://docs.aws.amazon.com/kms/latest/developerguide/update-xks-keystore.html)」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[UpdateCustomKeyStore](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/update-custom-key-store.html)」を参照してください。

### `update-key-description`
<a name="kms_UpdateKeyDescription_cli_2_topic"></a>

次のコード例は、`update-key-description` を使用する方法を示しています。

**AWS CLI**  
**例 1: カスタマーマネージド KMS キーに説明を追加または変更するには**  
次の `update-key-description` 例では、カスタマーマネージド KMS キーに説明を追加します。同じコマンドを使用して、既存の説明を変更できます。  
`--key-id` パラメータは、コマンドの KMS キーを識別します。この例では、キーの ARN 値を使用していますが、キー ID または KMS キー ARN のいずれかを使用できます。`--description` パラメータは新しい説明を指定します。このパラメータの値は、KMS キーの現在の説明 (ある場合) を置き換えます。  

```
aws kms update-key-description \
    --key-id arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab \
    --description "IT Department test key"
```
このコマンドは何も出力しません。KMS キーの説明を表示するには、`describe-key` コマンドを使用します。  
詳細については、「AWS Key Management Service API リファレンス」の「[UpdateKeyDescription](https://docs.aws.amazon.com/cli/latest/reference/kms/update-key-description.html)」を参照してください。**  
**例 2: カスタマーマネージド KMS キーの説明を削除するには**  
次の `update-key-description` の例では、カスタマーマネージド KMS キーの説明を削除します。  
`--key-id` パラメータは、コマンドの KMS キーを識別します。この例ではキー ID 値を使用しますが、KMS キーのキー ID またはキー ARN を使用できます。空の文字列値 ('') を持つ `--description` パラメータは、既存の説明を削除します。  

```
aws kms update-key-description \
    --key-id 0987dcba-09fe-87dc-65ba-ab0987654321 \
    --description ''
```
このコマンドは何も出力しません。KMS キーの説明を表示するには、describe-key コマンドを使用します。  
詳細については、「AWS Key Management Service API リファレンス」の「[UpdateKeyDescription](https://docs.aws.amazon.com/cli/latest/reference/kms/update-key-description.html)」を参照してください。**  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[UpdateKeyDescription](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/update-key-description.html)」を参照してください。

### `verify-mac`
<a name="kms_VerifyMac_cli_2_topic"></a>

次のコード例は、`verify-mac` を使用する方法を示しています。

**AWS CLI**  
**例 1: HMAC を検証するには**  
次の `verify-mac` コマンドは、特定のメッセージの HMAC、HMAC KMS キー、および MAC アルゴリズムを検証します。レスポンスの MacValid 値が「true」の場合、HMAC は有効であることを示します。  
 AWS CLI v2 では、 `message`パラメータの値は Base64-encodedされている必要があります。または、メッセージをファイルに保存し、 `fileb://` プレフィックスを使用して、ファイルからバイナリデータを読み取るように AWS CLI に指示することもできます。  
指定する MAC は Base64 でエンコードされているものであってはなりません。`generate-mac` コマンドが返す MAC のデコードについては、`generate-mac` コマンドの例を参照してください。  
このコマンドを実行する前に、サンプルキー ID を AWS アカウントの有効なキー ID に置き換えます。キー ID は、キー用途が `GENERATE_VERIFY_MAC` の HMAC KMS キーを表す必要があります。  

```
msg=(echo 'Hello World' | base64)

aws kms verify-mac \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --message fileb://Message \
    --mac-algorithm HMAC_SHA_384 \
    --mac fileb://ExampleMac
```
出力:  

```
{
    "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "MacValid": true,
    "MacAlgorithm": "HMAC_SHA_384"
}
```
KMS での HMAC KMS AWS キーの使用の詳細については、「 Key Management Service デベロッパーガイド」の[「KMS AWS での HMAC キー](https://docs.aws.amazon.com/kms/latest/developerguide/hmac.html)」を参照してください。 *AWS *  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[VerifyMac](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/verify-mac.html)」を参照してください。

### `verify`
<a name="kms_Verify_cli_2_topic"></a>

次のコード例は、`verify` を使用する方法を示しています。

**AWS CLI**  
**デジタル署名を検証するには**  
次の `verify` は、短い Base64 でエンコードされたメッセージの暗号化署名を検証します。キー ID、メッセージ、メッセージタイプ、署名アルゴリズムは、メッセージの署名に使用されたものと同じである必要があります。  
 AWS CLI v2 では、 `message`パラメータの値は Base64-encodedされている必要があります。または、メッセージをファイルに保存し、 `fileb://` プレフィックスを使用して、ファイルからバイナリデータを読み取るように AWS CLI に指示することもできます。  
指定する署名は Base64 エンコードされているものであってはなりません。`sign` コマンドが返す署名のデコードについては、`sign` コマンドの例を参照してください。  
コマンドの出力には、署名が検証済みであることを示すブール値 `SignatureValid` フィールドが含まれます。署名の検証が失敗した場合、`verify` コマンドの実行結果も失敗となります。  
このコマンドを実行する前に、サンプルキー ID を AWS アカウントの有効なキー ID に置き換えます。  

```
aws kms verify \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --message fileb://EncodedMessage \
    --message-type RAW \
    --signing-algorithm RSASSA_PKCS1_V1_5_SHA_256 \
    --signature fileb://ExampleSignature
```
出力:  

```
{
    "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
    "SignatureValid": true,
    "SigningAlgorithm": "RSASSA_PKCS1_V1_5_SHA_256"
}
```
KMS で非対称 KMS AWS キーを使用する方法の詳細については、*AWS 「 Key Management Service* [デベロッパーガイド」の「非対称キー](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html)の使用」を参照してください。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[Verify](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/verify.html)」を参照してください。