기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS KMS의 권한 부여
권한 부여는 AWS 보안 주체가 암호화 작업에서 KMS 키를 사용할 수 있도록 하는 정책 도구입니다. 또한 KMS 키(DescribeKey
)를 보고 권한 부여를 생성 및 관리할 수 있습니다. KMS 키에 대한 액세스 권한을 부여할 때 키 정책 및 IAM 정책과 함께 권한 부여가 고려됩니다. 권한 부여는 키 정책이나 IAM 정책을 변경하지 않고 권한을 생성하고 삭제할 수 있기 때문에 임시 권한에 자주 사용됩니다.
권한 부여는 일반적으로 사용되는AWS KMS와 통합되어 저장 데이터를 암호화하는 AWS 서비스에서 사용됩니다. 서비스는 계정의 사용자를 대신하여 권한 부여를 만들고, 권한을 사용하고, 작업이 완료되는 즉시 권한 부여를 폐기합니다. AWS 서비스가 권한 부여를 사용하는 방법에 대한 자세한 내용은 서비스 사용 설명서 또는 개발자 안내서의 AWS 서비스의 AWS KMS 활용 방식 또는 저장 시 암호화를 참조하세요.
여러 프로그래밍 언어로 권한 부여 작업을 수행하는 방법을 보여주는 코드 예제는 권한 부여 작업 섹션을 참조하세요.
권한 부여 정보
권한 부여는 매우 유연하고 유용한 액세스 제어 메커니즘입니다. KMS 키에 대한 권한 부여를 생성하면 권한 부여에 지정된 모든 조건이 충족되는 경우 권한 부여를 통해 피부여자 보안 주체가 KMS 키에 대해 지정된 권한 부여 작업을 호출할 수 있습니다.
-
각 권한 부여를 통해 정확히 하나의 KMS 키에 액세스할 수 있습니다. 다른 AWS 계정에서 KMS 키에 대한 권한 부여를 생성할 수 있습니다.
-
권한 부여는 KMS 키에 대한 액세스를 허용할 수 있지만 액세스를 거부할 수는 없습니다.
-
각 권한 부여에는 하나의 피부여자 보안 주체가 있습니다. 피부여자 보안 주체는 KMS 키와 동일한 AWS 계정 또는 다른 계정에 있는 하나 이상의 ID를 나타낼 수 있습니다.
-
권한 부여는 권한 부여 작업만 허용할 수 있습니다. 권한 부여 작업은 권한 부여의 KMS 키로 지원되어야 합니다. 지원되지 않는 작업을 지정하면
ValidationError
예외가 발생하여 CreateGrant요청이 실패합니다. -
피부여자 보안 주체는 권한이 키 정책 또는 IAM 정책에서 제공되는 경우와 마찬가지로 권한 부여를 지정하지 않고 권한 부여가 부여하는 권한을 사용할 수 있습니다. 그러나 AWS KMS API는 최종 일관성 모델을 따르기 때문에 권한을 생성, 사용 중지 또는 취소할 때 변경 사항이 적용되기까지 잠시 지연될 수 있습니다. AWS KMS 권한 부여에서 권한을 즉시 사용하려면 권한 부여 토큰을 사용하십시오.
-
권한이 부여된 보안 주체는 권한 부여를 삭제(사용 중지 또는 취소)할 수 있습니다. 권한 부여를 삭제하면 권한 부여가 허용한 모든 권한이 제거됩니다. 권한 부여를 실행 취소하기 위해 추가하거나 제거할 정책을 파악할 필요가 없습니다.
-
AWS KMS는 각 KMS 키에 대한 권한 부여 수를 제한합니다. 자세한 내용은 KMS 키당 권한 부여: 50,000 섹션을 참조하세요.
권한 부여를 생성할 때와 다른 사람에게 권한 부여 생성 권한을 부여할 때는 주의해야 합니다. 권한 부여 생성 권한은 kms: 정책 설정 PutKeyPolicy 권한을 허용하는 것과 마찬가지로 보안에 영향을 미칩니다.
-
KMS 키(
kms:CreateGrant
)에 대한 권한 부여를 생성할 수 있는 권한이 있는 사용자는 권한 부여를 사용하여 AWS 서비스를 포함한 사용자 및 역할이 KMS 키를 사용하도록 허용할 수 있습니다. 보안 주체는 자신의 AWS 계정에 있는 자격 증명이거나 다른 계정이나 조직에 있는 자격 증명일 수 있습니다. -
권한 부여는 AWS KMS 작업의 하위 집합만 허용할 수 있습니다. 권한 부여를 사용하여 보안 주체가 KMS 키를 보고, 암호화 작업에 사용하고, 권한 부여를 만들고 사용 중지하도록 허용할 수 있습니다. 자세한 내용은 권한 부여 작업 섹션을 참조하세요. 권한 부여 제약 조건을 사용하여 대칭 암호화 키에 대한 권한 부여의 사용 권한을 제한할 수 있습니다.
-
보안 주체는 키 정책 또는 IAM 정책에서 권한 부여를 생성할 수 있는 권한을 가질 수 있습니다. 정책에서
kms:CreateGrant
권한을 받은 보안 주체는 KMS 키에 대한 권한 부여 작업에 대한 권한을 생성할 수 있습니다. 이러한 보안 주체는 키에 대해 부여한 권한이 필요하지 않습니다. 정책에서kms:CreateGrant
권한을 허용하면 정책 조건을 사용하여 이 권한을 제한할 수 있습니다. -
보안 주체는 권한 부여에서 권한 부여를 만들 수 있는 권한을 가져올 수도 있습니다. 이러한 보안 주체는 정책에서 다른 권한이 있더라도 부여된 권한만 위임할 수 있습니다. 자세한 내용은 권한 부여 CreateGrant 섹션을 참조하세요.
보조금과 관련된 개념에 대한 도움을 받으려면 권한 부여 용어를 참조하세요.
권한 부여 개념
권한 부여를 효과적으로 사용하려면 AWS KMS가 사용하는 용어와 개념을 이해해야 합니다.
- 권한 부여 제약
-
권한 부여의 권한을 제한하는 조건입니다. 현재 AWS KMS는 암호화 작업에 대한 요청의 암호화 컨텍스트를 기반으로 하는 권한 부여 제약 조건을 지원합니다. 자세한 내용은 권한 부여 제약 사용 섹션을 참조하세요.
- 권한 부여 ID
-
KMS 키에 대한 권한 부여의 고유 식별자입니다. 권한 부여 ID와 키 식별자를 사용하여 RetireGrant또는 RevokeGrant요청에서 부여를 식별할 수 있습니다.
- 권한 부여 작업
-
권한 부여에서 허용할 수 있는 AWS KMS 작업입니다. 다른 작업을 지정하면
ValidationError
예외가 발생하여 CreateGrant요청이 실패합니다. 권한 부여 토큰을 수락하는 작업이기도 합니다. 이러한 권한에 대한 자세한 내용은 AWS KMS 권한 섹션을 참조하세요.이러한 권한 부여 작업은 실제로 작업을 사용할 수 있는 권한을 나타냅니다. 따라서
ReEncrypt
작업의 경우ReEncryptFrom
,ReEncryptTo
또는 둘 다ReEncrypt*
를 지정할 수 있습니다.권한 부여 작업은 다음과 같습니다.
-
암호화 작업
-
기타 작업
허용한 권한 부여 작업은 권한 부여의 KMS 키로 지원되어야 합니다. 지원되지 않는 작업을 지정하면
ValidationError
예외가 발생하여 CreateGrant요청이 실패합니다. 예를 들어 대칭 암호화 KMS 키에 대한 권한 부여는 Sign, Verify,GenerateMac
또는VerifyMac
작업을 허용하지 않습니다. 비대칭 KMS 키에 대한 권한 부여는 데이터 키 또는 데이터 키 페어를 생성하는 작업을 허용하지 않습니다. -
- 권한 부여 토큰
-
AWS KMSAPI는 최종 일관성 모델을 따릅니다. 보조금을 생성할 때 변경 사항이 적용되기까지 잠시 지연될 수 있습니다AWS KMS. 일반적으로 변경 사항이 시스템 전체에 반영되는 데 몇 초 미만이 소요되지만 경우에 따라 몇 분이 걸릴 수도 있습니다. 권한 부여가 시스템을 통해 완전히 전파되기 전에 권한을 사용하려고 하면 액세스 거부 오류가 발생할 수 있습니다. 권한 부여 토큰을 사용하면 권한 부여를 참조하고 즉시 권한 부여 권한을 사용할 수 있습니다.
권한 부여 토큰은 권한 부여를 나타내는 고유하고 암호화되지 않은 가변 길이 base64 인코딩 문자열입니다. 권한 부여 토큰을 사용하여 권한 부여 작업에서 권한 부여를 식별할 수 있습니다. 그러나 토큰 값은 해시 다이제스트이므로 권한 부여에 대한 세부 정보는 공개되지 않습니다.
보조금 토큰은 보조금이 전체에 AWS KMS 완전히 반영될 때까지만 사용하도록 설계되었습니다. 그 후, 피부여자 보안 주체는 권한 부여 토큰이나 권한 부여에 대한 다른 증거를 제공하지 않고 권한 부여의 권한을 사용할 수 있습니다. 언제든지 권한 부여 토큰을 사용할 수 있지만 일단 권한의 일관성이 유지되면 AWS KMS는 권한 부여를 사용하여 권한 부여 토큰이 아닌 권한을 결정합니다.
예를 들어 다음 명령은 GenerateDataKey작업을 호출합니다. 권한 부여 토큰을 사용하여 지정된 KMS 키에서
GenerateDataKey
를 호출할 수 있는 권한을 호출자(피부여자 보안 주체)에게 부여하는 권한 부여를 나타냅니다.$
aws kms generate-data-key \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --key-spec AES_256 \ --grant-token $token
권한 부여 토큰을 사용하여 권한 부여를 관리하는 작업에서 권한 부여를 식별할 수도 있습니다. 예를 들어 은퇴한 보안 주체는 RetireGrant작업을 호출할 때 부여 토큰을 사용할 수 있습니다.
$
aws kms retire-grant \ --grant-token $token
CreateGrant
는 권한 부여 토큰을 반환하는 유일한 작업입니다. 다른 AWS KMS 작업이나 해당 작업의 CloudTrail로그 이벤트에서 부여 토큰을 얻을 수 없습니다. CreateGrant ListGrants및 ListRetirableGrants연산은 부여 ID를 반환하지만 승인 토큰은 반환하지 않습니다.자세한 내용은 권한 부여 토큰 사용 섹션을 참조하세요.
- 피부여자 보안 주체
-
권한 부여에 지정된 권한을 가져오는 ID입니다. 각 권한 부여에는 하나의 피부여자 보안 주체가 있지만 피부여자 보안 주체는 여러 ID를 나타낼 수 있습니다.
피부여자 보안 주체는 AWS 계정(루트), IAM 사용자, IAM 역할, 페더레이션 역할 또는 사용자 또는 수임된 역할 사용자를 포함한 모든 AWS 보안 주체가 될 수 있습니다. 피부여자 보안 주체는 KMS 키와 동일한 계정 또는 다른 계정에 있을 수 있습니다. 그러나 피부여자 보안 주체는 서비스 주체, IAM 그룹 또는 AWS 조직일 수 없습니다.
참고
IAM 모범 사례는 장기 보안 인증 정보가 있는 IAM 사용자의 사용을 장려하지 않습니다. 가능할 경우, 임시 보안 인증 정보를 제공하는 IAM 역할을 사용하세요. 자세한 내용은 IAM 사용 설명서의 IAM의 보안 모범 사례를 참조하세요.
- 권한 부여 사용 중지
-
권한 부여를 종료합니다. 권한 사용을 마치면 권한 부여를 사용 중지합니다.
권한 부여를 취소하거나 사용 중지하면 권한 부여가 삭제됩니다. 그러나 사용 중지는 권한 부여에 지정된 보안 주체에 의해 수행됩니다. 취소는 일반적으로 키 관리자가 수행합니다. 자세한 내용은 권한 부여 사용 중지 및 취소 섹션을 참조하세요.
- 사용 중지 보안 주체
-
권한 부여를 사용 중지할 수 있는 보안 주체입니다. 권한 부여에서 사용 중지 보안 주체를 지정할 수 있지만 필수는 아닙니다. 사용 중지 보안 주체는 AWS 계정, IAM 사용자, IAM 역할, 페더레이션 사용자 및 수임된 역할 사용자를 비롯해 모든 AWS 보안 주체가 될 수 있습니다. 사용 중지 보안 주체는 KMS 키와 동일한 계정에 있거나 다른 계정에 있을 수 있습니다.
참고
IAM 모범 사례는 장기 보안 인증 정보가 있는 IAM 사용자의 사용을 장려하지 않습니다. 가능할 경우, 임시 보안 인증 정보를 제공하는 IAM 역할을 사용하세요. 자세한 내용은 IAM 사용 설명서의 IAM의 보안 모범 사례를 참조하세요.
권한 부여에 지정된 사용 중지 보안 주체 외에도 권한 부여는 권한 부여가 생성된 AWS 계정에 의해 사용 중지될 수 있습니다. 권한 부여가
RetireGrant
작업을 허용하는 경우 피부여자 보안 주체 권한 부여를 사용 중지할 수 있습니다. 또한, 사용 중지 보안 주체인 AWS 계정 또는 AWS 계정은 동일한 AWS 계정의 IAM 보안 주체에 권한 부여를 사용 중지할 수 있는 권한을 위임할 수 있습니다. 자세한 내용은 권한 부여 사용 중지 및 취소 섹션을 참조하세요. - 권한 부여 취소
-
권한 부여를 종료합니다. 권한 부여를 취소하면 권한 부여가 허용하는 권한을 적극적으로 거부할 수 있습니다.
권한 부여를 취소하거나 사용 중지하면 권한 부여가 삭제됩니다. 그러나 사용 중지는 권한 부여에 지정된 보안 주체에 의해 수행됩니다. 취소는 일반적으로 키 관리자가 수행합니다. 자세한 내용은 권한 부여 사용 중지 및 취소 섹션을 참조하세요.
- (권한 부여의) 최종 일관성
-
AWS KMSAPI는 최종 일관성
모델을 따릅니다. 보조금을 생성, 폐기 또는 취소할 때 변경 사항이 적용되기까지 잠시 지연될 수 있습니다. AWS KMS 일반적으로 변경 사항이 시스템 전체에 반영되는 데 몇 초 미만이 소요되지만 경우에 따라 몇 분이 걸릴 수도 있습니다. 예기치 않은 오류가 발생하는 경우 이 짧은 지연을 의식하게 됩니다. 예를 들어, AWS KMS 전체에 권한 부여가 알려지기 전에 새 권한 부여를 관리하거나 새 권한 부여에서 권한을 사용하려고 하면 액세스 거부 오류가 발생할 수 있습니다. 권한 부여를 사용 중지하거나 취소하는 경우 권한 부여가 완전히 삭제될 때까지 피부여자 보안 주체가 잠시 동안 해당 권한을 계속 사용할 수 있습니다. 일반적인 전략은 요청을 다시 시도하는 것이며 일부 AWS SDK에는 자동 백오프 및 재시도 로직이 포함됩니다.
AWS KMS에는 이 짧은 지연을 완화하는 기능이 있습니다.
-
새 권한 부여에서 권한을 즉시 사용하려면 권한 부여 토큰을 사용하십시오. 권한 부여 토큰을 사용하여 모든 권한 부여 작업에서 권한 부여를 권한 부여를 참조할 수 있습니다. 지침은 권한 부여 토큰 사용 섹션을 참조하세요.
-
이 CreateGrant작업에는 재시도 작업이 중복 권한을 생성하지 못하도록 하는
Name
매개 변수가 있습니다.
참고
권한 부여 토큰은 서비스의 모든 엔드포인트가 새 권한 부여 상태로 업데이트될 때까지 권한 부여의 유효성을 대체합니다. 대부분의 경우 최종 일관성은 5분 이내에 달성됩니다.
자세한 내용은 AWS KMS최종 일관성을 참조하십시오.
-
AWS KMS 권한 부여의 모범 사례
AWS KMS에서는 권한 부여의 생성, 사용 및 관리를 수행할 때 다음 모범 사례를 권장합니다.
-
권한 부여의 권한을 피부여자 보안 주체에게 필요한 권한으로 제한합니다. 최소 권한 액세스 원칙을 사용합니다.
-
IAM 역할과 같은 특정 피부여자 보안 주체를 사용하고 피부여자에게 필요한 API 작업만 사용할 수 있는 권한을 부여합니다.
-
암호화 컨텍스트 권한 부여 제약 조건 을 사용하여 호출자가 의도한 목적으로 KMS 키를 사용하고 있는지 확인합니다. 요청에 암호화 컨텍스트를 사용하여 데이터를 보호하는 방법에 대한 자세한 내용은 AWS보안 EncryptionContext 블로그에서 AWS Key Management Service 및 를 사용하여 암호화된 데이터의 무결성을 보호하는 방법을
참조하십시오. 작은 정보
가능하면 EncryptionContextEqual부여 제약을 사용하세요. EncryptionContextSubset보조금 제약은 올바르게 사용하기가 더 어렵습니다. 그것을 사용해야 하는 경우 문서를 주의 깊게 읽고 권한 부여 제약 조건을 테스트해 의도한대로 작동하는지 확인하십시오.
-
중복 권한 부여를 삭제합니다. 중복 권한 부여는 동일한 키 ARN, API 작업, 피부여자 보안 주체, 암호화 컨텍스트 및 이름을 갖습니다. 원래 권한 부여를 사용 중지 또는 취소하지만 중복된 권한 부여를 그대로 두는 경우 남은 중복 권한 부여가 의도하지 않은 권한 에스컬레이션을 구성합니다.
CreateGrant
요청을 재시도할 때 중복 권한 부여를 방지하려면 Name 파라미터를 사용하십시오. 중복 부여를 검색하려면 ListGrants작업을 사용하십시오. 실수로 중복 권한 부여를 생성한 경우 가능한 한 빨리 사용을 중지하거나 취소합니다. -
권한 부여는 자동으로 만료되지 않습니다. 권한이 더 이상 필요하지 않으면 즉시 권한 부여 사용을 중지 또는 취소합니다. 삭제되지 않은 권한 부여는 암호화된 리소스에 대한 보안 위험을 초래할 수 있습니다.