IAM 정책이 사용자 또는 역할이 AWS KMS의 KMS 키에 액세스하도록 허용하는 것을 방지하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2021년 2월 17일

AWS Identity and Access Management(IAM) 자격 증명(사용자, 그룹, 역할)을 사용한 액세스로부터 AWS KMS 키를 보호하려고 합니다. 그러나 기본 KMS 키 정책은 계정의 IAM 자격 증명에서 IAM 권한을 사용하여 KMS 키에 액세스할 수 있도록 허용합니다. 이를 방지하려면 어떻게 해야 합니까?

간략한 설명

기본 KMS 키 IAM 정책에는 다음과 같은 문이 포함되어 있습니다.

{
    "Sid": "Enable IAM User Permissions",
    "Effect": "Allow",
    "Principal": {
        "AWS": "arn:aws:iam::111122223333:root"
    },
    "Action": "kms:*",
    "Resource": "*"
}

이 예에서 효과보안 주체 요소는 AWS 루트 사용자 계정을 참조하지 않습니다. Amazon 리소스 이름(ARN)은 이 IAM 정책으로 KMS 키에 대한 권한을 허용합니다. 필요한 AWS Key Management Service(AWS KMS) 권한이 IAM 엔터티에 연결된 경우 AWS 계정 111122223333의 보안 주체는 KMS 키에 대한 루트 액세스 권한을 갖습니다.

해결 방법

IAM 엔터티가 KMS 키에 액세스하는 것을 금지하고 루트 사용자 계정이 키를 관리하도록 허용할 수 있습니다. 이렇게 하면 루트 사용자 계정이 KMS 키에 대한 액세스 권한을 잃는 것도 방지합니다.

KMS 키 정책에 다음과 비슷하게 동일한 계정의 주요 관리자가 포함되어 있어야 합니다.

{
    "Sid": "Allow access for Key Administrators",
    "Effect": "Allow",
    "Principal": {
        "AWS": [
            "arn:aws:iam::111122223333:user/KMSAdminUser",
            "arn:aws:iam::111122223333:role/KMSAdminRole"
        ]
    },
    "Action": [
        "kms:Create*",
        "kms:Describe*",
        "kms:Enable*",
        "kms:List*",
        "kms:Put*",
        "kms:Update*",
        "kms:Revoke*",
        "kms:Disable*",
        "kms:Get*",
        "kms:Delete*",
        "kms:TagResource",
        "kms:UntagResource",
        "kms:ScheduleKeyDeletion",
        "kms:CancelKeyDeletion"
    ],
    "Resource": "*"
}

KMS 키 IAM 정책 Sid를 ‘EnableRootAccessAndPreventPermissionDelegation’으로 바꾸고 다음과 비슷한 조건 요소를 추가합니다.

중요: 계정 111122223333을 자체 계정 번호로 바꾸고 조건 키 aws:PrincipalType계정으로 설정해야 합니다.

{
    "Sid": "EnableRootAccessAndPreventPermissionDelegation",
    "Effect": "Allow",
    "Principal": {
        "AWS": "arn:aws:iam::111122223333:root"
    },
    "Action": "kms:*",
    "Resource": "*",
    "Condition": {
        "StringEquals": {
            "aws:PrincipalType": "Account"
        }
    }
}

KMS 키 정책의 관리자 섹션에 나열된 계정 루트 사용자 및 IAM 엔터티만 키를 관리할 수 있습니다.


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요하세요?