권한 부여 작업 - AWS Key Management Service

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

권한 부여 작업

이 주제의 예제에서는 AWS KMS API를 사용하여 AWS KMS 고객 마스터 키(CMKs)에 대한 권한 부여를 생성, 확인, 만료 및 취소합니다. AWS KMS에서 권한 부여를 사용하는 방법에 대한 자세한 내용은 권한 부여 사용. 단원을 참조하십시오.

권한 부여 생성

AWS KMS에 대한 권한 부여를 생성하려면 고객 마스터 키CreateGrant 작업을 사용합니다. 응답에는 권한 부여 ID와 권한 부여 토큰만 포함됩니다. 권한 부여에 대한 자세한 정보를 보려면 에 표시된 대로 ListGrants권한 부여 보기 작업을 사용합니다.

이 예제에서는 계정의 IAM 사용자인 Alice가 파라미터로 식별된 GenerateDataKey에 대해 CMKKeyId 작업을 호출할 수 있는 권한 부여를 생성합니다.

클라이언트 객체가 필요한 언어의 경우 이러한 예제에서는 클라이언트 만들기에서 생성한 AWS KMS 클라이언트 객체를 사용합니다.

Java

자세한 내용은 createGrant의 메서드AWS SDK for Java API Reference를 참조하십시오.

// Create a grant // // 다음 예제 키 ARN을 유효한 키 ID 또는 키 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#

자세한 내용은 CreateGrant의 메서드.NET용 AWS SDK를 참조하십시오.

// Create a grant // // 다음 예제 키 ARN을 유효한 키 ID 또는 키 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

자세한 내용은 create_grant 메서드Python용 AWS SDK(Boto3)를 참조하십시오.

# Create a grant # 다음 예제 키 ARN을 유효한 키 ID 또는 키 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

자세한 내용은 https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/KMS/Client.html#create_grant-instance_methodcreate_grantRuby용 AWS SDK 인스턴스 메서드를 참조하십시오.

# Create a grant # 다음 예제 키 ARN을 유효한 키 ID 또는 키 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

자세한 내용은 CreateGrant의 메서드PHP용 AWS SDK를 참조하십시오.

// Create a grant // // 다음 예제 키 ARN을 유효한 키 ID 또는 키 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

자세한 내용은 createGrant의 속성AWS SDK for JavaScript in Node.js을 참조하십시오.

// Create a grant // // 다음 예제 키 ARN을 유효한 키 ID 또는 키 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 cmdlet를 사용합니다.

# Create a grant # 다음 예제 키 ARN을 유효한 키 ID 또는 키 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 cmdlet을 사용하려면 AWS.Tools.KeyManagementService 모듈을 설치합니다. 자세한 내용은 Windows PowerShell용 AWS 도구 사용 설명서를 참조하세요.

권한 부여 보기

AWS KMS의 권한 부여에 대한 자세한 내용을 보려면 고객 마스터 키ListGrants 작업을 사용합니다.

참고

ListGrants 응답의 GranteePrincipal 필드에는 일반적으로 권한 부여의 피부여자 보안 주체가 포함됩니다. 그러나 권한 부여의 피부여자 보안 주체가 AWS 서비스인 경우 GranteePrincipal 필드에는 서비스 보안 주체(여러 피부여자 보안 주체가 될 수 있음)가 포함됩니다.

클라이언트 객체가 필요한 언어의 경우 이러한 예제에서는 클라이언트 만들기에서 생성한 AWS KMS 클라이언트 객체를 사용합니다.

이 예제에서는 선택적 Limits 파라미터를 사용합니다. 이 파라미터는 작업이 반환하는 권한 부여의 수를 결정합니다.

Java

Java 구현에 대한 자세한 내용은 listGrants의 메서드AWS SDK for Java API Reference를 참조하십시오.

// Listing grants on a CMK // // 다음 예제 키 ARN을 유효한 키 ID 또는 키 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#

자세한 내용은 ListGrants의 메서드.NET용 AWS SDK를 참조하십시오.

// Listing grants on a CMK // // 다음 예제 키 ARN을 유효한 키 ID 또는 키 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

자세한 내용은 list_grants 메서드Python용 AWS SDK(Boto3)를 참조하십시오.

# Listing grants on a CMK # 다음 예제 키 ARN을 유효한 키 ID 또는 키 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

자세한 내용은 https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/KMS/Client.html#list_grants-instance_methodlist_grantsRuby용 AWS SDK 인스턴스 메서드를 참조하십시오.

# Listing grants on a CMK # 다음 예제 키 ARN을 유효한 키 ID 또는 키 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

자세한 내용은 ListGrants의 메서드PHP용 AWS SDK를 참조하십시오.

// Listing grants on a CMK // // 다음 예제 키 ARN을 유효한 키 ID 또는 키 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

