Amazon での ModifyInstanceGroup アクションの拒否 EMR - Amazon EMR

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon での ModifyInstanceGroup アクションの拒否 EMR

Amazon の ModifyInstanceGroupsアクションEMRでは、 アクションでクラスター 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 にアタッチされたときに、タグ departmentdev に設定されているクラスターでその 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": "*" } ], }