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