許可の使用
このトピックの例では、AWS KMS API を使用して、AWS KMS keys の権限の作成、表示、使用停止、取り消しをします。AWS KMS での許可の使用の詳細については、「AWS KMS での権限」を参照してください。
許可の作成
AWS KMS key の権限を作成するには、CreateGrant オペレーションを使用します。応答には、許可 ID と許可トークンのみが含まれます。許可に関する詳細情報を取得するには、に示すように、 ListGrants オペレーションを使用します 許可の表示。
以下の例では、アカウント内の IAM ユーザーである Alice が、KeyId
パラメータで識別される KMS キーの GenerateDataKey オペレーションを呼び出します。
クライアントオブジェクトを必要とする言語では、これらの例では「AWS KMS」で作成した クライアントの作成 クライアントオブジェクトを使用します。
- Java
-
詳細については、AWS SDK for Java API リファレンスの createGrant メソッド を参照してください。
// Create a grant // // 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 granteePrincipal = "arn:aws:iam::111122223333:user/Alice"; String operation = GrantOperation.GenerateDataKey.toString(); CreateGrantRequest request = new CreateGrantRequest() .withKeyId(keyId) .withGranteePrincipal(granteePrincipal) .withOperations(operation); CreateGrantResult result = kmsClient.createGrant(request);
- C#
-
詳細については、https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/KeyManagementService/MKeyManagementServiceCreateGrantCreateGrantRequest.html の AWS SDK for .NETCreateGrant メソッドを参照してください。
// Create a grant // // 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 granteePrincipal = "arn:aws:iam::111122223333:user/Alice"; String operation = GrantOperation.GenerateDataKey; CreateGrantRequest createGrantRequest = new CreateGrantRequest() { KeyId = keyId, GranteePrincipal = granteePrincipal, Operations = new List<string>() { operation } }; CreateGrantResponse createGrantResult = kmsClient.CreateGrant(createGrantRequest);
- Python
-
詳細については、AWS SDK for Python (Boto3) の
create_grant
メソッドを参照してください。 # Create a grant # 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' grantee_principal = 'arn:aws:iam::111122223333:user/Alice' operation = ['GenerateDataKey'] response = kms_client.create_grant( KeyId=key_id, GranteePrincipal=grantee_principal, Operations=operation )
- Ruby
-
詳細については、
create_grant
の AWS SDK for Ruby インスタンスメソッドを参照してください。# Create a grant # 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' grantee_principal = 'arn:aws:iam::111122223333:user/Alice' operation = ['GenerateDataKey'] response = kmsClient.create_grant({ key_id: key_id, grantee_principal: grantee_principal, operations: operation })
- PHP
-
詳細については、https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#creategrant の AWS SDK for PHPCreateGrant メソッドを参照してください。
// Create a grant // // 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'; $granteePrincipal = "arn:aws:iam::111122223333:user/Alice"; $operation = ['GenerateDataKey'] $result = $KmsClient->createGrant([ 'GranteePrincipal' => $granteePrincipal, 'KeyId' => $keyId, 'Operations' => $operation ]);
- Node.js
-
詳細については、AWS SDK for JavaScript in Node.js の createGrant プロパティを参照してください。
// Create a grant // // 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 GranteePrincipal = 'arn:aws:iam::111122223333:user/Alice'; const Operations: ["GenerateDataKey"]; kmsClient.createGrant({ KeyId, GranteePrincipal, Operations }, (err, data) => { ... });
- PowerShell
-
許可を作成するには、 New-KMSGrant コマンドレットを使用します。
# Create a grant # 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' $granteePrincipal = 'arn:aws:iam::111122223333:user/Alice' $operation = 'GenerateDataKey' $response = New-KMSGrant -GranteePrincipal $granteePrincipal -KeyId $keyId -Operation $operation
AWS KMS PowerShell コマンドレットを使用するには、AWS.Tools.KeyManagementService
モジュールをインストールします。詳細については、AWS Tools for Windows PowerShell ユーザーガイドを参照してください。
許可の表示
KMS キーの権限の詳細情報を取得するには、ListGrants オペレーションを使用します。
通常、GranteePrincipal
レスポンスの ListGrants
フィールドには、許可の被付与者プリンシパルが含まれます。ただし、権限の被付与者プリンシパルが AWS のサービスの場合、GranteePrincipal
フィールドにはサービスプリンシパルが含まれます。これは、複数の異なる被付与者プリンシパルを表す場合があります。
クライアントオブジェクトを必要とする言語では、これらの例では「AWS KMS」で作成した クライアントの作成 クライアントオブジェクトを使用します。
これらの例では、オプションの Limits
パラメータを使用して、オペレーションが返す許可の数を決定します。
- Java
-
Java の実装の詳細については、AWS SDK for Java API リファレンスの listGrants メソッドを参照してください。
// Listing grants on 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"; Integer limit = 10; ListGrantsRequest req = new ListGrantsRequest().withKeyId(keyId).withLimit(limit); ListGrantsResult result = kmsClient.listGrants(req);
- C#
-
詳細については、https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/KeyManagementService/MKeyManagementServiceListGrantsListGrantsRequest.html の AWS SDK for .NETListGrants メソッドを参照してください。
// Listing grants on 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"; int limit = 10; ListGrantsRequest listGrantsRequest = new ListGrantsRequest() { KeyId = keyId, Limit = limit }; ListGrantsResponse listGrantsResponse = kmsClient.ListGrants(listGrantsRequest);
- Python
-
詳細については、AWS SDK for Python (Boto3) の
list_grants
メソッドを参照してください。 # Listing grants on 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' response = kms_client.list_grants( KeyId=key_id, Limit=10 )
- Ruby
-
詳細については、
list_grants
の AWS SDK for Ruby インスタンスメソッドを参照してください。# Listing grants on 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' response = kmsClient.list_grants({ key_id: key_id, limit: 10 })
- PHP
-
詳細については、https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#listgrants の AWS SDK for PHPListGrants メソッドを参照してください。
// Listing grants on 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'; $limit = 10; $result = $KmsClient->listGrants([ 'KeyId' => $keyId, 'Limit' => $limit, ]);
- Node.js
-
詳細については、AWS SDK for JavaScript in Node.js の listGrants プロパティを参照してください。
// Listing grants on 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 Limit = 10; kmsClient.listGrants({ KeyId, Limit }, (err, data) => { ... });
- PowerShell
-
KMS キーのすべての AWS KMS 権限の詳細を表示するには、 Get-KMSGrantList コマンドレットを使用します。
出力オブジェクトの数を制限するために、この例では、リストコマンドレットで非推奨の
Limit
パラメータの代わりに Select-Objectコマンドレットを使用します。AWS Tools for PowerShell での出力のページ分割については、「AWS Tools for PowerShell での出力ページ分割 」を参照してください。 # Listing grants on 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' $limit = 10 $response = Get-KMSGrantList -KeyId $keyId | Select-Object -First $limit
AWS KMS PowerShell コマンドレットを使用するには、AWS.Tools.KeyManagementService
モジュールをインストールします。詳細については、AWS Tools for Windows PowerShell ユーザーガイドを参照してください。
すべての ListGrants
オペレーションで KMS キーを指定する必要があります。ただし、権限 ID または被付与者プリンシパルを指定することで、権限リストをさらにフィルタリングできます。次の例では、test-engineer
ロールが被付与者プリンシパルのKMS キーの権限のみを取得します。
- Java
-
Java の実装の詳細については、AWS SDK for Java API リファレンスの listGrants メソッドを参照してください。
// Listing grants on 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 grantee = "arn:aws:iam::111122223333:role/test-engineer"; ListGrantsRequest req = new ListGrantsRequest().withKeyId(keyId).withGranteePrincipal(grantee); ListGrantsResult result = kmsClient.listGrants(req);
- C#
-
詳細については、https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/KeyManagementService/MKeyManagementServiceListGrantsListGrantsRequest.html の AWS SDK for .NETListGrants メソッドを参照してください。
// Listing grants on 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 grantee = "arn:aws:iam::111122223333:role/test-engineer"; ListGrantsRequest listGrantsRequest = new ListGrantsRequest() { KeyId = keyId, GranteePrincipal = grantee }; ListGrantsResponse listGrantsResponse = kmsClient.ListGrants(listGrantsRequest);
- Python
-
詳細については、AWS SDK for Python (Boto3) の
list_grants
メソッドを参照してください。 # Listing grants on 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' grantee = 'arn:aws:iam::111122223333:role/test-engineer' response = kms_client.list_grants( KeyId=key_id, GranteePrincipal=grantee )
- Ruby
-
詳細については、
list_grants
の AWS SDK for Ruby インスタンスメソッドを参照してください。# Listing grants on 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' grantee = 'arn:aws:iam::111122223333:role/test-engineer' response = kmsClient.list_grants({ key_id: keyId, grantee_principal: grantee })
- PHP
-
詳細については、https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#listgrants の AWS SDK for PHPListGrants メソッドを参照してください。
// Listing grants on 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'; $grantee = 'arn:aws:iam::111122223333:role/test-engineer'; $result = $KmsClient->listGrants([ 'KeyId' => $keyId, 'GranteePrincipal' => $grantee, ]);
- Node.js
-
詳細については、AWS SDK for JavaScript in Node.js の listGrants プロパティを参照してください。
// Listing grants on 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 Grantee = 'arn:aws:iam::111122223333:role/test-engineer'; kmsClient.listGrants({ KeyId, Grantee }, (err, data) => { ... });
- PowerShell
-
KMS キーのすべての AWS KMS 権限の詳細を表示するには、 Get-KMSGrantList コマンドレットを使用します。
# Listing grants on 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' $grantee = 'arn:aws:iam::111122223333:role/test-engineer' $response = Get-KMSGrantList -KeyId $keyId -GranteePrincipal $grantee
AWS KMS PowerShell コマンドレットを使用するには、AWS.Tools.KeyManagementService
モジュールをインストールします。詳細については、AWS Tools for Windows PowerShell ユーザーガイドを参照してください。
許可の廃止
KMS キーの権限を使用停止にするには、RetireGrant オペレーションを使用します。許可の使用が完了した後でクリーンアップを実行する場合に、許可を無効にする必要があります。
権限を使用停止にするには、権限トークン、または権限 ID と KMS キー ID の両方を指定します。このオペレーションでは、KMS キー ID が KMS キーの Amazon リソースネーム (ARN) である必要があります。許可トークンは、 CreateGrant 操作によって返されます。許可 ID は、CreateGrant オペレーションと ListGrants オペレーションによって返されます。
RetireGrant は応答を返しません。有効であることを確認するには、 ListGrants 操作を使用します。
クライアントオブジェクトを必要とする言語では、これらの例では「AWS KMS」で作成した クライアントの作成 クライアントオブジェクトを使用します。
- Java
-
詳細については、AWS SDK for Java API リファレンスの retireGrant メソッドを参照してください。
// Retire a grant // String grantToken =
Place your grant token here
; RetireGrantRequest req = new RetireGrantRequest().withGrantToken(grantToken); kmsClient.retireGrant(req); - C#
-
詳細については、https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/KeyManagementService/MKeyManagementServiceRetireGrantRetireGrantRequest.html の AWS SDK for .NETRetireGrant メソッドを参照してください。
// Retire a grant // String grantToken = "
Place your grant token here
"; RetireGrantRequest retireGrantRequest = new RetireGrantRequest() { GrantToken = grantToken }; kmsClient.RetireGrant(retireGrantRequest); - Python
-
詳細については、AWS SDK for Python (Boto3) の
retire_grant
メソッドを参照してください。 # Retire a grant grant_token =
Place your grant token here
response = kms_client.retire_grant( GrantToken=grant_token ) - Ruby
-
詳細については、
retire_grant
の AWS SDK for Ruby インスタンスメソッドを参照してください。# Retire a grant grant_token =
Place your grant token here
response = kmsClient.retire_grant({ grant_token: grant_token }) - PHP
-
詳細については、https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#retiregrant の AWS SDK for PHPRetireGrant メソッドを参照してください。
// Retire a grant // $grantToken = '
Place your grant token here
'; $result = $KmsClient->retireGrant([ 'GrantToken' => $grantToken, ]); - Node.js
-
詳細については、AWS SDK for JavaScript in Node.js の retireGrant プロパティを参照してください。
// Retire a grant // const GrantToken = '
Place your grant token here
'; kmsClient.retireGrant({ GrantToken }, (err, data) => { ... }); - PowerShell
-
許可を破棄するには、 Disable-KMSGrant コマンドレットを使用します。許可トークンを取得するには、 New-KMSgrant コマンドレットを使用します。
GrantToken
パラメータは文字列を受け取るため、Read-Hostコマンドレットが返す出力を変換する必要はありません。 # Retire a grant $grantToken = Read-Host -Message
Place your grant token here
Disable-KMSGrant -GrantToken $grantTokenAWS KMS PowerShell コマンドレットを使用するには、AWS.Tools.KeyManagementService
モジュールをインストールします。詳細については、AWS Tools for Windows PowerShell ユーザーガイドを参照してください。
許可の取り消し
KMS キーへの権限を取り消すには、RevokeGrant オペレーションを使用します。許可を取り消して、許可に依存しているオペレーションを明示的に拒否することができます。
クライアントオブジェクトを必要とする言語では、これらの例では「AWS KMS」で作成した クライアントの作成 クライアントオブジェクトを使用します。
- Java
-
詳細については、AWS SDK for Java API リファレンスの revokeGrant メソッドを参照してください。
// Revoke a grant on 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"; // &fake-grant-id; String grantId = "grant1"; RevokeGrantRequest req = new RevokeGrantRequest().withKeyId(keyId).withGrantId(grantId); kmsClient.revokeGrant(req);
- C#
-
詳細については、https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/KeyManagementService/MKeyManagementServiceRevokeGrantRevokeGrantRequest.html の AWS SDK for .NETRevokeGrant メソッドを参照してください。
// Revoke a grant on 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"; // &fake-grant-id; String grantId = "grant1"; RevokeGrantRequest revokeGrantRequest = new RevokeGrantRequest() { KeyId = keyId, GrantId = grantId }; kmsClient.RevokeGrant(revokeGrantRequest);
AWS KMS PowerShell コマンドレットを使用するには、AWS.Tools.KeyManagementService
モジュールをインストールします。詳細については、AWS Tools for Windows PowerShell ユーザーガイドを参照してください。 - Python
-
詳細については、AWS SDK for Python (Boto3) の
revoke_grant
メソッドを参照してください。 # Revoke a grant on 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' # &fake-grant-id; grant_id = 'grant1' response = kms_client.revoke_grant( KeyId=key_id, GrantId=grant_id )
- Ruby
-
詳細については、
の AWS SDK for Ruby インスタンスメソッドを参照してください。revoke_grant
# Revoke a grant on 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' # &fake-grant-id; grant_id = 'grant1' response = kmsClient.revoke_grant({ key_id: key_id, grant_id: grant_id })
- PHP
-
詳細については、https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-kms-2014-11-01.html#revokegrant の AWS SDK for PHPRevokeGrant メソッドを参照してください。
// Revoke a grant on 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'; // Replace the following example grant ID with a valid one $grantId = "grant1"; $result = $KmsClient->revokeGrant([ 'KeyId' => $keyId, 'GrantId' => $grantId, ]);
- Node.js
-
詳細については、AWS SDK for JavaScript in Node.js の revokeGrant プロパティを参照してください。
// Revoke a grant on 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'; // Replace the following example grant ID with a valid one const GrantId = 'grant1'; kmsClient.revokeGrant({ GrantId, KeyId }, (err, data) => { ... });
- PowerShell
-
許可を取り消すには、 Revoke-KMSgrant コマンドレットを使用します。
# Revoke a grant on 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' # Replace the following example grant ID with a valid one $grantId = 'grant1' Revoke-KMSGrant -KeyId $keyId -GrantId $grantId
AWS KMS PowerShell コマンドレットを使用するには、AWS.Tools.KeyManagementService
モジュールをインストールします。詳細については、AWS Tools for Windows PowerShell ユーザーガイドをご参照ください。