자세한 내용은 listGrants의 속성AWS SDK for JavaScript in Node.js을 참조하십시오.

// Listing grants on a CMK // // 다음 예제 키 ARN을 유효한 키 ID 또는 키 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

에 대한 모든 AWS KMS 권한 부여의 세부 정보를 보려면 CMKGet-KMSGrantListKMSGrantList

출력 객체의 수를 제한하기 위해 이 예제에서는 목록 cmdlet에서 사용되지 않는 Limit 파라미터 대신 Select-Object cmdlet을 사용합니다. PowerShell용 AWS 도구의 출력 페이지 매김에 대한 도움말은 PowerShell용 AWS 도구를 사용하여 출력 페이지 매김을 참조하십시오.

# Listing grants on a CMK # 다음 예제 키 ARN을 유효한 키 ID 또는 키 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 cmdlet을 사용하려면 AWS.Tools.KeyManagementService 모듈을 설치합니다. 자세한 내용은 Windows PowerShell용 AWS 도구 사용 설명서를 참조하세요.

모든 CMK 작업에 ListGrants를 지정해야 합니다. 하지만 권한 부여 ID 또는 피부여자 보안 주체를 지정하여 권한 부여 목록을 추가로 필터링할 수 있습니다. 다음 예제에서는 test-engineer 역할이 피부여자 보안 주체인 CMK에 대한 권한 부여만 가져옵니다.

Java

Java 구현에 대한 자세한 내용은 listGrants의 메서드AWS SDK for Java API Reference를 참조하십시오.

// Listing grants on a CMK // // 다음 예제 키 ARN을 유효한 키 ID 또는 키 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#

자세한 내용은 ListGrants의 메서드.NET용 AWS SDK를 참조하십시오.

// Listing grants on a CMK // // 다음 예제 키 ARN을 유효한 키 ID 또는 키 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

자세한 내용은 list_grants 메서드Python용 AWS SDK(Boto3)를 참조하십시오.

# Listing grants on a CMK # 다음 예제 키 ARN을 유효한 키 ID 또는 키 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

자세한 내용은 https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/KMS/Client.html#list_grants-instance_methodlist_grantsRuby용 AWS SDK 인스턴스 메서드를 참조하십시오.

# Listing grants on a CMK # 다음 예제 키 ARN을 유효한 키 ID 또는 키 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

자세한 내용은 ListGrants의 메서드PHP용 AWS SDK를 참조하십시오.

// Listing grants on a CMK // // 다음 예제 키 ARN을 유효한 키 ID 또는 키 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

자세한 내용은 listGrants의 속성AWS SDK for JavaScript in Node.js을 참조하십시오.

// Listing grants on a CMK // // 다음 예제 키 ARN을 유효한 키 ID 또는 키 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

에 대한 모든 AWS KMS 권한 부여의 세부 정보를 보려면 CMKGet-KMSGrantListKMSGrantList

# Listing grants on a CMK # 다음 예제 키 ARN을 유효한 키 ID 또는 키 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 cmdlet을 사용하려면 AWS.Tools.KeyManagementService 모듈을 설치합니다. 자세한 내용은 Windows PowerShell용 AWS 도구 사용 설명서를 참조하세요.

권한 부여 사용 중지

AWS KMS에 대한 권한 부여의 사용을 중지하려면 고객 마스터 키RetireGrant 작업을 사용합니다. 권한 부여의 사용을 완료한 후에는 사용을 중지해야 합니다.

권한 부여의 사용을 중지하려면 권한 부여 토큰을 제공하거나, 권한 부여 ID와 CMK ID를 모두 제공합니다. 이 작업의 경우 CMK ID는 의 Amazon 리소스 이름(ARN)CMK이어야 합니다. 권한 부여 토큰은 CreateGrant 작업으로 반환됩니다. 권한 부여 ID는 CreateGrant 및 ListGrants 작업으로 반환됩니다.

RetireGrant는 응답을 반환하지 않습니다. 효과적이었는지 확인하려면 ListGrants 작업을 사용합니다.

클라이언트 객체가 필요한 언어의 경우 이러한 예제에서는 클라이언트 만들기에서 생성한 AWS KMS 클라이언트 객체를 사용합니다.

Java

자세한 내용은 retireGrant의 메서드AWS SDK for Java API Reference를 참조하십시오.

// Retire a grant // String grantToken = Place your grant token here; RetireGrantRequest req = new RetireGrantRequest().withGrantToken(grantToken); kmsClient.retireGrant(req);
C#

자세한 내용은 RetireGrant의 메서드.NET용 AWS SDK를 참조하십시오.

// Retire a grant // String grantToken = "Place your grant token here"; RetireGrantRequest retireGrantRequest = new RetireGrantRequest() { GrantToken = grantToken }; kmsClient.RetireGrant(retireGrantRequest);
Python

