が IAM と AWS WAF 連携する方法 - AWS WAF、 AWS Firewall ManagerAWS Shield Advanced、および AWS Shield ネットワークセキュリティディレクター

の新しいコンソールエクスペリエンスの紹介 AWS WAF

更新されたエクスペリエンスを使用して、 コンソールの任意の場所で AWS WAF 機能にアクセスできるようになりました。詳細については、「更新されたコンソールエクスペリエンスの使用」を参照してください。

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

が IAM と AWS WAF 連携する方法

このセクションでは、 で IAM の機能を使用する方法について説明します AWS WAF。

IAM を使用して へのアクセスを管理する前に AWS WAF、 で使用できる IAM 機能を確認してください AWS WAF。

AWS WAF およびその他の AWS のサービスがほとんどの IAM 機能とどのように連携するかの概要については、「IAM ユーザーガイド」のAWS 「IAM と連携する のサービス」を参照してください。

のアイデンティティベースのポリシー AWS WAF

アイデンティティベースのポリシーのサポート: あり

アイデンティティベースポリシーは、IAM ユーザーグループ、ユーザーのグループ、ロールなど、アイデンティティにアタッチできる JSON 許可ポリシードキュメントです。これらのポリシーは、ユーザーとロールが実行できるアクション、リソース、および条件をコントロールします。ID ベースのポリシーの作成方法については、「IAM ユーザーガイド」の「カスタマー管理ポリシーでカスタム IAM アクセス許可を定義する」を参照してください。

IAM アイデンティティベースのポリシーでは、許可または拒否するアクションとリソース、およびアクションを許可または拒否する条件を指定できます。プリンシパルは、それが添付されているユーザーまたはロールに適用されるため、アイデンティティベースのポリシーでは指定できません。JSON ポリシーで使用できるすべての要素について学ぶには、「IAM ユーザーガイド」の「IAM JSON ポリシーの要素のリファレンス」を参照してください。

AWS WAF アイデンティティベースのポリシーの例を表示するには、「」を参照してくださいAWS WAFのアイデンティティベースのポリシーの例

内のリソースベースのポリシー AWS WAF

リソースベースのポリシーのサポート: あり

リソースベースのポリシーは、リソースに添付する JSON ポリシードキュメントです。リソースベースのポリシーには例として、IAM ロールの信頼ポリシーや Amazon S3 バケットポリシーがあげられます。リソースベースのポリシーをサポートするサービスでは、サービス管理者はポリシーを使用して特定のリソースへのアクセスを制御できます。ポリシーがアタッチされているリソースの場合、指定されたプリンシパルがそのリソースに対して実行できるアクションと条件は、ポリシーによって定義されます。リソースベースのポリシーでは、プリンシパルを指定する必要があります。プリンシパルには、アカウント、ユーザー、ロール、フェデレーティッドユーザー、または を含めることができます AWS のサービス。

クロスアカウントアクセスを有効にするには、アカウント全体、または別のアカウントの IAM エンティティをリソースベースのポリシーのプリンシパルとして指定します。リソースベースのポリシーにクロスアカウントのプリンシパルを追加しても、信頼関係は半分しか確立されない点に注意してください。プリンシパルとリソースが異なる場合 AWS アカウント、信頼されたアカウントの IAM 管理者は、プリンシパルエンティティ (ユーザーまたはロール) にリソースへのアクセス許可も付与する必要があります。IAM 管理者は、アイデンティティベースのポリシーをエンティティにアタッチすることで権限を付与します。ただし、リソースベースのポリシーで、同じアカウントのプリンシパルへのアクセス権が付与されている場合は、アイデンティティベースのポリシーをさらに付与する必要はありません。詳細については、「IAM ユーザーガイド」の「IAM でのクロスアカウントリソースアクセス」を参照してください。

