

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

# を使用して IP アドレスまたは位置情報に基づいてアクセスを制限する AWS WAF
<a name="aws-waf-restrict-access-geolocation"></a>

*Louis Hourcade (Amazon Web Services)*

## 概要
<a name="aws-waf-restrict-access-geolocation-summary"></a>

[AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) は、可用性に影響を与えたり、セキュリティを侵害したり、リソースを過剰に消費させたりする一般的なウェブエクスプロイトやボットからウェブアプリケーションおよび API の保護に役立つウェブアプリケーションファイアウォールです。の[ウェブアクセスコントロールリスト (ウェブ ACLs)](https://docs.aws.amazon.com/waf/latest/developerguide/web-acl.html) AWS WAF を使用すると、トラフィックがアプリケーションに到達する方法を制御できます。ウェブ ACL では、正当なトラフィックを許可し、ボットトラフィックを制御し、一般的な攻撃パターンをブロックするように設計されたルールまたはルールグループをユーザーが追加します。詳細については、[「 AWS WAF の仕組み](https://docs.aws.amazon.com/waf/latest/developerguide/how-aws-waf-works.html)」を参照してください。

 AWS WAF ウェブ ACLs には、次のタイプのルールを関連付けることができます。
+ [マネージドルールグループ](https://docs.aws.amazon.com/waf/latest/developerguide/waf-managed-rule-groups.html) – AWS マネージドルールチームと AWS Marketplace 販売者は、事前設定されたルールセットを提供します。一部のマネージドルールグループは、ウェブアプリケーションを保護するために設計されています。他のものは、既知の脅威や一般的な脆弱性に対して広範な保護を提供します。
+ [カスタムルール](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rules.html)と[カスタムルールグループ](https://docs.aws.amazon.com/waf/latest/developerguide/waf-user-created-rule-groups.html) – ウェブアプリケーションと API へのアクセスをカスタマイズするルールとルールグループを作成することもできます。例えば、特定の IP アドレスのリストまたは国のリストに基づいてトラフィックを制限できます。

このパターンと関連するコードリポジトリを使用することで、 を使用してカスタムルールで AWS WAF ウェブ ACLs [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/v2/guide/home.html)をデプロイできます。これらのルールは、エンドユーザーの IP アドレスまたは位置情報に基づいてウェブアプリケーションリソースへのアクセスを制限します。オプションで、いくつかのマネージドルールグループをアタッチすることもできます。

## 前提条件と制限
<a name="aws-waf-restrict-access-geolocation-prereqs"></a>

**前提条件**
+ アクティブな AWS アカウント
+  AWS WAF リソースをデプロイする[アクセス許可](https://docs.aws.amazon.com/waf/latest/developerguide/security-iam.html) 
+ AWS CDKがアカウントに[インストールされ設定済み](https://docs.aws.amazon.com/cdk/latest/guide/getting_started.html)。
+ 「[インストール済み](https://github.com/git-guides/install-git)」Git

**制限事項**
+ このパターンは、 AWS リージョン AWS WAF が利用可能な でのみ使用できます。利用可能なリージョンについては、「[AWS のサービス by Region](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)」を参照してください。

## ツール
<a name="aws-waf-restrict-access-geolocation-tools"></a>

**AWS のサービス**
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/v2/guide/home.html) は、コードで AWS クラウド インフラストラクチャを定義およびプロビジョニングするのに役立つソフトウェア開発フレームワークです。
+ [AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html) は、保護されたウェブアプリケーションリソースに転送される HTTP と HTTPS リクエストをモニタリングできるウェブアプリケーションファイアウォールです。

**コードリポジトリ**

このパターンのコードは、GitHub の [IP and geolocation restriction with AWS WAF](https://github.com/aws-samples/ip-and-geolocation-restriction-with-waf-cdk) リポジトリで入手できます。コードは 2 つの AWS WAF ウェブ ACLs。1 つ目は、[Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html) リソース向けのリージョナルウェブ ACL です。2 つ目は、[Amazon CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html) リソースのグローバルウェブ ACL です。どちらのウェブ ACL にも、次のカスタムルールが含まれています。
+ `IPMatch` は、許可されていない IP アドレスからのリクエストをブロックします。
+ `GeoMatch` は、許可されていない国からのリクエストをブロックします。

デプロイ中に、オプションで以下のすべてのマネージドルールグループをウェブ ACL にアタッチできます。
+ [コアルールセット (CRS)](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-baseline.html#aws-managed-rule-groups-baseline-crs) – ルールグループには、ウェブアプリケーションに一般的に適用可能なルールが含まれています。これにより、[OWASP Top 10](https://owasp.org/www-project-top-ten/) などの OWASP の出版物に記載されている、リスクが高く一般的に発生するいくつかの脆弱性を含む、さまざまな脆弱性の悪用に対する保護を支援します。
+ [管理者保護](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-baseline.html#aws-managed-rule-groups-baseline-admin) – このルールグループには、公開されている管理ページへの外部アクセスをブロックするために役立つルールが含まれています。
+ [既知の不正な入力](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-baseline.html#aws-managed-rule-groups-baseline-known-bad-inputs) – このルールグループは、無効であることが判明しているリクエストパターンおよび脆弱性の悪用または発見に関連付けられているリクエストパターンのブロックを支援します。
+ [Amazon IP 評価リスト](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-ip-rep.html#aws-managed-rule-groups-ip-rep-amazon) – このルールグループには、Amazon 内部脅威インテリジェンスに基づくルールが含まれています。これは、通常ボットやその他の脅威に関連付けられている IP アドレスのブロックを支援します。
+ [Linux オペレーティングシステムマネージドルールグループ](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-use-case.html#aws-managed-rule-groups-use-case-linux-os) – このルールグループは、Linux 固有のローカルファイルインクルージョン (LFI) 攻撃など、Linux の脆弱性の悪用に関連するリクエストパターンのブロックを支援します。
+ [SQL データベースマネージドルールグループ](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-use-case.html#aws-managed-rule-groups-use-case-sql-db) – このルールグループは、SQL インジェクション攻撃などの SQL データベースの悪用に関連するリクエストパターンのブロックを支援します。

## エピック
<a name="aws-waf-restrict-access-geolocation-epics"></a>

### AWS WAF ウェブ ACLs を設定する
<a name="configure-the-waf-web-acls"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| リポジトリのクローン作成 | 次のコマンドを入力して、[IP and geolocation restriction with AWS WAF](https://github.com/aws-samples/ip-and-geolocation-restriction-with-waf-cdk) リポジトリをローカルワークステーションにクローンします。<pre>git clone https://github.com/aws-samples/ip-and-geolocation-restriction-with-waf-cdk.git</pre> | Git | 
| ルールを設定します。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/aws-waf-restrict-access-geolocation.html) | AWS 全般、Python | 

### コードをブートストラップしてデプロイする
<a name="bootstrap-and-deploy-the-code"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
|  AWS 環境をブートストラップします。 | まだ完了していない場合は、 AWS CDK アプリケーションをデプロイする前に AWS 環境を[ブートストラップ](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping-env.html)する必要があります。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/aws-waf-restrict-access-geolocation.html) | AWS 全般 | 
|  AWS CDK アプリケーションをデプロイします。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/aws-waf-restrict-access-geolocation.html) | AWS 全般 | 

### デプロイを検証する
<a name="validate-the-deployment"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| ウェブ ACL が正常にデプロイされたことを確認します。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/aws-waf-restrict-access-geolocation.html) | AWS 全般 | 
| (オプション) ウェブ ACL をリソースに関連付けます。 | Application Load Balancer、API Gateway、CloudFront ディストリビューションなどの AWS リソースに AWS WAF ウェブ ACLs を関連付けます。手順については、「[Associating or disassociating a web ACL with an ](https://docs.aws.amazon.com/waf/latest/developerguide/web-acl-associating-aws-resource.html)AWS[ resource](https://docs.aws.amazon.com/waf/latest/developerguide/web-acl-associating-aws-resource.html)」を参照してください。例については、 AWS CDK ドキュメントの[「クラス CfnWebACLAssociation (コンストラクト)](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_wafv2.CfnWebACLAssociation.html)」を参照してください。 | AWS 全般 | 

### リソースをクリーンアップする
<a name="clean-up-resources"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
|  スタックを削除します。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/aws-waf-restrict-access-geolocation.html) | AWS 全般 | 

## 関連リソース
<a name="aws-waf-restrict-access-geolocation-resources"></a>
+ [API リファレンス](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-construct-library.html) (AWS CDK ドキュメント)
+ [aws-cdk-lib.aws\$1wafv2 モジュール](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_wafv2-readme.html) (AWS CDK ドキュメント)
+ [ウェブ ACLs の使用](https://docs.aws.amazon.com/waf/latest/developerguide/web-acl-working-with.html) (AWS WAF ドキュメント)
+ [独自のルールグループの管理](https://docs.aws.amazon.com/waf/latest/developerguide/waf-user-created-rule-groups.html) (AWS WAF ドキュメント)
+ [ルール](https://docs.aws.amazon.com/waf/latest/developerguide/waf-rules.html) (AWS WAF ドキュメント)