자세한 내용은 retire_grant 메서드Python용 AWS SDK(Boto3)를 참조하십시오.

# Retire a grant grant_token = Place your grant token here response = kms_client.retire_grant( GrantToken=grant_token )
Ruby

자세한 내용은 https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/KMS/Client.html#retire_grant-instance_methodretire_grantRuby용 AWS SDK 인스턴스 메서드를 참조하십시오.

# Retire a grant grant_token = Place your grant token here response = kmsClient.retire_grant({ grant_token: grant_token })
PHP

자세한 내용은 RetireGrant의 메서드PHP용 AWS SDK를 참조하십시오.

// Retire a grant // $grantToken = 'Place your grant token here'; $result = $KmsClient->retireGrant([ 'GrantToken' => $grantToken, ]);
Node.js

자세한 내용은 retireGrant의 속성AWS SDK for JavaScript in Node.js을 참조하십시오.

// Retire a grant // const GrantToken = 'Place your grant token here'; kmsClient.retireGrant({ GrantToken }, (err, data) => { ... });
PowerShell

권한 부여의 사용을 중지하려면 Disable-KMSGrant cmdlet를 사용합니다. 권한 부여 토큰을 가져오려면 New-KMSGrant cmdlet를 사용합니다. 파라미터는 문자열을 사용하므로 GrantTokenRead-Host cmdlet가 반환하는 출력을 변환할 필요가 없습니다.

# Retire a grant $grantToken = Read-Host -Message Place your grant token here Disable-KMSGrant -GrantToken $grantToken

AWS KMS PowerShell cmdlet을 사용하려면 AWS.Tools.KeyManagementService 모듈을 설치합니다. 자세한 내용은 Windows PowerShell용 AWS 도구 사용 설명서를 참조하세요.

권한 부여 취소

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

클라이언트 객체가 필요한 언어의 경우 이러한 예제에서는 클라이언트 만들기에서 생성한 AWS KMS 클라이언트 객체를 사용합니다.

Java

자세한 내용은 revokeGrant의 메서드AWS SDK for Java API Reference를 참조하십시오.

// Revoke a grant on a CMK // // 다음 예제 키 ARN을 유효한 키 ID 또는 키 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#

자세한 내용은 RevokeGrant의 메서드.NET용 AWS SDK를 참조하십시오.

// Revoke a grant on a CMK // // 다음 예제 키 ARN을 유효한 키 ID 또는 키 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 cmdlet을 사용하려면 AWS.Tools.KeyManagementService 모듈을 설치합니다. 자세한 내용은 Windows PowerShell용 AWS 도구 사용 설명서를 참조하세요.

Python

자세한 내용은 revoke_grant 메서드Python용 AWS SDK(Boto3)를 참조하십시오.

# Revoke a grant on a CMK # 다음 예제 키 ARN을 유효한 키 ID 또는 키 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

자세한 내용은 https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/KMS/Client.html#revoke_grant-instance_methodrevoke_grantRuby용 AWS SDK 인스턴스 메서드를 참조하십시오.

# Revoke a grant on a CMK # 다음 예제 키 ARN을 유효한 키 ID 또는 키 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

자세한 내용은 RevokeGrant의 메서드PHP용 AWS SDK를 참조하십시오.

// Revoke a grant on a CMK // // 다음 예제 키 ARN을 유효한 키 ID 또는 키 ARN으로 바꿉니다. $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; // 다음 예제 권한 부여 ID를 유효한 ID로 바꿉니다. $grantId = "grant1"; $result = $KmsClient->revokeGrant([ 'KeyId' => $keyId, 'GrantId' => $grantId, ]);
Node.js

자세한 내용은 revokeGrant의 속성AWS SDK for JavaScript in Node.js을 참조하십시오.

// Revoke a grant on a CMK // // 다음 예제 키 ARN을 유효한 키 ID 또는 키 ARN으로 바꿉니다. const KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; // 다음 예제 권한 부여 ID를 유효한 ID로 바꿉니다. const GrantId = 'grant1'; kmsClient.revokeGrant({ GrantId, KeyId }, (err, data) => { ... });
PowerShell

권한 부여를 취소하려면 Revoke-KMSGrant cmdlet를 사용합니다.

# Revoke a grant on a CMK # 다음 예제 키 ARN을 유효한 키 ID 또는 키 ARN으로 바꿉니다. $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' # 다음 예제 권한 부여 ID를 유효한 ID로 바꿉니다. $grantId = 'grant1' Revoke-KMSGrant -KeyId $keyId -GrantId $grantId

AWS KMS PowerShell cmdlet을 사용하려면 AWS.Tools.KeyManagementService 모듈을 설치합니다. 자세한 내용은 Windows PowerShell용 AWS 도구 사용 설명서를 참조하세요.