AWS WAF はリソースベースのポリシーを使用して、アカウント間のルールグループの共有をサポートします。リソースベースのポリシー設定を AWS WAF API コールまたは同等の CLI PutPermissionPolicyまたは SDK コールに提供することで、所有するルールグループを別の AWS アカウントと共有します。他の利用可能な言語の例やドキュメントへのリンクなどの追加情報については、 AWS WAF API リファレンスのPutPermissionPolicy」を参照してください。この機能は、コンソールや AWS CloudFormationなどの他の方法では使用できません。

のポリシーアクション AWS WAF

ポリシーアクションのサポート:あり

管理者は JSON AWS ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。

JSON ポリシーの Action 要素にはポリシー内のアクセスを許可または拒否するために使用できるアクションが記述されます。ポリシーアクションの名前は通常、関連付けられた AWS API オペレーションと同じです。一致する API オペレーションのない許可のみのアクションなど、いくつかの例外があります。また、ポリシーに複数のアクションが必要なオペレーションもあります。これらの追加アクションは依存アクションと呼ばれます。

このアクションは関連付けられたオペレーションを実行するためのアクセス許可を付与するポリシーで使用されます。

それぞれの AWS WAF アクションとアクセス許可のリストを確認するには、「サービス認可リファレンス」のAWS WAF V2 で定義されるアクション」を参照してください。

のポリシーアクションは、アクションの前に次のプレフィックス AWS WAF を使用します。

wafv2

単一のステートメントで複数のアクションを指定するには、アクションをカンマで区切ります。

"Action": [ "wafv2:action1", "wafv2:action2" ]

ワイルドカード (*) を使用すると、複数のアクションを指定することができます。たとえば、 で始 AWS WAF まる のすべてのアクションを指定するにはList、次のアクションを含めます。

"Action": "wafv2:List*"

AWS WAF アイデンティティベースのポリシーの例を表示するには、「」を参照してくださいAWS WAFのアイデンティティベースのポリシーの例

追加のアクセス許可設定が必要なアクション

一部のアクションには、「サービス認可リファレンス」のAWS WAF V2 で定義されるアクション」で完全に説明できないアクセス許可が必要です。このセクションは、追加のアクセス許可に関する情報を説明します。

AssociateWebACL のアクセス権限

このセクションでは、 AWS WAF アクション を使用して保護パックまたはウェブ ACL をリソースに関連付けるために必要なアクセス許可を一覧表示しますAssociateWebACL

Amazon CloudFront ディストリビューションでは、このアクションの代わりに CloudFront アクション UpdateDistribution を使用してください。詳細については、Amazon CloudFront API リファレンスの「UpdateDistribution」を参照してください。

Amazon API Gateway REST API

REST API リソースタイプSetWebACLで API Gateway を呼び出し、保護パックまたはウェブ ACL で を呼び AWS WAF AssociateWebACL出すアクセス許可が必要です。

{ "Sid": "AssociateWebACL1", "Effect": "Allow", "Action": [ "wafv2:AssociateWebACL" ], "Resource": [ "arn:aws:wafv2:region:account-id:regional/webacl/*/*" ] }, { "Sid": "AssociateWebACL2", "Effect": "Allow", "Action": [ "apigateway:SetWebACL" ], "Resource": [ "arn:aws:apigateway:*::/restapis/*/stages/*" ] }
Application Load Balancer

Application Load Balancer リソースタイプで elasticloadbalancing:SetWebACLアクションを呼び出し、保護パックまたはウェブ ACL AssociateWebACLで を呼び AWS WAF 出すアクセス許可が必要です。

{ "Sid": "AssociateWebACL1", "Effect": "Allow", "Action": [ "wafv2:AssociateWebACL" ], "Resource": [ "arn:aws:wafv2:region:account-id:regional/webacl/*/*" ] }, { "Sid": "AssociateWebACL2", "Effect": "Allow", "Action": [ "elasticloadbalancing:SetWebACL" ], "Resource": [ "arn:aws:elasticloadbalancing:*:account-id:loadbalancer/app/*/*" ] }
AWS AppSync GraphQL API

GraphQL API リソースタイプで を呼び出し AWS AppSync SetWebACL、保護パックまたはウェブ ACL で を呼び AWS WAF AssociateWebACL出すアクセス許可が必要です。

