기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon EMR의 ModifyInstanceGroups 작업에서는 작업과 함께 클러스터 ID를 제공하지 않아도 됩니다. 대신 인스턴스 그룹 ID만 지정할 수 있습니다. 이러한 이유로 클러스터 ID 또는 클러스터 태그를 기반으로 하는 이 작업에 대한 너무 단순한 거부 정책으로는 의도한 효과가 적용되지 않을 수 있습니다. 다음 예시 정책을 고려하세요.
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"elasticmapreduce:ModifyInstanceGroups"
],
"Effect": "Allow",
"Resource": "*"
},
{
"Action": [
"elasticmapreduce:ModifyInstanceGroups"
],
"Effect": "Deny",
"Resource": "arn:aws:elasticmapreduce:us-east-1:123456789012:cluster/j-12345ABCDEFG67"
}
]
}
이 정책이 연결된 사용자가 ModifyInstanceGroup
작업을 수행하고 인스턴스 그룹 ID만 지정하면 정책이 적용되지 않습니다. 다른 모든 리소스에서 작업이 허용되므로 작업에 성공합니다.
이 문제를 해결하는 방법은 NotResource 요소를 사용하여 클러스터 ID 없이 실행된 모든 ModifyInstanceGroup
작업을 거부하는 정책 명령문을 자격 증명에 연결하는 것입니다. 다음 예제 정책은 이러한 거부 명령문을 추가하여 클러스터 ID를 지정하지 않는 한 모든 ModifyInstanceGroups
요청이 실패하도록 합니다. 자격 증명은 작업과 함께 클러스터 ID를 지정해야 하므로 클러스터 ID를 기반으로 하는 거부 명령문이 유효합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"elasticmapreduce:ModifyInstanceGroups"
],
"Effect": "Allow",
"Resource": "*"
},
{
"Action": [
"elasticmapreduce:ModifyInstanceGroups"
],
"Effect": "Deny",
"Resource": "arn:aws:elasticmapreduce:us-east-1:123456789012:cluster/j-12345ABCDEFG67"
},
{
"Action": [
"elasticmapreduce:ModifyInstanceGroups"
],
"Effect": "Deny",
"NotResource": "arn:*:elasticmapreduce:*:*:cluster/*"
}
]
}
클러스터 태그와 관련된 값을 기반으로 ModifyInstanceGroups
작업을 거부하려는 경우에도 비슷한 문제가 존재합니다. 해결 방법도 비슷합니다. 태그 값을 지정하는 거부 명령문 외에도 지정한 태그가 없는 경우 값에 관계없이 ModifyInstanceGroup
작업을 거부하는 정책 명령문을 추가할 수 있습니다.
다음 예제는 자격 증명에 연결된 경우 department
태그가 dev
로 설정된 모든 클러스터에서 자격 증명의 ModifyInstanceGroups
작업을 거부하는 정책을 보여줍니다. StringNotLike
조건을 사용하여 department
태그가 없는 한 작업을 거부하는 거부 명령문 때문에 이 명령문만 유효합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"elasticmapreduce:ModifyInstanceGroups"
],
"Effect": "Allow",
"Resource": "*"
},
{
"Action": [
"elasticmapreduce:ModifyInstanceGroups"
],
"Condition": {
"StringEquals": {
"aws:ResourceTag/department": "dev"
}
},
"Effect": "Deny",
"Resource": "*"
},
{
"Action": [
"elasticmapreduce:ModifyInstanceGroups"
],
"Condition": {
"StringNotLike": {
"aws:ResourceTag/department": "?*"
}
},
"Effect": "Deny",
"Resource": "*"
}
],
}