권한 부여 사용 - AWS Key Management Service

문서의 영문과 번역 사이에 충돌이 있는 경우에는 영문 버전을 따릅니다. 번역 버전은 기계 번역을 사용하여 제공합니다.

권한 부여 사용

AWS KMS은 다음과 같은 두 가지 자원 기반 액세스 제어 메커니즘을 지원합니다. 키 정책 가 부여합니다. 교부금을 통해 KMS 사용을 계획적으로 위임할 수 있습니다. 고객 마스터 키 (CMKs) AWS 주. 허용 규칙을 지정할 수 있지만 거부 규칙은 지정할 수 없습니다. 권한 부여는 매우 구체적일 수 있고 생성 및 취소가 간편하므로 임시 권한 또는 보다 세부적인 권한을 제공하는 데 자주 사용됩니다.

또한 주요 정책을 사용하여 다른 AWS 액세스 권한이 있는 CMK, 그러나 주요 정책은 비교적 정적 권한 할당에 가장 적합합니다. 또한 주요 정책은 사용자가 리소스로 작업을 수행 할 수 있는 권한이 있거나 없는 권한 정책 AWS에 대한 표준 사용 권한 모델을 사용합니다. 예를 들어, kms:PutKeyPolicy 승인 CMK 의 주요 정책을 완전히 대체할 수 있습니다. CMK 선택할 수 있습니다. 좀 더 세분화된 권한 관리를 하고 싶으면 권한 부여를 사용합니다.

권한 부여 작업 방법을 보여주는 코드 예제는 권한 부여 작업 단원을 참조하십시오.

권한 부여 생성

권한 부여를 생성하려면 CreateGrant 작업을 호출합니다. a CMK교부금 수령인은 보조금이 CMK, 허용되는 작업 목록. CreateGrant 작업은 후속 작업에서 권한 부여를 식별하는 데 사용할 수 있는 권한 부여 ID를 반환합니다. 권한 부여를 사용자 지정하려면 선택적 Constraints 매개 변수를 사용하여 권한 부여 제약을 정의합니다.

예를 들어, CreateGrant 명령을 통해 exampleUser 전화하려면 해독 지정된 작업에 대한 대칭 CMK. 이 권한 부여는 RetiringPrincipal 파라미터를 사용하여 권한 부여를 중단시킬 수 있는 보안 주체를 지정합니다. 또한 요청의 암호화 컨텍스트"Department": "IT"를 포함하는 경우에만 권한을 허용하는 권한 부여 제약 조건이 포함되어 있습니다.

$ aws kms create-grant \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --grantee-principal arn:aws:iam::111122223333:user/exampleUser \ --operations Decrypt \ --retiring-principal arn:aws:iam::111122223333:role/adminRole \ --constraints EncryptionContextSubset={Department=IT}

권한 부여를 보려면 ListGrants 작업을 사용합니다.

참고

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

$ aws kms list-grants --key-id 1234abcd-12ab-34cd-56ef-1234567890ab { "Grants": [ { "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": 1572216195.0, "GrantId": "abcde1237f76e4ba7987489ac329fbfba6ad343d6f7075dbd1ef191f0120514", "Constraints": { "EncryptionContextSubset": { "Department": "IT" } }, "RetiringPrincipal": "arn:aws:iam::111122223333:role/adminRole", "Name": "", "IssuingAccount": "arn:aws:iam::111122223333:root", "GranteePrincipal": "arn:aws:iam::111122223333:user/exampleUser", "Operations": [ "Decrypt" ] } ] }

보조금은 kms:철회 승인 CMK.

권한 부여는 다음 보안 주체 중 하나가 중단할 수 있습니다.

  • 보조금이 생성된 AWS 계정(루트 사용자)

  • 승인된 중단 보안 주체

  • 권한 부여가 RetireGrant를 허용하는 경우 피부여자 보안 주체입니다.

대칭 및 대칭 메트릭에 대한 보조금 CMKs

대칭에 대한 액세스를 제어하는 보조금을 만들 수 있습니다. CMK 또는 CMK. 그러나, 원칙을 생성할 수 있는 원칙을 생성할 수 없습니다. CMK. 이러한 권한 부여를 시도하면 AWS KMS가 ValidationError 예외를 반환합니다.

대칭 CMKs

대칭을 위한 교부금 CMKs 허용되지 않는 서명, 확인, 또는 getpublickey 작업. (레거시 작업의 경우 이 규칙에 대한 제한적 예외가 있지만, AWS KMS가 지원하지 않는 작업에 대해 권한 부여를 생성하면 안 됩니다.)

