AWS SDK for PHP 버전 3을 사용한 AWS KMS 주요 정책 관련 작업 - AWS SDK for PHP

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS SDK for PHP 버전 3을 사용한 AWS KMS 주요 정책 관련 작업

AWS KMS key를 만들 때 KMS 키를 사용하고 관리할 수 있는 담당자를 결정합니다. 이러한 권한은 키 정책이라는 문서에 포함됩니다. 키 정책을 사용하여 고객 관리형 KMS 키에 대한 권한을 언제든 추가, 제거 또는 변경할 수 있지만 AWS 관리형 KMS 키에 대한 키 정책은 편집할 수 없습니다. 자세한 내용은 AWS KMS에 대한 인증 및 액세스 제어를 참조하세요.

다음 예제에서는 다음과 같은 작업을 하는 방법을 보여줍니다.

의 모든 예제 코드는 여기에서 확인할 수 GitHub 있습니다. AWS SDK for PHP

보안 인증 정보

예제 코드를 실행하기 전에 보안 인증에 설명된 대로 AWS 보안 인증을 구성합니다. 그 다음 기본 사용법에 설명된 대로 AWS SDK for PHP를 가져옵니다.

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 키를 생성할 때 키 정책을 생성하지 않은 경우 유효한 정책 이름은 기본 이름뿐입니다. 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 키를 생성할 때 키 정책을 생성하지 않은 경우 유효한 정책 이름은 기본 이름뿐입니다. 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"; }