翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS SDK for PHP バージョン 3 を使用した AWS KMS キーポリシーの操作
AWS KMS key の作成時に、KMS キーを使用および管理できるユーザーを決定します。これらのアクセス許可は、キーポリシーと呼ばれるドキュメントに含まれます。キーポリシーを使用して、カスタマーマネージド KMS キーのアクセス許可をいつでも追加、削除、または変更できますが、 AWS マネージド KMS キーのキーポリシーを編集することはできません。詳細については、「AWS KMSに対する認証とアクセスコントロール」を参照してください。
以下の例では、次の方法を示しています。
-
ListKeyPolicies を使用してキーポリシーの名前をリストする。
-
GetKeyPolicy を使用してキーポリシーを取得する。
-
PutKeyPolicy を使用してキーポリシーを設定する。
のすべてのサンプルコード AWS SDK for PHP はGitHub で入手できます
認証情報
サンプルコードを実行する前に、「」の説明に従って AWS 認証情報を設定しますAWS SDK for PHP バージョン 3 AWS を使用した での認証。次に AWS SDK for PHP、「」の説明に従って をインポートしますAWS SDK for PHP バージョン 3 のインストール。
AWS Key Management Service (AWS KMS) の使用の詳細については、「 AWS KMS デベロッパーガイド」を参照してください。
すべてのキーポリシーをリストする
KMS キーのキーポリシーの名前を取得するには、ListKeyPolicies
オペレーションを使用します。
インポート
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
サンプルコード
$KmsClient = new Aws\Kms\KmsClient([ 'profile' => 'default', 'version' => '2014-11-01', 'region' => 'us-east-2' ]); $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; $limit = 10; try { $result = $KmsClient->listKeyPolicies([ 'KeyId' => $keyId, 'Limit' => $limit, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }
キーポリシーを取得する
KMS キーのキーポリシーを取得するには、GetKeyPolicy
オペレーションを使用します。
GetKeyPolicy
では、ポリシー名が必要です。KMS キーを作成したときにキーポリシーを作成した場合を除き、唯一の有効なポリシー名は default です。デフォルトキーポリシーの詳細については、AWS Key Management Service 開発者ガイドをご覧ください。
インポート
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
サンプルコード
$KmsClient = new Aws\Kms\KmsClient([ 'profile' => 'default', 'version' => '2014-11-01', 'region' => 'us-east-2' ]); $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; $policyName = "default"; try { $result = $KmsClient->getKeyPolicy([ 'KeyId' => $keyId, 'PolicyName' => $policyName ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }
キーポリシーを設定する
KMS キーのキーポリシーを作成または変更するには、PutKeyPolicy
オペレーションを使用します。
PutKeyPolicy
では、ポリシー名が必要です。KMS キーを作成したときにキーポリシーを作成した場合を除き、唯一の有効なポリシー名は default です。デフォルトキーポリシーの詳細については、AWS Key Management Service 開発者ガイドをご覧ください。
インポート
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
サンプルコード
$KmsClient = new Aws\Kms\KmsClient([ 'profile' => 'default', 'version' => '2014-11-01', 'region' => 'us-east-2' ]); $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; $policyName = "default"; try { $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:user/ExampleUser" }, "Action": [ "kms:Encrypt*", "kms:GenerateDataKey*", "kms:Decrypt*", "kms:DescribeKey*", "kms:ReEncrypt*" ], "Resource": "*" } ] } ' ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }