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

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

IAM 정책 모범 사례

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

KMS 키에 대한 액세스를 제어하는 IAM 정책 설명에서 권한이 가장 적은 원칙 을 사용합니다. 보안 IAM 주체에게 사용 또는 관리해야 하는 KMS 키에만 필요한 권한만 부여합니다.

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

키 정책 사용

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

CreateKey 권한 제한

키(km: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 키를 나타낼 수 없습니다. 별칭을 지정하면 정책은 KMS 키ARN가 아닌 별칭에 적용됩니다. 별칭 IAM 정책에 대한 자세한 내용은 섹션을 참조하세요. 별칭에 대한 액세스 제어

IAM 정책에서 “리소스”: “*”를 피합니다.

와일드카드 문자 (*)를 신중하게 사용하십시오. 키 정책에서 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": "*"에서 를 사용하지 마세요. 이러한 작업은 다른 의 KMS 키에서 호출할 수 있습니다 AWS 계정.

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

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

참고

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

 

이 주제의 예제에서는 KMS 키에 대한 IAM 정책 설계에 대한 자세한 정보와 지침을 제공합니다. 모든 AWS 리소스에 대한 IAM 모범 사례는 IAM 사용 설명서의 에서 보안 모범 사례를 IAM 참조하세요.