{ "Sid": "AssociateWebACL1", "Effect": "Allow", "Action": [ "wafv2:AssociateWebACL" ], "Resource": [ "arn:aws:wafv2:region:account-id:regional/webacl/*/*" ] }, { "Sid": "AssociateWebACL2", "Effect": "Allow", "Action": [ "appsync:SetWebACL" ], "Resource": [ "arn:aws:appsync:*:account-id:apis/*" ] }
Amazon Cognito ユーザープール

ユーザープールリソースタイプで Amazon Cognito AssociateWebACLアクションを呼び出し、保護パックまたはウェブ ACL で を呼び AWS WAF AssociateWebACL出すアクセス許可が必要です。

{ "Sid": "AssociateWebACL1", "Effect": "Allow", "Action": [ "wafv2:AssociateWebACL" ], "Resource": [ "arn:aws:wafv2:region:account-id:regional/webacl/*/*" ] }, { "Sid": "AssociateWebACL2", "Effect": "Allow", "Action": [ "cognito-idp:AssociateWebACL" ], "Resource": [ "arn:aws:cognito-idp:*:account-id:userpool/*" ] }
AWS App Runner サービス

App Runner サービスリソースタイプで App Runner AssociateWebACLアクションを呼び出し、ウェブ ACL で を呼び AWS WAF AssociateWebACL出すアクセス許可が必要です。

{ "Sid": "AssociateWebACL1", "Effect": "Allow", "Action": [ "wafv2:AssociateWebACL" ], "Resource": [ "arn:aws:wafv2:region:account-id:regional/webacl/*/*" ] }, { "Sid": "AssociateWebACL2", "Effect": "Allow", "Action": [ "apprunner:AssociateWebAcl" ], "Resource": [ "arn:aws:apprunner:*:account-id:service/*/*" ] }
AWS Verified Access インスタンス

Verified Access インスタンスリソースタイプで ec2:AssociateVerifiedAccessInstanceWebAclアクションを呼び出し、ウェブ ACL で を呼び AWS WAF AssociateWebACL出すアクセス許可が必要です。

{ "Sid": "AssociateWebACL1", "Effect": "Allow", "Action": [ "wafv2:AssociateWebACL" ], "Resource": [ "arn:aws:wafv2:region:account-id:regional/webacl/*/*" ] }, { "Sid": "AssociateWebACL2", "Effect": "Allow", "Action": [ "ec2:AssociateVerifiedAccessInstanceWebAcl" ], "Resource": [ "arn:aws:ec2:*:account-id:verified-access-instance/*" ] }

DisassociateWebACL のアクセス権限

このセクションでは、 AWS WAF アクション を使用してリソースから保護パックまたはウェブ ACL の関連付けを解除するために必要なアクセス許可を一覧表示しますDisassociateWebACL

Amazon CloudFront ディストリビューションの場合、このアクションの代わりに、空の保護パックまたはウェブ ACL ID UpdateDistributionで CloudFront アクションを使用します。詳細については、Amazon CloudFront API リファレンスの「UpdateDistribution」を参照してください。

Amazon API Gateway REST API

REST API リソースタイプで API ゲートウェイ SetWebACL を呼び出すアクセス許可が必要です。を呼び出すアクセス許可は必要ありません AWS WAF DisassociateWebACL

{ "Sid": "DisassociateWebACL", "Effect": "Allow", "Action": [ "apigateway:SetWebACL" ], "Resource": [ "arn:aws:apigateway:*::/restapis/*/stages/*" ] }
Application Load Balancer

Application Load Balancer リソースタイプで elasticloadbalancing:SetWebACL アクションを呼び出すアクセス許可が必要です。を呼び出すアクセス許可は必要ありません AWS WAF DisassociateWebACL

{ "Sid": "DisassociateWebACL", "Effect": "Allow", "Action": [ "elasticloadbalancing:SetWebACL" ], "Resource": [ "arn:aws:elasticloadbalancing:*:account-id:loadbalancer/app/*/*" ] }
AWS AppSync GraphQL API

