기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
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:PutKeyPolicy 및 kms: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:
. 또는 AWS 계정와 같이 신뢰할 수 있는의 모든 리전(*)의 KMS 키에 대한 액세스를 제한합니다region
:account
:key/*arn:aws:kms:*:
.account
:key/*키 ID, 별칭 이름 또는 별칭을 ARN 사용하여 IAM 정책의
Resource
필드에 KMS 키를 나타낼 수 없습니다. 별칭을 지정하면 ARN정책은 KMS 키가 아닌 별칭에 적용됩니다. 별칭 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:CreateCustomKeyStore 및 kms:와 같은 사용자 지정 키 스토어에 대한 권한.ConnectCustomKeyStore
참고
별칭 작업에 대한 권한(kms:CreateAlias, kms:UpdateAlias, kms:DeleteAlias)을 별칭과 KMS 키에 연결해야 합니다. IAM 정책
"Resource": "*"
에서를 사용하여 별칭 및 KMS 키를 나타내거나Resource
요소의 별칭 및 KMS 키를 지정할 수 있습니다. 예시는 별칭에 대한 액세스 제어 섹션을 참조하세요.
이 주제의 예제에서는 KMS 키에 대한 IAM 정책 설계에 대한 자세한 정보와 지침을 제공합니다. 모든 AWS 리소스에 대한 IAM 모범 사례는 IAM 사용 설명서의 의 보안 모범 사례를 IAM 참조하세요.