この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
困っていた内容
RunInstances
のアクションで条件キーを利用して、リソースタイプを指定せず、特定の条件のみアクションを許可したいのですが、想定した動作になりません。
原因と対処方法を教えてください。
{
"Sid": "ECInstances",
"Effect": "Deny",
"Action": [
"ec2:RunInstances"
],
"Resource": "*",
"Condition": {
"StringNotEqualsIfExists": {
"aws:RequestTag/test": "test"
}
}
}
]
}
どう対応すればいいの?
- 原因
特定のリソースタイプを指定しないで、全てのリソースを指定している場合、上記のポリシーとなります。
RunInstances
のアクションは、リソースタイプの指定が必須のため、 上記のように設定している場合は、想定した動作が得られなくなります。
- 対処方法
以下のようにリソースタイプを指定することで、想定した動作を実現できます。
{
"Sid": "ECInstances",
"Effect": "Deny",
"Action": [
"ec2:RunInstances"
],
"Resource": "arn:aws:ec2:*:*:instance/*",
"Condition": {
"StringNotEqualsIfExists": {
"aws:RequestTag/test": "test"
}
}
}
]
}
RunInstances
のアクションで指定できるリソースタイプの一部は以下となります。
利用されているリソースタイプにより、サポートされている条件キーも異なりますので、ご利用いただく際は必要に応じてご確認ください。
image*
instance*
network-interface*
security-group*
subnet*
volume*
指定できるリソースタイプについては、ドキュメント をご参照ください。