IAM 정책 모범 사례 - AWS Key Management Service

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

IAM 정책 모범 사례

에 대한 액세스 AWS KMS keys 보안은 모든 AWS 리소스의 보안에 매우 중요합니다. KMS 키는 사용자 AWS 계정내 가장 민감한 리소스 대부분을 보호하는 데 사용됩니다. KMS 키에 대한 액세스를 제어하는 ​​키 정책, IAM 정책, 권한 부여VPC 엔드포인트 정책을 설계하는 데 시간을 할애하십시오.

KMS 키에 대한 액세스를 제어하는 IAM 정책 설명에서 최소 권한 원칙을 사용합니다. IAM 보안 주체에 사용하거나 관리해야 하는 KMS 키에만 필요한 권한만 부여합니다.

다음 모범 사례는 AWS KMS 키와 별칭에 대한 액세스를 제어하는 IAM 정책에 적용됩니다. 일반적인 IAM 정책 모범 사례 지침은 IAM 사용 설명서의 IAM의 보안 모범 사례를 참조하세요.

키 정책 사용

가능하면 다른 AWS 계정에 있는 키를 포함해 여러 KMS 키에 적용할 수 있는 IAM 정책보다는 하나의 KMS 키에 영향을 주는 키 정책에 권한을 제공합니다. 이는 kms: PutKeyPolicy 및 kms와 같은 민감한 ScheduleKeyDeletion 권한뿐만 아니라 데이터 보호 방식을 결정하는 암호화 작업에도 특히 중요합니다.

권한 제한 CreateKey

필요한 보안 사용자에게만 키 (kms: CreateKey) 생성 권한을 부여하십시오. KMS 키를 만드는 보안 주체도 키 정책을 설정하므로 자신이 만든 KMS 키를 사용하고 관리할 수 있는 권한을 자신과 다른 사용자에게 부여할 수 있습니다. 이 사용 권한을 할 때 정책 조건을 사용하여 제한하는 것이 좋습니다. 예를 들어 kms: KeySpec 조건을 사용하여 권한을 대칭 암호화 KMS 키로 제한할 수 있습니다.

IAM 정책에서 KMS 키 지정

가장 좋은 방법은 정책 설명의 Resource 요소에 권한이 적용되는 각 KMS 키의 키 ARN을 지정하는 것입니다. 이 방법은 보안 주체에 필요한 KMS 키에 대한 사용 권한을 제한합니다. 예를 들어 이 Resource 요소는 보안 주체가 사용해야 하는 KMS 키만 나열합니다.

"Resource": [ "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321" ]

KMS 키를 지정하는 것이 비실용적이라면 신뢰할 AWS 계정 수 있는 지역과 지역의 KMS 키에 대한 액세스를 제한하는 Resource 값 (예:) 을 사용하십시오. arn:aws:kms:region:account:key/* 또는 다음과 같이 신뢰할 AWS 계정수 있는 지역의 모든 지역 (*) 에서 KMS 키에 대한 액세스를 제한할 수 있습니다. arn:aws:kms:*:account:key/*

키 ID, 별칭 이름 또는 별칭 ARN을 사용하여 IAM 정책의 Resource 필드에서 KMS 키를 나타낼 수 없습니다. 별칭 ARN을 지정하면 정책이 KMS 키가 아닌 별칭에 적용됩니다. 별칭에 대한 IAM 정책에 대한 자세한 내용은 별칭에 대한 액세스 제어 섹션을 참조하십시오.

IAM 정책에서 "Resource": "*" 사용 안 함

와일드카드 문자 (*)를 신중하게 사용하십시오. 키 정책에서 Resource 요소의 와일드카드 문자는 키 정책이 연결된 KMS 키를 나타냅니다. 그러나 IAM 정책에서는 Resource 요소 ("Resource": "*") 에 와일드카드 문자만 넣어도 보안 주체 계정에 사용 권한이 AWS 계정 있는 모든 KMS 키에 권한이 적용됩니다. 여기에는 다른 KMS 키와 보안 주체 AWS 계정 계정의 KMS 키가 포함될 수 있습니다.

예를 들어 KMS 키를 다른 AWS 계정주체에서 사용하려면 보안 주체는 외부 계정의 KMS 키 정책과 자체 계정의 IAM 정책으로부터 권한을 받아야 합니다. 임의의 계정이 KMS 키에 대한 AWS 계정 kms:Decrypt 권한을 부여했다고 가정합니다. 이 경우 역할에 모든 KMS 키("Resource": "*")에 대한 kms:Decrypt 권한을 부여하는 계정의 IAM 정책은 요구 사항의 IAM 부분을 충족합니다. 따라서 해당 역할을 수임할 수 있는 보안 주체는 이제 신뢰할 수 없는 계정의 KMS 키를 사용하여 암호문을 해독할 수 있습니다. 해당 작업에 대한 항목은 두 계정의 CloudTrail 로그에 모두 표시됩니다.

특히 다음 API 작업을 허용하는 정책 설명에서 "Resource": "*"를 사용하지 마십시오. 이러한 작업은 다른 AWS 계정 KMS 키에서 호출할 수 있습니다.

"Resource": "*"를 사용하는 경우

IAM 정책에서 필요한 권한에 대해서만 Resource 요소의 와일드카드 문자를 사용하십시오. 다음 권한에만 "Resource": "*" 요소가 필요합니다.

참고

별칭 작업 (kms:CreateAlias, kms:, kms:, kms: UpdateAlias DeleteAlias) 에 대한 권한은 별칭 및 KMS 키에 연결되어야 합니다. IAM 정책에서 "Resource": "*"를 사용하여 별칭과 KMS 키를 나타내거나 Resource 요소에서 별칭과 KMS 키를 지정할 수 있습니다. 예제는 별칭에 대한 액세스 제어 섹션을 참조하십시오.

 

이 항목의 예에서는 KMS 키에 대한 IAM 정책을 설계하기 위한 추가 정보와 지침을 제공합니다. 일반적인 모범 사례 지침은 AWS KMS 모범 사례 (PDF) 를 참조하십시오.AWS Key Management Service 모든 AWS 리소스에 대한 IAM 모범 사례는 IAM 사용 설명서의 IAM의 보안 모범 사례를 참조하십시오.