GraphQL API リソースタイプで を呼び出す AWS AppSync SetWebACLアクセス許可が必要です。を呼び出すアクセス許可は必要ありません AWS WAF DisassociateWebACL

{ "Sid": "DisassociateWebACL", "Effect": "Allow", "Action": [ "appsync:SetWebACL" ], "Resource": [ "arn:aws:appsync:*:account-id:apis/*" ] }
Amazon Cognito ユーザープール

ユーザープールリソースタイプで Amazon Cognito DisassociateWebACLアクションを呼び出し、 を呼び出すアクセス許可が必要です AWS WAF DisassociateWebACL

{ "Sid": "DisassociateWebACL1", "Effect": "Allow", "Action": "wafv2:DisassociateWebACL", "Resource": "*" }, { "Sid": "DisassociateWebACL2", "Effect": "Allow", "Action": [ "cognito-idp:DisassociateWebACL" ], "Resource": [ "arn:aws:cognito-idp:*:account-id:userpool/*" ] }
AWS App Runner サービス

App Runner サービスリソースタイプで App Runner DisassociateWebACLアクションを呼び出し、 を呼び出すアクセス許可が必要です AWS WAF DisassociateWebACL

{ "Sid": "DisassociateWebACL1", "Effect": "Allow", "Action": "wafv2:DisassociateWebACL", "Resource": "*" }, { "Sid": "DisassociateWebACL2", "Effect": "Allow", "Action": [ "apprunner:DisassociateWebAcl" ], "Resource": [ "arn:aws:apprunner:*:account-id:service/*/*" ] }
AWS Verified Access インスタンス

Verified Access インスタンスリソースタイプで ec2:DisassociateVerifiedAccessInstanceWebAclアクションを呼び出し、 を呼び出すアクセス許可が必要です AWS WAF DisassociateWebACL

{ "Sid": "DisassociateWebACL1", "Effect": "Allow", "Action": "wafv2:DisassociateWebACL", "Resource": "*" }, { "Sid": "DisassociateWebACL2", "Effect": "Allow", "Action": [ "ec2:DisassociateVerifiedAccessInstanceWebAcl" ], "Resource": [ "arn:aws:ec2:*:account-id:verified-access-instance/*" ] }

GetWebACLForResource のアクセス権限

このセクションでは、 AWS WAF アクション を使用して保護されたリソースの保護パックまたはウェブ ACL を取得するために必要なアクセス許可を一覧表示しますGetWebACLForResource

Amazon CloudFront ディストリビューションでは、このアクションの代わりに CloudFront アクション GetDistributionConfig を使用してください。詳細については、Amazon CloudFront API リファレンスの「GetDistributionConfig」を参照してください。

注記

GetWebACLForResource によって GetWebACL を呼び出すにはアクセス許可が必要です。このコンテキストでは、 は、 がGetWebACLForResource返す保護パックまたはウェブ ACL にアクセスするために必要なアクセス許可がアカウントにあることを検証するためにGetWebACLのみ AWS WAF 使用します。を呼び出すとGetWebACLForResource、アカウントが resource wafv2:GetWebACLに対して実行する権限がないことを示すエラーが表示されることがあります。このタイプのエラーは AWS CloudTrail イベント履歴に追加 AWS WAF されません。

Amazon API Gateway REST API、Application Load Balancer、 AWS AppSync GraphQL API

保護パックまたはウェブ ACL GetWebACL に対して および を呼び AWS WAF GetWebACLForResource出すアクセス許可が必要です。

{ "Sid": "GetWebACLForResource", "Effect": "Allow", "Action": [ "wafv2:GetWebACLForResource", "wafv2:GetWebACL" ], "Resource": [ "arn:aws:wafv2:region:account-id:regional/webacl/*/*" ] }
Amazon Cognito ユーザープール

ユーザープールリソースタイプで Amazon Cognito GetWebACLForResourceアクションを呼び出し、 と を呼び AWS WAF GetWebACLForResource出すアクセス許可が必要ですGetWebACL

