AWS KMS API 및 AWS SDK for PHP 버전 3을 사용한 보조금 관련 작업 - AWS SDK for PHP

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

AWS KMS API 및 AWS SDK for PHP 버전 3을 사용한 보조금 관련 작업

권한 부여는 권한을 제공하기 위한 또 하나의 메커니즘입니다. 이는 키 정책의 대안입니다. 권한 부여를 이용해 AWS 보안 주체가 AWS Key Management Service(AWS KMS) 고객 관리형 AWS KMS keys를 사용하도록 허용하는 장기 액세스 권한을 부여할 수 있습니다. 자세한 내용은 AWS Key Management Service 개발자 가이드에서 AWS KMS 권한 부여를 참조하세요.

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

  • CreateGrant를 사용하여 KMS 키에 대한 권한 부여를 생성합니다.

  • ListGrants를 사용하여 KMS 키에 대한 권한 부여를 봅니다.

  • RetireGrant를 사용하여 KMS 키에 대한 권한 부여를 사용 중지시킵니다.

  • RevokeGrant를 사용하여 KMS 키에 대한 권한 부여를 취소합니다.

AWS SDK for PHP에 대한 모든 예제 코드는 GitHub에서 사용할 수 있습니다.

보안 인증 정보

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

AWS Key Management Service(AWS KMS) 사용에 대한 자세한 정보는 AWS KMS 개발자 안내서를 참조하세요.

권한 부여 생성

AWS KMS key에 대한 권한 부여를 생성하려면 CreateGrant 작업을 사용합니다.

가져옵니다.

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'; $granteePrincipal = "arn:aws:iam::111122223333:user/Alice"; $operation = ['Encrypt', 'Decrypt']; // A list of operations that the grant allows. try { $result = $KmsClient->createGrant([ 'GranteePrincipal' => $granteePrincipal, 'KeyId' => $keyId, 'Operations' => $operation ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

권한 부여 보기

AWS KMS key에 대한 권한 부여를 자세히 알아보려면 ListGrants 작업을 사용합니다.

가져옵니다.

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->listGrants([ 'KeyId' => $keyId, 'Limit' => $limit, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

권한 부여 사용 중지

AWS KMS key에 대한 권한 부여를 사용 중지하려면 RetireGrant 작업을 사용합니다. 권한 부여의 사용을 완료한 후에는 만료시킵니다.

가져옵니다.

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

샘플 코드

$KmsClient = new Aws\Kms\KmsClient([ 'profile' => 'default', 'version' => '2014-11-01', 'region' => 'us-east-2' ]); $grantToken = 'Place your grant token here'; try { $result = $KmsClient->retireGrant([ 'GrantToken' => $grantToken, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; } //Can also identify grant to retire by a combination of the grant ID //and the Amazon Resource Name (ARN) of the customer master key (CMK) $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; $grantId = 'Unique identifier of the grant returned during CreateGrant operation'; try { $result = $KmsClient->retireGrant([ 'GrantId' => $grantToken, 'KeyId' => $keyId, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

권한 부여 취소

AWS KMS key에 대한 권한 부여를 취소하려면 RevokeGrant 작업을 사용합니다. 권한 부여를 취소하여 종속된 작업을 명시적으로 거부할 수 있습니다.

가져옵니다.

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'; $grantId = "grant1"; try { $result = $KmsClient->revokeGrant([ 'KeyId' => $keyId, 'GrantId' => $grantId, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }