翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
キーポリシーの使用
このトピックの例では、AWS KMS API を使用して AWS KMS keys のキーポリシーを表示、変更します。
キーポリシー、IAM ポリシー、権限を使用して、KMS キーへのアクセスを管理する方法の詳細は、の認証とアクセスコントロール AWS KMS を参照してください。JSON ポリシードキュメントの記述と書式設定については、『 IAM ユーザーガイド』の「IAM JSON ポリシーリファレンス 」を参照してください。
キーポリシー名のリスト化
のキーポリシーの名前を取得するにはAWS KMS key、 ListKeyPoliciesオペレーションを使用します。返される唯一のキーポリシー名は、default です。
クライアントオブジェクトを必要とする言語では、これらの例では「クライアントの作成」で作成した AWS KMS クライアントオブジェクトを使用します。
- Java
-
Java の実装の詳細については、 AWS SDK for Java API リファレンスの listKeyPolicies メソッドを参照してください。
// List key policies // // Replace the following example key ARN with a valid key ID or key ARN String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; ListKeyPoliciesRequest req = new ListKeyPoliciesRequest().withKeyId(keyId); ListKeyPoliciesResult result = kmsClient.listKeyPolicies(req);
- C#
-
詳細については、AWS SDK for .NET の「ListKeyPolicies メソッド」を参照してください。
// List key policies // // Replace the following example key ARN with a valid key ID or key ARN String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; ListKeyPoliciesRequest listKeyPoliciesRequest = new ListKeyPoliciesRequest() { KeyId = keyId }; ListKeyPoliciesResponse listKeyPoliciesResponse = kmsClient.ListKeyPolicies(listKeyPoliciesRequest);
- Python
-
詳細については、AWS SDK for Python (Boto3) の「
list_key_policies
メソッド」を参照してください。 # List key policies # Replace the following example key ARN with a valid key ID or key ARN key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kms_client.list_key_policies( KeyId=key_id )
- Ruby
-
詳細については、AWS SDK for Ruby の「
list_key_policies
インスタンスメソッド」を参照してください。# List key policies # Replace the following example key ARN with a valid key ID or key ARN key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kmsClient.list_key_policies({ key_id: key_id })
- PHP
-
詳細については、AWS SDK for PHP の「ListKeyPolicies メソッド」を参照してください。
// List key policies // // Replace the following example key ARN with a valid key ID or key ARN $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; $result = $KmsClient->listKeyPolicies([ 'KeyId' => $keyId ]);
- Node.js
-
詳細については、 AWS SDK for in JavaScript Node.js の listKeyPolicies プロパティを参照してください。
// List key policies // // Replace the following example key ARN with a valid key ID or key ARN const KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; kmsClient.listKeyPolicies({ KeyId }, (err, data) => { ... });
- PowerShell
デフォルトキーポリシーの名前を一覧表示するには、Get-KMSKeyPolicyList コマンドレットを使用します。
# List key policies # Replace the following example key ARN with a valid key ID or key ARN $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' $response = Get-KMSKeyPolicyList -KeyId $keyId
AWS KMS PowerShell コマンドレットを使用するには、AWS.Tools.KeyManagementService
モジュールをインストールします。詳細については、『AWS Tools for Windows PowerShell ユーザーガイド』を参照してください。
キーポリシーの取得
のキーポリシーを取得するにはAWS KMS key、 GetKeyPolicyオペレーションを使用します。
GetKeyPolicy にはポリシー名が必要です。唯一の有効なポリシー名は、default です。
クライアントオブジェクトを必要とする言語では、これらの例では「クライアントの作成」で作成した AWS KMS クライアントオブジェクトを使用します。
- Java
-
詳細については、 AWS SDK for Java API リファレンスの getKeyPolicy メソッドを参照してください。
// Get the policy for a KMS key // // Replace the following example key ARN with a valid key ID or key ARN String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; String policyName = "default"; GetKeyPolicyRequest req = new GetKeyPolicyRequest().withKeyId(keyId).withPolicyName(policyName); GetKeyPolicyResult result = kmsClient.getKeyPolicy(req);
- C#
-
詳細については、AWS SDK for .NET の「GetKeyPolicy メソッド」を参照してください。
// Get the policy for a KMS key // // Replace the following example key ARN with a valid key ID or key ARN String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; String policyName = "default"; GetKeyPolicyRequest getKeyPolicyRequest = new GetKeyPolicyRequest() { KeyId = keyId, PolicyName = policyName }; GetKeyPolicyResponse getKeyPolicyResponse = kmsClient.GetKeyPolicy(getKeyPolicyRequest);
- Python
-
詳細については、AWS SDK for Python (Boto3) の「
get_key_policy
メソッド」を参照してください。 # Get the policy for a KMS key # Replace the following example key ARN with a valid key ID or key ARN key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' policy_name = 'default' response = kms_client.get_key_policy( KeyId=key_id, PolicyName=policy_name )
- Ruby
-
詳細については、AWS SDK for Ruby の「
get_key_policy
インスタンスメソッド」を参照してください。# Get the policy for a KMS key # Replace the following example key ARN with a valid key ID or key ARN key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' policy_name = 'default' response = kmsClient.get_key_policy({ key_id: key_id, policy_name: policy_name })
- PHP
-
詳細については、AWS SDK for PHP の「GetKeyPolicy メソッド」を参照してください。
// Get the policy for a KMS key // // Replace the following example key ARN with a valid key ID or key ARN $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; $policyName = "default"; $result = $KmsClient->getKeyPolicy([ 'KeyId' => $keyId, 'PolicyName' => $policyName ]);
- Node.js
詳細については、 AWS SDK for in JavaScript Node.js の getKeyPolicy プロパティを参照してください。
// Get the policy for a KMS key // // Replace the following example key ARN with a valid key ID or key ARN const KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; const PolicyName = 'default'; kmsClient.getKeyPolicy({ KeyId, PolicyName }, (err, data) => { ... });
- PowerShell
KMS キーのキーポリシーを取得するには、Get-KMSKeyPolicy コマンドレットを使用します。このコマンドレットは、Write-KMSKeyPolicy () コマンドで使用できる文字列 (System.String
PutKeyPolicy
) としてキーポリシーを返します。JSON 文字列のポリシーをPSCustomObject
オブジェクトに変換するには、ConvertFrom-JSONコマンドレットを使用します。 # Get the policy for a KMS key # Replace the following example key ARN with a valid key ID or key ARN $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' $policyName = 'default' $response = Get-KMSKeyPolicy -KeyId $keyId -PolicyName $policyName
AWS KMS PowerShell コマンドレットを使用するには、AWS.Tools.KeyManagementService
モジュールをインストールします。詳細については、『AWS Tools for Windows PowerShell ユーザーガイド』を参照してください。
キーポリシーの設定
KMS キーのキーポリシーを作成または置き換えるには、 PutKeyPolicyオペレーションを使用します。
PutKeyPolicy
では、ポリシー名が必要です。唯一の有効なポリシー名は、default です。
クライアントオブジェクトを必要とする言語では、これらの例では「クライアントの作成」で作成した AWS KMS クライアントオブジェクトを使用します。
- Java
-
詳細については、 AWS SDK for Java API リファレンスの putKeyPolicy メソッドを参照してください。
// Set a key policy for a KMS key // // Replace the following example key ARN with a valid key ID or key ARN String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; String policyName = "default"; String policy = "{" + " \"Version\": \"2012-10-17\"," + " \"Statement\": [{" + " \"Sid\": \"Allow access for ExampleRole\"," + " \"Effect\": \"Allow\"," + // Replace the following example user ARN with a valid one " \"Principal\": {\"AWS\": \"arn:aws:iam::111122223333:role/ExampleKeyUserRole\"}," + " \"Action\": [" + " \"kms:Encrypt\"," + " \"kms:GenerateDataKey*\"," + " \"kms:Decrypt\"," + " \"kms:DescribeKey\"," + " \"kms:ReEncrypt*\"" + " ]," + " \"Resource\": \"*\"" + " }]" + "}"; PutKeyPolicyRequest req = new PutKeyPolicyRequest().withKeyId(keyId).withPolicy(policy).withPolicyName(policyName); kmsClient.putKeyPolicy(req);
- C#
-
詳細については、AWS SDK for .NET の「PutKeyPolicy メソッド」を参照してください。
// Set a key policy for a KMS key // // Replace the following example key ARN with a valid key ID or key ARN String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"; String policyName = "default"; String policy = "{" + " \"Version\": \"2012-10-17\"," + " \"Statement\": [{" + " \"Sid\": \"Allow access for ExampleUser\"," + " \"Effect\": \"Allow\"," + // Replace the following example user ARN with a valid one " \"Principal\": {\"AWS\": \"arn:aws:iam::111122223333:role/ExampleKeyUserRole\"}," + " \"Action\": [" + " \"kms:Encrypt\"," + " \"kms:GenerateDataKey*\"," + " \"kms:Decrypt\"," + " \"kms:DescribeKey\"," + " \"kms:ReEncrypt*\"" + " ]," + " \"Resource\": \"*\"" + " }]" + "}"; PutKeyPolicyRequest putKeyPolicyRequest = new PutKeyPolicyRequest() { KeyId = keyId, Policy = policy, PolicyName = policyName }; kmsClient.PutKeyPolicy(putKeyPolicyRequest);
- Python
-
詳細については、AWS SDK for Python (Boto3) の「
put_key_policy
メソッド」を参照してください。 # Set a key policy for a KMS key # Replace the following example key ARN with a valid key ID or key ARN key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' policy_name = 'default' policy = """ { "Version": "2012-10-17", "Statement": [{ "Sid": "Allow access for ExampleUser", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole"}, "Action": [ "kms:Encrypt", "kms:GenerateDataKey*", "kms:Decrypt", "kms:DescribeKey", "kms:ReEncrypt*" ], "Resource": "*" }] }""" response = kms_client.put_key_policy( KeyId=key_id, Policy=policy, PolicyName=policy_name )
- Ruby
-
詳細については、AWS SDK for Ruby の「
put_key_policy
インスタンスメソッド」を参照してください。# Set a key policy for a KMS key # Replace the following example key ARN with a valid key ID or key ARN key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' policy_name = 'default' policy = "{" + " \"Version\": \"2012-10-17\"," + " \"Statement\": [{" + " \"Sid\": \"Allow access for ExampleUser\"," + " \"Effect\": \"Allow\"," + # Replace the following example user ARN with a valid one " \"Principal\": {\"AWS\": \"arn:aws:iam::111122223333:role/ExampleKeyUserRole\"}," + " \"Action\": [" + " \"kms:Encrypt\"," + " \"kms:GenerateDataKey*\"," + " \"kms:Decrypt\"," + " \"kms:DescribeKey\"," + " \"kms:ReEncrypt*\"" + " ]," + " \"Resource\": \"*\"" + " }]" + "}" response = kmsClient.put_key_policy({ key_id: key_id, policy: policy, policy_name: policy_name })
- PHP
-
詳細については、AWS SDK for PHP の「PutKeyPolicy メソッド」を参照してください。
// Set a key policy for a KMS key // // Replace the following example key ARN with a valid key ID or key ARN $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; $policyName = "default"; $result = $KmsClient->putKeyPolicy([ 'KeyId' => $keyId, 'PolicyName' => $policyName, 'Policy' => '{ "Version": "2012-10-17", "Id": "custom-policy-2016-12-07", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/root" }, "Action": [ "kms:*" ], "Resource": "*" }, { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole" }, "Action": [ "kms:Encrypt*", "kms:GenerateDataKey*", "kms:Decrypt*", "kms:DescribeKey*", "kms:ReEncrypt*" ], "Resource": "*" } ] } ' ]);
- Node.js
詳細については、 AWS SDK for in JavaScript Node.js の putKeyPolicy プロパティを参照してください。
// Set a key policy for a KMS key // // Replace the following example key ARN with a valid key ID or key ARN const KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; const PolicyName = 'default'; const Policy = `{ "Version": "2012-10-17", "Id": "custom-policy-2016-12-07", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole" }, "Action": [ "kms:Encrypt*", "kms:GenerateDataKey*", "kms:Decrypt*", "kms:DescribeKey*", "kms:ReEncrypt*" ], "Resource": "*" } ] }`; // The key policy document kmsClient.putKeyPolicy({ KeyId, Policy, PolicyName }, (err, data) => { ... });
- PowerShell
KMS キーのキーポリシーを設定するには、Write-KMSKeyPolicy コマンドレットを使用します。このコマンドレットは出力を返しません。コマンドが有効であることを確認するには、Get-KMSKeyPolicy コマンドレットを使用します。
Policy
パラメータは文字列を受け取ります。リテラル文字列にするには、文字列を一重引用符で囲みます。リテラル文字列で継続文字やエスケープ文字を使用する必要はありません。# Set a key policy for a KMS key # Replace the following example key ARN with a valid key ID or key ARN $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' $policyName = 'default' $policy = '{ "Version": "2012-10-17", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleKeyUserRole" }, "Action": [ "kms:Encrypt*", "kms:GenerateDataKey*", "kms:Decrypt*", "kms:DescribeKey*", "kms:ReEncrypt*" ], "Resource": "*" }] }' Write-KMSKeyPolicy -KeyId $keyId -PolicyName $policyName -Policy $policy
AWS KMS PowerShell コマンドレットを使用するには、AWS.Tools.KeyManagementService
モジュールをインストールします。詳細については、「AWS Tools for Windows PowerShell ユーザーガイド」を参照してください。