{ "Sid": "GetWebACLForResource1", "Effect": "Allow", "Action": [ "wafv2:GetWebACLForResource", "wafv2:GetWebACL" ], "Resource": [ "arn:aws:wafv2:region:account-id:regional/webacl/*/*" ] }, { "Sid": "GetWebACLForResource2", "Effect": "Allow", "Action": [ "cognito-idp:GetWebACLForResource" ], "Resource": [ "arn:aws:cognito-idp:*:account-id:userpool/*" ] }
AWS App Runner サービス

App Runner サービスリソースタイプで App Runner DescribeWebAclForServiceアクションを呼び出し、 GetWebACLForResource と を呼び AWS WAF 出すアクセス許可が必要ですGetWebACL

{ "Sid": "GetWebACLForResource1", "Effect": "Allow", "Action": [ "wafv2:GetWebACLForResource", "wafv2:GetWebACL" ], "Resource": [ "arn:aws:wafv2:region:account-id:regional/webacl/*/*" ] }, { "Sid": "GetWebACLForResource2", "Effect": "Allow", "Action": [ "apprunner:DescribeWebAclForService" ], "Resource": [ "arn:aws:apprunner:*:account-id:service/*/*" ] }
AWS Verified Access インスタンス

Verified Access インスタンスリソースタイプで ec2:GetVerifiedAccessInstanceWebAclアクションを呼び出し、 と を呼び AWS WAF GetWebACLForResource出すアクセス許可が必要ですGetWebACL

{ "Sid": "GetWebACLForResource1", "Effect": "Allow", "Action": [ "wafv2:GetWebACLForResource", "wafv2:GetWebACL" ], "Resource": [ "arn:aws:wafv2:region:account-id:regional/webacl/*/*" ] }, { "Sid": "GetWebACLForResource2", "Effect": "Allow", "Action": [ "ec2:GetVerifiedAccessInstanceWebAcl" ], "Resource": [ "arn:aws:ec2:*:account-id:verified-access-instance/*" ] }

ListResourcesForWebACL のアクセス権限

このセクションでは、 AWS WAF アクション を使用して保護パックまたはウェブ ACL の保護されたリソースのリストを取得するために必要なアクセス許可を一覧表示しますListResourcesForWebACL

Amazon CloudFront ディストリビューションでは、このアクションの代わりに CloudFront アクション ListDistributionsByWebACLId を使用してください。詳細については、Amazon CloudFront API リファレンスの「ListDistributionsByWebACLId」を参照してください。

Amazon API Gateway REST API、Application Load Balancer、 AWS AppSync GraphQL API

ウェブ ACL の を呼び AWS WAF ListResourcesForWebACL出すアクセス許可が必要です。

{ "Sid": "ListResourcesForWebACL", "Effect": "Allow", "Action": [ "wafv2:ListResourcesForWebACL" ], "Resource": [ "arn:aws:wafv2:region:account-id:regional/webacl/*/*" ] }
Amazon Cognito ユーザープール

ユーザープールリソースタイプで Amazon Cognito ListResourcesForWebACL アクションを呼び出し、 AWS WAF ListResourcesForWebACL を呼び出すためのアクセス許可が必要です。

{ "Sid": "ListResourcesForWebACL1", "Effect": "Allow", "Action": [ "wafv2:ListResourcesForWebACL" ], "Resource": [ "arn:aws:wafv2:region:account-id:regional/webacl/*/*" ] }, { "Sid": "ListResourcesForWebACL2", "Effect": "Allow", "Action": [ "cognito-idp:ListResourcesForWebACL" ], "Resource": [ "arn:aws:cognito-idp:*:account-id:userpool/*" ] }
AWS App Runner サービス

App Runner サービスリソースタイプで App Runner ListAssociatedServicesForWebAclアクションを呼び出し、 を呼び出すアクセス許可が必要です AWS WAF ListResourcesForWebACL

{ "Sid": "ListResourcesForWebACL1", "Effect": "Allow", "Action": [ "wafv2:ListResourcesForWebACL" ], "Resource": [ "arn:aws:wafv2:region:account-id:regional/webacl/*/*" ] }, { "Sid": "ListResourcesForWebACL2", "Effect": "Allow", "Action": [ "apprunner:ListAssociatedServicesForWebAcl" ], "Resource": [ "arn:aws:apprunner:*:account-id:service/*/*" ] }
AWS Verified Access インスタンス

