AWS WAF の新しいコンソールエクスペリエンスのご紹介
更新されたエクスペリエンスを使用して、コンソールの任意の場所で AWS WAF 機能にアクセスできるようになりました。詳細については、「更新されたコンソールエクスペリエンスを使用する」を参照してください。
AWS WAF Classic と IAM の連携方法
警告
AWS WAF Classic は計画されたサービス終了プロセスを進めています。リージョン固有のマイルストーンと日付については、AWS Health ダッシュボードを参照してください。
注記
これは AWS WAF Classic ドキュメントです。2019 年 11 月より前に AWS WAF でルールやウェブ ACL などの AWS WAF リソースを作成し、それらをまだ最新バージョンに移行していない場合にのみ、このバージョンを使用する必要があります。Web ACL を移行するには、AWS WAF Classic リソースを AWS WAF に移行する を参照してください。
最新バージョンの AWS WAF については、「AWS WAF」を参照してください。
IAM を使用して AWS WAF Classic へのアクセスを管理する前に、AWS WAF Classic で利用できる IAM の機能について学びます。
| IAM の機能 | AWS WAF クラシックサポート |
|---|---|
|
あり |
|
|
なし |
|
|
あり |
|
|
はい |
|
|
はい |
|
|
なし |
|
|
部分的 |
|
|
あり |
|
|
あり |
|
|
あり |
|
|
あり |
AWS WAF Classic およびその他の AWS のサービスがほとんどの IAM 機能と連携する方法の概要を把握するには、「IAM ユーザーガイド」の「IAM と連携する AWS のサービス」を参照してください。
AWS WAF Classic のアイデンティティベースのポリシー
アイデンティティベースのポリシーのサポート: あり
アイデンティティベースポリシーは、IAM ユーザー、ユーザーグループ、ロールなど、アイデンティティにアタッチできる JSON 許可ポリシードキュメントです。これらのポリシーは、ユーザーとロールが実行できるアクション、リソース、および条件をコントロールします。アイデンティティベースポリシーの作成方法については、「IAM ユーザーガイド」の「カスタマー管理ポリシーでカスタム IAM アクセス許可を定義する」を参照してください。
IAM アイデンティティベースのポリシーでは、許可または拒否するアクションとリソース、およびアクションを許可または拒否する条件を指定できます。JSON ポリシーで使用できるすべての要素について学ぶには、「IAM ユーザーガイド」の「IAM JSON ポリシーの要素のリファレンス」を参照してください。
AWS WAF Classic アイデンティティベースのポリシーの例を表示するには、「AWS WAF Classic のアイデンティティベースのポリシーの例」を参照してください。
AWS WAF Classic 内のリソースベースのポリシー
リソースベースのポリシーのサポート: なし
リソースベースのポリシーは、リソースに添付する JSON ポリシードキュメントです。リソースベースのポリシーには例として、IAM ロールの信頼ポリシーや Amazon S3 バケットポリシーがあげられます。リソースベースのポリシーをサポートするサービスでは、サービス管理者はポリシーを使用して特定のリソースへのアクセスを制御できます。ポリシーがアタッチされているリソースの場合、指定されたプリンシパルがそのリソースに対して実行できるアクションと条件は、ポリシーによって定義されます。リソースベースのポリシーでは、プリンシパルを指定する必要があります。プリンシパルには、アカウント、ユーザー、ロール、フェデレーションユーザー、または AWS のサービス を含めることができます。
クロスアカウントアクセスを有効にするには、全体のアカウント、または別のアカウントの IAM エンティティを、リソースベースのポリシーのプリンシパルとして指定します。詳細については、「IAM ユーザーガイド」の「IAM でのクロスアカウントリソースアクセス」を参照してください。
AWS WAF Classic のポリシーアクション
ポリシーアクションのサポート:あり
管理者は AWS JSON ポリシーを使用して、だれが何にアクセスできるかを指定できます。つまり、どのプリンシパルがどんなリソースにどんな条件でアクションを実行できるかということです。
JSON ポリシーの Action 要素にはポリシー内のアクセスを許可または拒否するために使用できるアクションが記述されます。このアクションは関連付けられたオペレーションを実行するためのアクセス許可を付与するポリシーで使用されます。
AWS WAF Classic アクションのリストを確認するには、「Service Authorization Reference」の「AWS WAF で定義されるアクション」と「AWS WAF Regional で定義されるアクション」を参照してください。
AWS WAF Classic のポリシーアクションは、アクションの前に以下のプレフィックスを使用します。
waf
単一のステートメントで複数のアクションを指定するには、アクションをカンマで区切ります。
"Action": [ "waf:action1", "waf:action2" ]
ワイルドカード (*) を使用して複数アクションを指定できます。例えば、AWS WAF Classic で List で始まるすべてのアクションを指定するには、次のアクションを含めます。
"Action": "waf:List*"
AWS WAF Classic アイデンティティベースのポリシーの例を表示するには、「AWS WAF Classic のアイデンティティベースのポリシーの例」を参照してください。
AWS WAF Classic のポリシーリソース
ポリシーリソースのサポート: あり
管理者は AWS JSON ポリシーを使用して、だれが何にアクセスできるかを指定できます。つまり、どのプリンシパルがどんなリソースにどんな条件でアクションを実行できるかということです。
Resource JSON ポリシー要素はアクションが適用されるオブジェクトを指定します。ベストプラクティスとして、Amazon リソースネーム (ARN) を使用してリソースを指定します。リソースレベルの権限をサポートしないアクションの場合は、ステートメントがすべてのリソースに適用されることを示すために、ワイルドカード (*) を使用します。
"Resource": "*"
AWS WAF Classic のリソースタイプとその ARN のリストを見るには、「サービス認可リファレンス」の「AWS WAF で定義されたリソース」および「AWS WAF Regional で定義されたリソース」を参照してください。どのアクションで各リソースの ARN を指定できるかについては、「AWS WAF で定義されるアクション」と「AWS WAF Regional で定義されるアクション」を参照してください。AWS WAF Classic リソースのサブセットへのアクセスを許可または拒否するには、ポリシーの resource 要素にリソースの ARN を含めます。
AWS WAF Classic では、リソースはウェブ ACL とルールです。AWS WAFClassic はバイト一致、IP 一致、サイズ制約などの条件もサポートしています。
これらのリソースと条件には、次の表に示すとおり、一意の Amazon リソースネーム (ARN) が関連付けられています。
| AWS WAF コンソールでの名前 | AWS WAF SDK/CLI での名前 | ARN 形式 | |
|---|---|---|---|
| ウェブ ACL | WebACL |
|
|
| ルール | Rule |
|
|
| 文字列一致条件 | ByteMatchSet |
|
|
| SQL のインジェクション一致の状態 | SqlInjectionMatchSet |
arn:aws:waf:: |
|
| サイズ制約条件 | SizeConstraintSet |
arn:aws:waf:: |
|
| IP 一致条件 | IPSet |
arn:aws:waf:: |
|
| クロスサイトスクリプティング一致条件 | XssMatchSet |
arn:aws:waf:: |
AWS WAF Classic リソースのサブセットへのアクセスを許可または拒否するには、ポリシーの resource 要素にリソースの ARN を含めます。AWS WAF Classic の ARN の形式は次のとおりです。
arn:aws:waf::account:resource/ID
[account] (アカウント)、[resource] (リソース)、および [ID] 変数を有効な値に置き換えます。有効な値は次のとおりです。
-
[account](アカウント): AWS アカウント の ID。値を指定する必要があります。 -
[resource](リソース): AWS WAF Classic リソースのタイプ。 -
ID: AWS WAF Classic リソースの ID、または ワイルドカード (*)。ワイルドカードは、指定した AWS アカウント に関連付けられている、指定したタイプのすべてのリソースを示します。
例えば、次の ARN はアカウント 111122223333 のすべてのウェブ ACL を指定します。
arn:aws:waf::111122223333:webacl/*
AWS WAF Classic 向けのポリシー条件キー
サービス固有のポリシー条件キーのサポート: あり
管理者は AWS JSON ポリシーを使用して、だれが何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。
Condition 要素は、定義された基準に基づいてステートメントが実行されるタイミングを指定します。イコールや未満などの 条件演算子 を使用して条件式を作成して、ポリシーの条件とリクエスト内の値を一致させることができます。すべての AWS グローバル条件キーを確認するには、IAM ユーザーガイドのAWS グローバル条件コンテキストキーを参照してください。
AWS WAF Classic 条件キーのリストを確認するには、「サービス認可リファレンス」の「AWS WAF のための条件キー」と「AWS WAF Regional で定義されたリソース」を参照してください。どのアクションおよびリソースについて条件キーを使用できるかについては、「AWS WAF で定義されるアクション」と「AWS WAF Regional で定義されるアクション」を参照してください。
AWS WAF Classic アイデンティティベースのポリシーの例を表示するには、「AWS WAF Classic のアイデンティティベースのポリシーの例」を参照してください。
AWS WAF Classic の ACL
ACL のサポート: なし
アクセスコントロールリスト (ACL) は、どのプリンシパル (アカウントメンバー、ユーザー、またはロール) がリソースにアクセスするための許可を持つかを制御します。ACL はリソースベースのポリシーに似ていますが、JSON ポリシードキュメント形式は使用しません。
ABAC と AWS WAF Classic
ABAC (ポリシー内のタグ) のサポート: 一部
属性ベースのアクセス制御 (ABAC) は、タグと呼ばれる属性に基づいてアクセス許可を定義する認可戦略です。IAM エンティティと AWS リソースにタグを付けることで、プリンシパルのタグがリソースタグと一致するときに操作を許可する ABAC ポリシーを設計できます。
タグに基づいてアクセスを管理するには、aws:ResourceTag/、key-nameaws:RequestTag/、または key-nameaws:TagKeys の条件キーを使用して、ポリシーの 条件要素でタグ情報を提供します。
サービスがすべてのリソースタイプに対して 3 つの条件キーすべてをサポートする場合、そのサービスの値はありです。サービスが一部のリソースタイプに対してのみ 3 つの条件キーのすべてをサポートする場合、値は「部分的」になります。
ABAC の詳細については、「IAM ユーザーガイド」の「ABAC 認可でアクセス許可を定義する」を参照してください。ABAC をセットアップする手順を説明するチュートリアルについては、「IAM ユーザーガイド」の「属性ベースのアクセスコントロール (ABAC) を使用する」を参照してください。
AWS WAF Classic での一時的な認証情報の使用
一時的な認証情報のサポート: あり
一時的な認証情報は、AWS リソースへの短期的なアクセスを提供し、フェデレーションまたはスイッチロールの使用時に自動的に作成されます。AWS では、長期的なアクセスキーを使用する代わりに、一時的な認証情報を動的に生成することをお勧めします。詳細については、「IAM ユーザーガイド」の「IAM の一時的な認証情報」および「IAM と連携する AWS のサービス」を参照してください。
AWS WAF Classic の転送アクセスセッション
転送アクセスセッション (FAS) のサポート: あり
転送アクセスセッション (FAS) は、AWS のサービスを呼び出すプリンシパルの権限を、AWS のサービスのリクエストと合わせて使用し、ダウンストリームのサービスに対してリクエストを行います。FAS リクエストを行う際のポリシーの詳細については、「転送アクセスセッション」を参照してください。
AWS WAF Classic のサービスロール
サービスロールのサポート: あり
サービスロールとは、サービスがユーザーに代わってアクションを実行するために引き受ける IAM ロールです。IAM 管理者は、IAM 内からサービスロールを作成、変更、削除できます。詳細については、「IAM ユーザーガイド」の「AWS のサービス に許可を委任するロールを作成する」を参照してください。
警告
サービスロールの許可を変更すると、AWS WAF Classic の機能が破損する可能性があります。AWS WAF Classic が指示する場合以外は、サービスロールを編集しないでください。
AWS WAF Classic のサービスにリンクされたロール
サービスリンクロールのサポート: あり
サービスにリンクされたロールは、AWS のサービスにリンクされているサービスロールの一種です。サービスがロールを引き受け、ユーザーに代わってアクションを実行できるようになります。サービスにリンクされたロールは、AWS アカウント に表示され、サービスによって所有されます。IAM 管理者は、サービスリンクロールのアクセス許可を表示できますが、編集することはできません。
AWS WAF Classic サービスにリンクされたロールの作成または管理の詳細については、「AWS WAF Classic のサービスにリンクされたロールの使用」を参照してください。