기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS KMS의 ABAC
속성 기반 액세스 제어(ABAC)는 속성을 기반으로 권한을 정의하는 권한 부여 전략입니다. AWS KMS는 KMS 키와 연결된 태그 및 별칭을 기반으로 고객 관리 키에 대한 액세스를 제어할 수 있도록 하여 ABAC를 지원합니다. AWS KMS에서 ABAC를 활성화하는 태그 및 별칭 조건 키는 정책을 편집하거나 권한 부여를 관리하지 않고도 보안 주체가 KMS 키를 사용할 수 있도록 권한을 부여하는 강력하고 유연한 방법을 제공합니다. 그러나 보안 주체에 실수로 액세스가 허용되거나 거부되지 않도록 이러한 기능을 주의해서 사용해야 합니다.
ABAC를 사용하는 경우 태그 및 별칭 관리 권한이 이제 액세스 제어 권한이라는 점에 유의하십시오. 태그 또는 별칭에 따라 달라지는 정책을 배포하기 전에 모든 KMS 키의 기존 태그와 별칭을 알고 있어야 합니다. 별칭을 추가, 삭제 및 업데이트하거나 키에 태그를 지정하고 태그를 해제할 때 합리적인 예방 조치를 취해야 합니다. 태그와 별칭을 관리할 수 있는 권한을 필요한 보안 주체에게만 부여하고 관리할 수 있는 태그와 별칭을 제한합니다.
참고
AWS KMS에 ABAC를 사용하는 경우 보안 주체에게 태그 및 별칭을 관리할 수 있는 권한을 부여하는 데 주의해야 합니다. 태그 또는 별칭을 변경하면 KMS 키에 대한 사용 권한을 허용하거나 거부할 수 있습니다. 키 정책을 변경하거나 권한 부여를 생성할 권한이 없는 키 관리자는 태그 또는 별칭을 관리할 권한이 있는 경우 KMS 키에 대한 액세스를 제어할 수 있습니다.
태그 및 별칭 변경으로 KMS 키 인증에 영향을 미치는 데 최대 5분이 소요될 수 있습니다. 최근 변경 사항은 권한 부여에 영향을 미치기 전에 API 작업에서 볼 수 있습니다.
별칭을 기반으로 KMS 키에 대한 액세스를 제어하려면 조건 키를 사용해야 합니다. 별칭을 사용하여 정책문의 Resource
요소에서 KMS 키를 나타낼 수 없습니다. 별칭이 Resource
요소에 나타나면 정책문이 연결된 KMS 키가 아니라 별칭에 적용됩니다.
자세히 알아보기
-
예를 포함하여 ABAC에 대한 AWS KMS 지원에 대한 자세한 내용은 별칭을 사용하여 KMS 키에 대한 액세스 제어 및 태그를 사용하여 KMS 키에 대한 액세스 제어 단원을 참조하십시오.
-
태그를 사용하여 AWS 리소스에 대한 액세스를 제어하는 방법에 대한 일반적인 정보는 AWS의 ABAC란 무엇입니까?와 IAM 사용 설명서의 리소스 태그를 사용하여 AWS 리소스에 대한 액세스 제어를 참조하십시오.
AWS KMS에 대한 ABAC 조건 키
태그 및 별칭을 기반으로 KMS 키에 대한 액세스 권한을 부여하려면 키 정책 또는 IAM 정책에서 다음 조건 키를 사용합니다.
ABAC 조건 키 | 설명 | 정책 유형 | AWS KMS 작업 |
---|---|---|---|
aws:ResourceTag | KMS 키의 태그(키 및 값)가 정책의 태그 (키 및 값) 또는 태그 패턴과 일치합니다. | IAM 정책만 | KMS 키 리소스 작업 2 |
aws:RequestTag/tag-key | 요청의 태그(키 및 값)가 정책의 태그(키 및 값) 또는 태그 패턴과 일치합니다. | 주요 정책 및 IAM 정책1 | TagResource, UntagResource |
aws:TagKeys | 요청의 태그 키가 정책의 태그 키와 일치합니다. | 주요 정책 및 IAM 정책1 | TagResource, UntagResource |
kms:ResourceAliases | KMS 키와 연결된 별칭은 정책의 별칭 또는 별칭 패턴과 일치합니다. | IAM 정책만 | KMS 키 리소스 작업 2 |
kms:RequestAlias | 요청의 KMS 키를 나타내는 별칭은 정책의 별칭 또는 별칭 패턴과 일치합니다. | 주요 정책 및 IAM 정책1 | 암호화 작업, DescribeKey, GetPublicKey |
1키 정책에서 사용할 수 있는 모든 조건 키는 IAM 정책에서도 사용할 수 있지만 키 정책에서 허용하는 경우에만 가능합니다.
2KMS 키 리소스 작업은 특정 KMS 키에 대해 권한이 부여된 작업입니다. KMS 키 리소스 작업을 식별하려면 AWS KMS 권한 테이블에서 작업의 Resources
열에서 KMS 키 값을 찾습니다.
예를 들어 이러한 조건 키를 사용하여 다음 정책을 생성할 수 있습니다.
-
특정 별칭 또는 별칭 패턴이 있는 KMS 키를 사용할 수 있는 권한을 허용하는
kms:ResourceAliases
가 포함된 IAM 정책. 이는 태그에 의존하는 정책과 약간 다릅니다. 정책에서 별칭 패턴을 사용할 수 있지만 각 별칭은 AWS 계정 및 리전에서 고유해야 합니다. 이렇게 하면 정책 설명에 KMS 키의 키 ARN을 나열하지 않고 선택한 KMS 키 집합에 정책을 적용할 수 있습니다. 집합에서 KMS 키를 추가하거나 제거하려면 KMS 키의 별칭을 변경합니다. -
보안 주체가
Encrypt
작업에서 KMS 키를 사용하도록 허용하지만Encrypt
요청이 해당 별칭을 사용하여 KMS 키를 식별하는 경우에만 허용하는kms:RequestAlias
가 포함된 키 정책. -
특정 태그 키 및 태그 값과 함께 KMS 키를 사용할 수 있는 권한을 거부하는
aws:ResourceTag/tag-key
가 포함된 IAM 정책. 이렇게 하면 정책문에 KMS 키의 키 ARN을 나열하지 않고 선택한 KMS 키 집합에 정책을 적용할 수 있습니다. KMS 키를 집합에서 추가하거나 제거하려면 KMS 키에 태그를 지정하거나 태그를 해제합니다. -
보안 주체가
"Purpose"="Test"
KMS 키 태그만 삭제할 수 있도록 허용하는aws:RequestTag/tag-key
가 포함된 IAM 정책. -
Restricted
태그 키로 KMS 키에 태그를 지정하거나 태그를 해제할 수 있는 권한을 거부하는aws:TagKeys
가 포함된 IAM 정책.
ABAC는 액세스 관리를 유연하고 확장 가능하게 합니다. 예를 들어 aws:ResourceTag/tag-key
조건 키를 사용하여 KMS 키에 Purpose=Test
태그가 있는 경우에만 보안 주체가 지정된 작업에 KMS 키를 사용하도록 허용하는 IAM 정책을 생성할 수 있습니다. 이 정책은 AWS 계정의 모든 리전에 있는 모든 KMS 키에 적용됩니다.
사용자 또는 역할에 연결된 경우 다음 IAM 정책은 보안 주체가 지정된 작업에 대해 Purpose=Test
태그가 있는 모든 기존 KMS 키를 사용할 수 있도록 허용합니다. 새 KMS 키 또는 기존 KMS 키에 대한 액세스를 제공하기 위해 정책을 변경할 필요가 없습니다. Purpose=Test
태그를 KMS 키에 지정하기만 하면 됩니다. 마찬가지로 Purpose=Test
태그가 있는 KMS 키에서 이 액세스 권한을 제거하려면 태그를 편집하거나 삭제합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AliasBasedIAMPolicy", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "arn:aws:kms:*:111122223333:key/*", "Condition": { "StringEquals": { "aws:ResourceTag/Purpose": "Test" } } } ] }
그러나 이 기능을 사용하는 경우 태그와 별칭을 관리할 때는 주의해야 합니다. 태그 또는 별칭을 추가, 변경 또는 삭제하면 실수로 KMS 키에 대한 액세스를 허용하거나 거부할 수 있습니다. 키 정책을 변경하거나 권한 부여를 생성할 권한이 없는 키 관리자는 태그 및 별칭을 관리할 권한이 있는 경우 KMS 키에 대한 액세스를 제어할 수 있습니다. 이 위험을 완화하기 위해 별칭과 태그 관리 권한을 제한하는 것이 좋습니다. 예를 들어, 선택된 보안 주체만 Purpose=Test
태그를 관리하도록 허용할 수 있습니다. 자세한 내용은 별칭을 사용하여 KMS 키에 대한 액세스 제어 및 태그를 사용하여 KMS 키에 대한 액세스 제어 섹션을 참조하세요.
태그 또는 별칭?
AWS KMS는 태그 및 별칭이 있는 ABAC를 지원합니다. 두 옵션 모두 유연하고 확장 가능한 액세스 제어 전략을 제공하지만 서로 약간 다릅니다.
특정 AWS 사용 패턴에 따라 태그를 사용하거나 별칭을 사용하기로 결정할 수 있습니다. 예를 들어 대부분의 관리자에게 이미 태그 사용 권한을 부여한 경우 별칭을 기반으로 권한 부여 전략을 제어하는 것이 더 쉬울 수 있습니다. 또는 KMS 키당 별칭 할당량에 근접한 경우 태그 기반 권한 부여 전략을 선호할 수 있습니다.
일반적으로 다음과 같은 이점이 있습니다.
태그 기반 액세스 제어의 이점
-
다른 유형의 AWS 리소스에 대해 동일한 권한 부여 메커니즘있습니다.
동일한 태그 또는 태그 키를 사용하여 Amazon Relational Database Service(RDS) 클러스터, Amazon Elastic Block Store(Amazon EBS) 볼륨 및 KMS 키와 같은 여러 리소스 유형에 대한 액세스를 제어할 수 있습니다. 이 기능을 사용하면 기존의 역할 기반 액세스 제어보다 유연한 여러 가지 권한 부여 모델을 사용할 수 있습니다.
-
KMS 키 그룹에 대한 액세스 권한을 부여합니다.
태그를 사용하여 동일한 AWS 계정 및 리전의 KMS 키 그룹에 대한 액세스를 관리할 수 있습니다. 선택한 KMS 키에 동일한 태그 또는 태그 키를 할당합니다. 그런 다음 태그 또는 태그 키를 기반으로 유지 관리가 간편한 정책 설명을 만듭니다. 인증 그룹에서 KMS 키를 추가하거나 제거하려면 태그를 추가하거나 제거하십시오. 정책을 편집할 필요가 없습니다.
별칭 기반 액세스 제어의 이점
-
별칭을 기반으로 암호화 작업에 대한 액세스 권한을 부여합니다.
aws:RequestTag/tag-key를 비롯해 속성에 대한 대부분의 요청 기반 정책 조건은 속성을 추가, 편집 또는 삭제하는 작업에만 영향을 미칩니다. 그러나 kms:RequestAlias 조건 키는 요청에서 KMS 키를 식별하는 데 사용되는 별칭을 기반으로 암호화 작업에 대한 액세스를 제어합니다. 예를 들어 보안 주체에게
Encrypt
작업에서 KMS 키를 사용할 수 있는 권한을 부여할 수 있지만KeyId
매개 변수의 값이alias/restricted-key-1
인 경우에만 가능합니다. 이 조건을 충족하려면 다음 사항이 모두 필요합니다.-
KMS 키는 해당 별칭과 연결되어 있어야 합니다.
-
요청은 별칭을 사용하여 KMS 키를 식별해야 합니다.
-
보안 주체는
kms:RequestAlias
조건에 따라 KMS 키를 사용할 수 있는 권한이 있어야 합니다.
이는 애플리케이션에서 일반적으로 별칭 이름이나 별칭 ARN을 사용하여 KMS 키를 참조하는 경우에 특히 유용합니다.
-
-
매우 제한된 권한을 제공합니다.
별칭은 AWS 계정 및 리전에 고유해야 합니다. 따라서 보안 주체에 별칭을 기반으로 KMS 키에 대한 액세스 권한을 부여하는 것이 태그를 기반으로 액세스 권한을 부여하는 것보다 훨씬 더 제한적일 수 있습니다. 별칭과 달리 동일한 계정 및 리전에 있는 여러 KMS 키에 태그를 할당할 수 있습니다. 원하는 경우
alias/test*
와 같은 별칭 패턴을 사용하여 보안 주체에게 동일한 계정 및 리전의 KMS 키 그룹에 대한 액세스 권한을 부여할 수 있습니다. 그러나 특정 별칭에 대한 액세스를 허용하거나 거부하면 KMS 키에 대한 매우 엄격한 제어가 가능합니다.