検証済みアクセス インスタンスのリソース タイプで ec2:DescribeVerifiedAccessInstanceWebAclAssociations アクションを呼び出すには、 AWS WAF ListResourcesForWebACL を呼び出すためのアクセス許可が必要です。

{ "Sid": "ListResourcesForWebACL1", "Effect": "Allow", "Action": [ "wafv2:ListResourcesForWebACL" ], "Resource": [ "arn:aws:wafv2:region:account-id:regional/webacl/*/*" ] }, { "Sid": "ListResourcesForWebACL2", "Effect": "Allow", "Action": [ "ec2:DescribeVerifiedAccessInstanceWebAclAssociations" ], "Resource": [ "arn:aws:ec2:*:account-id:verified-access-instance/*" ] }

のポリシーリソース AWS WAF

ポリシーリソースのサポート: あり

管理者は JSON AWS ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。

Resource JSON ポリシー要素はアクションが適用されるオブジェクトを指定します。ステートメントにはResource または NotResource 要素を含める必要があります。ベストプラクティスとして、Amazon リソースネーム (ARN) を使用してリソースを指定します。これは、リソースレベルの許可と呼ばれる特定のリソースタイプをサポートするアクションに対して実行できます。

オペレーションのリスト化など、リソースレベルの権限をサポートしないアクションの場合は、ステートメントがすべてのリソースに適用されることを示すために、ワイルドカード (*) を使用します。

"Resource": "*"

AWS WAF リソースタイプとその ARNsAWS WAF V2 で定義されるリソース」を参照してください。 各リソースの ARN を指定できるアクションについては、AWS WAF V2 で定義されるアクション」を参照してください。 AWS WAF リソースのサブセットへのアクセスを許可または拒否するには、ポリシーの resource要素にリソースの ARN を含めます。

リソースの AWS WAF wafv2 ARNs の形式は次のとおりです。

arn:partition:wafv2:region:account-id:scope/resource-type/resource-name/resource-id

ARN の仕様に関する一般情報については、「 Amazon Web Services 全般のリファレンス」の「Amazon リソースネーム (ARN)」を参照してください。

wafv2 リソースの ARN に固有の要件は以下の通りです。

  • region: Amazon CloudFront ディストリビューションの保護に使用する AWS WAF リソースの場合は、これを に設定しますus-east-1。それ以外の場合は、保護されたリージョンリソースで使用している領域を設定します。

  • スコープ: Amazon CloudFront ディストリビューションglobalで使用するか、 が AWS WAF サポートするリージョンリソースregionalで使用するスコープを に設定します。リージョンリソースは、Amazon API Gateway REST API、Application Load Balancer、 AWS AppSync GraphQL API、Amazon Cognito ユーザープール、 AWS App Runner サービス、 AWS Verified Access インスタンスです。

  • リソースタイプ: 次の値のいずれかを指定します。webaclrulegroupipsetregexpatternsetmanagedruleset

  • resource-name: AWS WAF リソースに付けた名前を指定、あるいは ARN の他の仕様を満たすすべてのリソースを示すワイルドカード (*) を指定します。リソース名とリソース ID のどちらかを指定するか、両方にワイルドカードを指定する必要があります。

  • resource-id: AWS WAF リソースの ID を指定、あるいは ARN の他の仕様を満たすすべてのリソースを示すワイルドカード (*) を指定します。リソース名とリソース ID のどちらかを指定するか、両方にワイルドカードを指定する必要があります。

たとえば、次の ARN は、リージョン 111122223333のアカウントのリージョンスコープを持つすべての保護パックまたはウェブ ACLs を指定しますus-west-1

