翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
許可の使用
このトピックの例では、AWS KMS API を使用して、AWS KMS keys の権限の作成、表示、使用停止、取り消しをします。AWS KMS での許可の使用の詳細については、「でのグラント AWS KMS」を参照してください。
グラントの作成
の許可を作成するにはAWS KMS key、 CreateGrantオペレーションを使用します。応答には、許可 ID と許可トークンのみが含まれます。許可に関する詳細情報を取得するには、「」に示すように、 ListGrantsオペレーションを使用します許可の表示。
これらの例では、ExampleKeyUser
ロールを引き受けるユーザーが 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:role/ExampleKeyUser"; String operation = GrantOperation.GenerateDataKey.toString(); CreateGrantRequest request = new CreateGrantRequest() .withKeyId(keyId) .withGranteePrincipal(granteePrincipal) .withOperations(operation); CreateGrantResult result = kmsClient.createGrant(request);
- C#
-
詳細については、AWS SDK for .NET の「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:role/ExampleKeyUser"; 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:role/ExampleKeyUser' operation = ['GenerateDataKey'] response = kms_client.create_grant( KeyId=key_id, GranteePrincipal=grantee_principal, Operations=operation )
- Ruby
-
詳細については、AWS SDK for Ruby の「
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:role/ExampleKeyUser' operation = ['GenerateDataKey'] response = kmsClient.create_grant({ key_id: key_id, grantee_principal: grantee_principal, operations: operation })
- PHP
-
詳細については、AWS SDK for PHP の「CreateGrant メソッド」を参照してください。
// 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:role/ExampleKeyUser"; $operation = ['GenerateDataKey'] $result = $KmsClient->createGrant([ 'GranteePrincipal' => $granteePrincipal, 'KeyId' => $keyId, 'Operations' => $operation ]);
- Node.js
-
詳細については、 AWS SDK for in JavaScript 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:role/ExampleKeyUser'; 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:role/ExampleKeyUser' $operation = 'GenerateDataKey' $response = New-KMSGrant -GranteePrincipal $granteePrincipal -KeyId $keyId -Operation $operation
AWS KMS PowerShell コマンドレットを使用するには、AWS.Tools.KeyManagementService
モジュールをインストールします。詳細については、『AWS Tools for Windows PowerShell ユーザーガイド』を参照してください。
許可の表示
KMS キーの許可に関する詳細情報を取得するには、 ListGrantsオペレーションを使用します。
注記
通常、ListGrants
レスポンスの GranteePrincipal
フィールドには、グラントの被付与者プリンシパルが含まれます。ただし、権限の被付与者プリンシパルが 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#
-
詳細については、AWS SDK for .NET の「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"; 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
-
詳細については、AWS SDK for Ruby の「
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 = kmsClient.list_grants({ key_id: key_id, limit: 10 })
- PHP
-
詳細については、AWS SDK for PHP の「ListGrants メソッド」を参照してください。
// 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 in JavaScript 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#
-
詳細については、AWS SDK for .NET の「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 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
-
詳細については、AWS SDK for Ruby の「
list_grants
インスタンスメソッド」を参照してください。# 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
-
詳細については、AWS SDK for PHP の「ListGrants メソッド」を参照してください。
// 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 in JavaScript 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#
-
詳細については、AWS SDK for .NET の「RetireGrant メソッド」を参照してください。
// 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
-
詳細については、AWS SDK for Ruby の「
retire_grant
インスタンスメソッド」を参照してください。# Retire a grant grant_token =
Place your grant token here
response = kmsClient.retire_grant({ grant_token: grant_token }) - PHP
-
詳細については、AWS SDK for PHP の「RetireGrant メソッド」を参照してください。
// Retire a grant // $grantToken = '
Place your grant token here
'; $result = $KmsClient->retireGrant([ 'GrantToken' => $grantToken, ]); - Node.js
-
詳細については、 AWS SDK for in JavaScript 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"; // Replace the following example grant ID with a valid one String grantId = "grant1"; RevokeGrantRequest req = new RevokeGrantRequest().withKeyId(keyId).withGrantId(grantId); kmsClient.revokeGrant(req);
- C#
-
詳細については、AWS SDK for .NET の「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"; // Replace the following example grant ID with a valid one 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' # Replace the following example grant ID with a valid one 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' # Replace the following example grant ID with a valid one grant_id = 'grant1' response = kmsClient.revoke_grant({ key_id: key_id, grant_id: grant_id })
- PHP
-
詳細については、AWS SDK for PHP の「RevokeGrant メソッド」を参照してください。
// 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 in JavaScript 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 ユーザーガイド」を参照してください。