IAM AWS WAF との連携の仕組み - AWS WAF、 AWS Firewall Manager、および AWS Shield Advanced

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

IAM AWS WAF との連携の仕組み

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

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

の ID ベースのポリシー AWS WAF

アイデンティティベースポリシーをサポートする

Yes

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

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

AWS WAF ID ベースのポリシーの例については、を参照してください。AWS WAFのアイデンティティベースのポリシーの例

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

リソースベースのポリシーのサポート

Yes

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

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

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

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

ポリシーアクションに対するサポート

Yes

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

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 ID ベースのポリシーの例を表示するには、を参照してください。AWS WAFのアイデンティティベースのポリシーの例

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

アクションの中には、『サービス認証リファレンス』の「AWS WAF V2 によって定義されるアクション」では完全には説明できない権限が必要なものもあります。このセクションは、追加のアクセス許可に関する情報を説明します。

AssociateWebACL のアクセス権限

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

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

Amazon API Gateway REST API

REST API SetWebACL リソースタイプで API ゲートウェイを呼び出す権限と、ウェブ 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 AWS WAF AssociateWebACL を呼び出すための権限が必要です。

{ "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 検証済み 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 アクション DisassociateWebACL を使用してウェブ ACL とリソースの関連付けを解除するために必要なアクセス許可を一覧表示します。

Amazon CloudFront ディストリビューションでは、このアクションの代わりに、空のウェブ ACL ID CloudFront UpdateDistribution を持つアクションを使用してください。詳細については、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 検証済み 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 アクション GetWebACLForResource を使用して保護対象リソースのウェブ ACL を取得するために必要なアクセス許可の一覧を示します。

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

注記

GetWebACLForResource によって GetWebACL を呼び出すにはアクセス許可が必要です。 AWS WAF このコンテキストでは、は、GetWebACLForResource返されるウェブ ACL GetWebACL にアクセスするために必要な権限がアカウントに付与されていることを確認するためだけに使用されます。呼び出し時にGetWebACLForResourcewafv2:GetWebACL自分のアカウントにはリソースに対する実行権限がないことを示すエラーが表示される場合があります。 AWS WAF AWS CloudTrail この種のエラーはイベント履歴に追加されません。

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

ウェブ ACL AWS WAF GetWebACLForResource GetWebACL の呼び出しと呼び出しにはアクセス権限が必要です。

{ "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 GetWebACLForResourceGetWebACLおよびを呼び出すためのアクセス権限が必要です。

{ "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 アクションを呼び出したり、 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": [ "apprunner:DescribeWebAclForService" ], "Resource": [ "arn:aws:apprunner:*:account-id:service/*/*" ] }
AWS 検証済み 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 アクション ListResourcesForWebACL を使用してウェブ ACL の保護対象リソースのリストを取得するために必要なアクセス許可の一覧が記載されています。

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 検証済み 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

ポリシーリソースに対するサポート

Yes

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

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

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

"Resource": "*"

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

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

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

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

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

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

  • スコープ:Amazon global CloudFront ディストリビューションで使用するか、regional AWS WAF サポートする任意のリージョンリソースで使用するようにスコープを設定します。リージョンリソースは、Amazon API Gateway REST API、Application Load Balancer、 AWS AppSync GraphQL API、Amazon Cognito ユーザープール、 AWS App Runner サービス、 AWS および検証済みアクセスインスタンスです。

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

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

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

例えば、次の ARN は、リージョン us-west-1 におけるアカウント 111122223333 のリージョンレベルの範囲のすべてのウェブ ACL を指定します。

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 ID ベースのポリシーの例については、を参照してください。AWS WAFのアイデンティティベースのポリシーの例

のポリシー条件キー AWS WAF

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

はい

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

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

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

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

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

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

  • 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 ID ベースのポリシーの例については、を参照してください。AWS WAFのアイデンティティベースのポリシーの例

の ACL AWS WAF

ACL のサポート

No

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

ABACと AWS WAF

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

部分的

属性ベースのアクセスコントロール (ABAC) は、属性に基づいて権限を定義する認可戦略です。では AWS、これらの属性はタグと呼ばれます。IAM エンティティ (ユーザーまたはロール) AWS や多くのリソースにタグを付けることができます。エンティティとリソースのタグ付けは、ABAC の最初の手順です。次に、プリンシパルのタグがアクセスを試行するリソースのタグと一致したときにオペレーションを許可するよう、ABAC ポリシーを設計します。

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

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

サービスがすべてのリソースタイプに対して 3 つの条件キーすべてをサポートする場合、そのサービスの値は Yes です。サービスが一部のリソースタイプに対してのみ 3 つの条件キーすべてをサポートする場合、値は Partial です。

ABAC の詳細については、IAM ユーザーガイドの「ABAC とは? 」を参照してください。ABAC をセットアップするステップを説明するチュートリアルについては、「IAM ユーザーガイド」の「属性に基づくアクセスコントロール (ABAC) を使用する」を参照してください。

で一時的な認証情報を使用する AWS WAF

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

Yes

AWS のサービス 一時的な認証情報を使用してサインインすると機能しないものもあります。 AWS のサービス 一時的な認証情報で機能するものなど、追加情報については、『IAM ユーザーガイド』の「IAM と連携する」を参照してくださいAWS のサービス 。

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

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

アクセスセッションをサービスに転送する AWS WAF

フォワードアクセスセッション (FAS) をサポート

Yes

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

AWS WAFのサービスロール

サービスロールに対するサポート

あり

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

警告

サービスロールの権限を変更すると、 AWS WAF 機能しなくなる可能性があります。サービスロールの編集は、 AWS WAF ガイダンスが提供されている場合にのみ行ってください。

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

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

Yes

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

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