arn:aws:wafv2:us-west-1:111122223333:regional/webacl/*/*

次の ARN は、リージョン us-east-1 のアカウント 111122223333 に対して、グローバルスコープを持つ MyIPManagementRuleGroup というルールグループを指定します。

arn:aws:wafv2:us-east-1:111122223333:global/rulegroup/MyIPManagementRuleGroup/1111aaaa-bbbb-cccc-dddd-example-id

AWS WAF アイデンティティベースのポリシーの例を表示するには、「」を参照してくださいAWS WAFのアイデンティティベースのポリシーの例

のポリシー条件キー AWS WAF

サービス固有のポリシー条件キーのサポート: あり

管理者は JSON AWS ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。

Condition 要素 (または Condition ブロック) を使用すると、ステートメントが有効な条件を指定できます。Condition 要素はオプションです。イコールや未満などの 条件演算子 を使用して条件式を作成して、ポリシーの条件とリクエスト内の値を一致させることができます。

1 つのステートメントに複数の Condition 要素を指定する場合、または 1 つの Condition 要素に複数のキーを指定する場合、 AWS では AND 論理演算子を使用してそれらを評価します。1 つの条件キーに複数の値を指定すると、 は論理ORオペレーションを使用して条件 AWS を評価します。ステートメントの権限が付与される前にすべての条件が満たされる必要があります。

条件を指定する際にプレースホルダー変数も使用できます。例えば IAM ユーザーに、IAM ユーザー名がタグ付けされている場合のみリソースにアクセスできる権限を付与することができます。詳細については、「IAM ユーザーガイド」の「‬IAM ポリシーの要素: 変数およびタグ‭」‬を参照してください。

AWS は、グローバル条件キーとサービス固有の条件キーをサポートしています。すべての AWS グローバル条件キーを確認するには、「IAM ユーザーガイド」のAWS 「グローバル条件コンテキストキー」を参照してください。

さらに、 は、IAM ポリシーにきめ細かなフィルタリングを提供するために使用できる以下の条件キー AWS WAF をサポートしています。

  • wafv2:LogDestinationResource

    この条件キーは、ログ記録の送信先の Amazon リソースネーム (ARN) 仕様を取得します。これは、REST API コール PutLoggingConfiguration を使用する際に、ログ送信先として指定する ARN です。

    ARN を明示的に指定し、ARN のフィルタリングを指定できます。次の例では、特定の位置とプレフィックスを持つ Amazon S3 バケット ARN のフィルタリングを指定します。

    "Condition": { "ArnLike": { "wafv2:LogDestinationResource": "arn:aws:s3:::aws-waf-logs-suffix/custom-prefix/*" } }
  • wafv2:LogScope

    この条件キーは、文字列内のログ記録設定のソースを定義します。現在、これは常に のデフォルトに設定されています。これは Customer、ログ記録の送信先がユーザーによって所有および管理されていることを示します。

AWS WAF 条件キーのリストを確認するには、「サービス認可リファレンス」の AWS WAF V2 の条件キー」を参照してください。条件キーを使用できるアクションとリソースについては、AWS WAF V2 で定義されるアクション」を参照してください。

AWS WAF アイデンティティベースのポリシーの例を表示するには、「」を参照してくださいAWS WAFのアイデンティティベースのポリシーの例

ACLs AWS WAF

ACL のサポート: なし

アクセスコントロールリスト (ACL) は、どのプリンシパル (アカウントメンバー、ユーザー、またはロール) がリソースにアクセスするための許可を持つかを制御します。ACL はリソースベースのポリシーに似ていますが、JSON ポリシードキュメント形式は使用しません。

を使用した ABAC AWS WAF

ABAC (ポリシー内のタグ) のサポート: 一部

属性ベースのアクセス制御 (ABAC) は、属性に基づいてアクセス許可を定義する認可戦略です。では AWS、これらの属性はタグと呼ばれます。タグは、IAM エンティティ (ユーザーまたはロール) および多くの AWS リソースにアタッチできます。エンティティとリソースのタグ付けは、ABAC の最初の手順です。その後、プリンシパルのタグがアクセスしようとしているリソースのタグと一致した場合にオペレーションを許可するように ABAC ポリシーをします。

ABAC は、急成長する環境やポリシー管理が煩雑になる状況で役立ちます。

タグに基づいてアクセスを管理するには、aws:ResourceTag/key-nameaws:RequestTag/key-name、または aws:TagKeys の条件キーを使用して、ポリシーの 条件要素でタグ情報を提供します。

サービスがすべてのリソースタイプに対して 3 つの条件キーすべてをサポートする場合、そのサービスの値はありです。サービスが一部のリソースタイプに対してのみ 3 つの条件キーのすべてをサポートする場合、値は「部分的」になります。

ABAC の詳細については、「IAM ユーザーガイド」の「ABAC 認可でアクセス許可を定義する」を参照してください。ABAC をセットアップする手順を説明するチュートリアルについては、「IAM ユーザーガイド」の「属性ベースのアクセスコントロール (ABAC) を使用する」を参照してください。

での一時的な認証情報の使用 AWS WAF

一時的な認証情報のサポート: あり

一部の AWS のサービス は、一時的な認証情報を使用してサインインすると機能しません。一時的な認証情報と AWS のサービス 連携する などの詳細については、AWS のサービス IAM ユーザーガイドの「IAM と連携する 」を参照してください。

ユーザー名とパスワード以外の AWS Management Console 方法で にサインインする場合、一時的な認証情報を使用します。たとえば、会社のシングルサインオン (SSO) リンク AWS を使用して にアクセスすると、そのプロセスによって一時的な認証情報が自動的に作成されます。また、ユーザーとしてコンソールにサインインしてからロールを切り替える場合も、一時的な認証情報が自動的に作成されます。ロールの切り替えに関する詳細については、「IAM ユーザーガイド」の「ユーザーから IAM ロールに切り替える (コンソール)」を参照してください。

一時的な認証情報は、 AWS CLI または AWS API を使用して手動で作成できます。その後、これらの一時的な認証情報を使用して アクセスできます AWS。長期的なアクセスキーを使用する代わりに、一時的な認証情報を動的に生成 AWS することをお勧めします。詳細については、「IAM の一時的セキュリティ認証情報」を参照してください。

サービスの転送アクセスセッション AWS WAF

転送アクセスセッション (FAS) のサポート: あり

IAM ユーザーまたはロールを使用して でアクションを実行すると AWS、プリンシパルと見なされます。一部のサービスを使用する際に、アクションを実行することで、別のサービスの別のアクションがトリガーされることがあります。FAS は、 を呼び出すプリンシパルのアクセス許可を AWS のサービス、ダウンストリームサービス AWS のサービス へのリクエストをリクエストする と組み合わせて使用します。FAS リクエストは、サービスが他の AWS のサービス またはリソースとのやり取りを完了する必要があるリクエストを受け取った場合にのみ行われます。この場合、両方のアクションを実行するためのアクセス許可が必要です。FASリクエストを行う際のポリシーの詳細については、「転送アクセスセッション」を参照してください。

AWS WAFのサービスロール

サービスロールのサポート: あり

サービスロールとは、サービスがユーザーに代わってアクションを実行するために引き受ける IAM ロールです。IAM 管理者は、IAM 内からサービスロールを作成、変更、削除できます。詳細については、「IAM ユーザーガイド」の「AWS のサービスに許可を委任するロールを作成する」を参照してください。

警告

サービスロールのアクセス許可を変更すると、 AWS WAF 機能が破損する可能性があります。 AWS WAF が指示する場合にのみ、サービスロールを編集します。

のサービスにリンクされたロール AWS WAF

サービスリンクロールのサポート: あり

サービスにリンクされたロールは、 にリンクされたサービスロールの一種です AWS のサービス。サービスは、ユーザーに代わってアクションを実行するロールを引き受けることができます。サービスにリンクされたロールは に表示され AWS アカウント 、サービスによって所有されます。IAM 管理者は、サービスリンクロールのアクセス許可を表示できますが、編集することはできません。

AWS WAF サービスにリンクされたロールの作成または管理の詳細については、「」を参照してくださいのサービスにリンクされたロールの使用 AWS WAF