メニュー
AWS Identity and Access Management
ユーザーガイド

IAM JSON ポリシーエレメント: NotAction

NotAction は、指定されたアクションリスト以外のすべてを明示的に照合する高度なポリシー要素です。NotAction を使うと、一致する予定のアクションのリストを含めるのではなく、一致する必要がないアクションがいくつかリストアップされ、ポリシーが短くなります。NotAction を使用する場合は、この要素に指定されているアクションは制限されているだけの アクションであることに注意してください。これは、Allow 効果を使用する場合、または Deny 効果を使用すると拒否された場合、リストされていないすべてのアクションまたはサービスが許可されることを意味します。

許可の NotAction

NotAction で指定されたアクションを除いて、"Effect": "Allow" のステートメントで NotAction 要素を使用して、AWS サービス内のすべてのアクションへのアクセスできます。NotAction 要素で指定されたアクションを除いて、Resource 要素と共に使用して、1 つ以上のリソースへのアクセスを提供することもできます。

次の例では、バケットの削除以外のすべての Amazon S3 リソースのすべてのアクションにユーザーがアクセスできます。

"Effect": "Allow", "NotAction": "s3:DeleteBucket", "Resource": "arn:aws:s3:::*",

多数のアクションへアクセスを許可する場合があります。NotAction要素を使用することにより、そのステートメントを効果的に反転させることで、より短いアクションリストを得ることができます。たとえば、多くの AWS サービスがあるため、ユーザーは、アクセス IAM アクション以外のすべてを実行できるポリシーを作成することができます。

次の例では、IAM を除くすべての AWS サービスのすべてのアクションにユーザーはアクセスできます。

"Effect": "Allow", "NotAction": "iam:*", "Resource": "*"

NotAction 要素と "Effect": "Allow" を同じステートメントで使用したり、ポリシー内の別のステートメントで使用することに注意してください。NotAction は、明示的にリストされていないすべてのサービスおよびアクションと一致し、意図した以上の権限をユーザーに付与する可能性があります。

拒否のNotAction

"Effect": "Deny" のステートメントでNotAction 要素を使用すると、NotAction 要素で指定されているアクションを除いて、リストされたすべてのリソースへのアクセスを拒否できます。この組み合わせでは、リストされた項目は許可されませんが、リストされていないアクションは明示的に拒否されます。許可したいアクションを許可する必要があります。

次の条件付きの例では、ユーザーが MFA の使用にサインインしていない場合、非 IAM アクションへのアクセスを拒否しています。ユーザーが MFA でサインインすると、"Condition" テストはできなく、最終的な "Deny" ステートメントは無効になります。ただし、これにより、ユーザーがアクションにアクセスすることは許可されず、IAM アクション以外のすべてのアクションが明示的に拒否されることに注意してください。

"Effect": "Deny", "NotAction": "iam:*", "Resource": "*", "Condition":{ "BoolIfExists":{ "aws:MultiFactorAuthPresent": "false"}}