翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 にアタッチできます。次のポリシー例では、このような deny ステートメントを追加して、クラスター ID が指定されていない限り、ModifyInstanceGroups
リクエストが失敗するようにします。ID はアクションでクラスター ID を指定する必要があるため、クラスター ID に基づく deny ステートメントが有効になります。
{
"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
アクションを拒否する場合にも同様の問題が存在します。解決策も同様です。タグ値を指定する deny ステートメントに加えて、値に関係なく、指定したタグが存在しない場合に ModifyInstanceGroup
アクションを拒否するポリシーステートメントを追加できます。
次の例では、ID にアタッチされたときに、タグ department
が dev
に設定されているクラスターでその ID に対して ModifyInstanceGroups
アクションを拒否するポリシーを示しています。StringNotLike
条件を使用して department
タグが存在しない限りアクションを拒否する deny ステートメントのため、このステートメントのみが有効です。
{
"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": "*"
}
],
}