翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
IAM AWS WAF との連携の仕組み
IAM を使用してアクセスを管理する前に AWS WAF、どの IAM 機能が使用できるかを確認してください。 AWS WAF
で使用できる IAM 機能 AWS WAF | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
IAM 機能 | AWS WAF サポート | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Yes |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Yes |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Yes |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
はい |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
はい |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
No |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
部分的 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Yes |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Yes |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
あり |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Yes |
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
にアクセスするために必要な権限がアカウントに付与されていることを確認するためだけに使用されます。呼び出し時にGetWebACLForResource
、wafv2: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 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
アクションを呼び出したり、 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
それ以外の場合は、保護されたリージョンリソースで使用している領域を設定します。 -
スコープ
:Amazonglobal
CloudFront ディストリビューションで使用するか、regional
AWS WAF サポートする任意のリージョンリソースで使用するようにスコープを設定します。リージョンリソースは、Amazon API Gateway REST API、Application Load Balancer、 AWS AppSync GraphQL API、Amazon Cognito ユーザープール、 AWS App Runner サービス、 AWS および検証済みアクセスインスタンスです。 -
リソースタイプ
: 次の値のいずれかを指定します。webacl
、rulegroup
、ipset
、regexpatternset
、managedruleset
。 -
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-name
aws: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