&t={\f CMKs

주식 지표 보조금 CMKs 데이터 키 또는 데이터 키 쌍을 생성하는 작업을 허용할 수 없습니다. 또한 자동 키 회전, 가져온 키 재료, 또는 CMKs 에서 맞춤형 키 스토어.

교부금 CMKs 의 주요 사용 SIGN_VERIFY 암호화 작업이 허용되지 않습니다. 교부금 CMKs 의 주요 사용 ENCRYPT_DECRYPT 허용되지 않는 Sign 또는 Verify 작업.

제약 편집

권한 부여 제약 조건은 피부여자 보안 주체가 수행할 수 있는 권한에 대한 조건을 설정합니다. AWS KMS는 두 가지 제약 조건을 지원하며 둘 다 암호화 작업 요청의 암호화 컨텍스트와 관련됩니다.

참고

암호화 컨텍스트 부여 제약 조건을 루트 메트릭에 사용할 수 없습니다. CMK. AWS KMS가 사용하는 비대칭 암호화 알고리즘은 암호화 컨텍스트를 지원하지 않습니다.

  • EncryptionContextEquals암호 해독 작업에 지정된 암호화 컨텍스트는 암호화 작업에 지정된 암호화 컨텍스트에 대해 대소문자가 정확히 일치해야 합니다. 쌍은 순서에 관계없이 나타날 수 있지만 각 쌍의 키와 값은 다를 수 없습니다.

  • EncryptionContextSubset은 요청의 암호화 컨텍스트가 권한 부여 제한 조건에 지정된 암호화 컨텍스트를 포함 할 때만 권한이 적용되도록 지정합니다. 요청의 암호화 컨텍스트는 제약 조건의 암호화 컨텍스트와 대소문자가 정확히 일치해야 하지만 추가 암호화 컨텍스트 쌍을 포함할 수 있습니다. 쌍은 순서에 관계없이 나타날 수 있지만 각 쌍의 키와 값은 다를 수 없습니다.

예를 들어, GenerateDataKeyDecrypt 작업을 허용하는 권한 부여를 고려하십시오. 여기에는 다음 값이 있는 EncryptionContextSubset 제한 조건이 포함됩니다.

{"Department":"Finance","Classification":"Public"}

이 예에서 다음 암호화 컨텍스트 값 중 하나가 EncryptionContextSubset 제약 조건을 충족시킵니다.

  • {"Department":"Finance","Classification":"Public"}

  • {"Classification":"Public","Department":"Finance"}

  • {"Customer":"12345","Department":"Finance","Classification":"Public","Purpose":"Test"}

그러나 다음 암호화 컨텍스트 값은 불완전하거나 지정된 쌍의 대소문자가 정확히 일치하지 않기 때문에 제약 조건을 충족시키지 못합니다.

  • {"Department":"Finance"}

  • {"department":"finance","classification":"public"}

  • {"Classification":"Public","Customer":"12345"}

키 정책에서 CreateGrant 권한 부여

CreateGrant 작업에 대한 액세스를 제어하는 키 정책을 생성할 때 하나 이상의 정책 조건을 사용하여 권한을 제한할 수 있습니다. AWS KMS는 다음 권한 부여 관련 조건 키를 모두 지원합니다. 이러한 조건 키에 대한 자세한 정보는 AWS KMS 조건 키을 참조하십시오.

CreateGrant 권한 부여

권한 부여에 CreateGrant 작업을 요청할 수 있는 권한이 포함되어 있는 경우 해당 권한 부여는 피부여자 보안 주체만 동등하게 제한적이거나 보다 제한적인 권한 부여를 생성할 수 있도록 허용합니다.

예를 들면, GenerateDataKey, DecryptCreateGrant조작을 호출할 수 있게 하는 권한 부여를 고려하십시오. 수령자 책임자는 다음과 같은 상위 보조금(parent grant)에 지정된 작업의 하위 집합을 포함하는 보조금을 작성할 수 있습니다. GenerateDataKey and Decrypt. 그러나 다음과 같은 다른 작업을 포함할 수는 없습니다. ScheduleKeyDeletion 또는 ReEncrypt.

또한, 하위 권한 부여에 대한 권한 부여 제약 조건 은 상위 권한 부여와 동등한 수준에서 제한적이거나 이보다 더 제한적이어야 합니다. 예를 들어, 하위 권한 부여는 상위 권한 부여의 EncryptionContextSubset 제한 조건에 쌍을 추가 할 수 있지만 이를 제거 할 수는 없습니다. 하위 권한 부여는 EncryptionContextSubset 제약 조건을 EncryptionContextEquals 제약 조건으로 변경할 수 있지만 그 반대는 아닙니다.