

# セキュリティ
<a name="security-1"></a>

AWS インフラストラクチャでシステムを構築すると、お客様と AWS の間でセキュリティ上の責任が分担されます。この[責任共有モデル](https://aws.amazon.com/compliance/shared-responsibility-model/)により、ホストオペレーティングシステムと仮想化レイヤーからサービスが運用されている施設の物理的なセキュリティに至るまでのコンポーネントを AWS が運用、管理、制御するため、お客様の運用上の負担を軽減するのに役立ちます。AWS セキュリティの詳細については、「[AWS クラウドセキュリティ](https://aws.amazon.com/security/)」を参照してください。

## IAM ロール
<a name="iam-roles"></a>

AWS Identity and Access Management (IAM) ロールにより、AWS クラウドのサービスとユーザーに対してアクセスポリシーとアクセス許可を詳細に割り当てることができます。このソリューションでは、リージョン別のリソースを作成するために、ソリューションの AWS Lambda 関数にアクセス権を付与する IAM ロールを作成します。

## Amazon CloudFront
<a name="amazon-cloudfront"></a>

このソリューションは、Amazon S3 バケットで[ホスト](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html)され、Amazon CloudFront で配布されるウェブ UI をデプロイします。レイテンシーを軽減し、セキュリティを向上させるために、このソリューションには、オリジンアクセスアイデンティティを持つ CloudFront ディストリビューションが含まれています。オリジンアクセスアイデンティティは、ソリューションのウェブサイトのバケットにあるコンテンツに、パブリックアクセスを提供する CloudFront ユーザーです。デフォルトでは、CloudFront ディストリビューションは TLS 1.2 を使用して最高レベルのセキュリティプロトコルを適用します。詳細については、「*Amazon CloudFront デベロッパーガイド*」の「[Amazon S3 オリジンへのアクセスの制限](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html)」を参照してください。

CloudFront は追加のセキュリティ対策を有効にして、各ビューワーのレスポンスに HTTP セキュリティヘッダーを追加します。詳細については、「[CloudFront レスポンスの HTTP ヘッダーを追加または削除する](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/adding-response-headers.html)」を参照してください。

このソリューションでは、デフォルトの CloudFront 証明書を使用します。サポートされる最小のセキュリティプロトコルは TLS v1.0 です。TLS v1.2 または TLS v1.3 の使用を必ず適用するには、デフォルトの CloudFront 証明書の代わりにカスタム SSL 証明書を使用する必要があります。詳細については、「[SSL/TLS 証明書を使用するように CloudFront ディストリビューションを設定する方法を教えてください](https://aws.amazon.com/premiumsupport/knowledge-center/install-ssl-cloudfront/)」を参照してください。

## Amazon API Gateway
<a name="amazon-api-gateway"></a>

このソリューションは、エッジ最適化 Amazon API Gateway エンドポイントをデプロイして、カスタムドメインではなくデフォルトの API ゲートウェイエンドポイントを使用して負荷テストの機能用の RESTful API を提供します。デフォルトのエンドポイントを使用するエッジ最適化 API については、API ゲートウェイは TLS-1-0 セキュリティポリシーを使用します。詳細については、「*Amazon API Gateway デベロッパーガイド*」の「[REST API の操作](https://docs.aws.amazon.com/apigateway/latest/developerguide/rest-api.html)」を参照してください。

このソリューションでは、デフォルトの API ゲートウェイの証明書を使用します。サポートされる最小のセキュリティプロトコルは TLS v1.0 です。TLS v1.2 または TLS v1.3 の使用を必ず適用するには、デフォルトの API ゲートウェイの証明書の代わりに SSL 証明書のあるカスタムドメインを使用する必要があります。詳細については、「[REST API のカスタムドメイン名を設定する](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html)」を参照してください。

## AWS Fargate セキュリティグループ
<a name="aws-fargate"></a>

デフォルトで、このソリューションは、AWS Fargate セキュリティグループのアウトバウンドルールを公開します。AWS Fargate がどこにでもトラフィックを送信しないようにするには、アウトバウンドルールを特定の Classless Inter-Domain Routing (CIDR) に変更します。

このセキュリティグループには、同じセキュリティグループに属する任意の送信元へのポート 50,000 のローカルトラフィックを許可するインバウンドルールも含まれています。これは、コンテナが互いに通信できるようにするために使用されます。

## Amazon VPC
<a name="amazon-vpc"></a>

 **VPC**: Amazon VPC サービスに基づく仮想プライベートクラウド (VPC) は、AWS クラウド内の論理的に隔離されたプライベートネットワークを提供します。

デプロイ中に [AWS CloudFormation パラメータ](https://docs.aws.amazon.com/solutions/latest/distributed-load-testing-on-aws/launch-the-stack.html)で独自の VPC を指定できます。VPC は負荷を生成する ECS タスクでのみ使用されます。ウェブコンソールと API はこの VPC 内にデプロイされません。既存の VPC を指定しない場合、ソリューションは必要なネットワーク設定で新しい VPC を作成します。既存の VPC を使用する場合は、負荷テストタスクを正常に実行するために、次の要件を満たしている必要があります。

### VPC の要件
<a name="vpc-requirements"></a>

AWS での分散負荷テストで使用する VPC の最小要件を以下に示します。
+ VPC には少なくとも 2 つの AZ が含まれている必要があります
+ VPC には、それぞれ個別の AZ に少なくとも 2 つのサブネットが含まれている必要があります
+ VPC サブネットはパブリックでもプライベートでもかまいませんが、同じ設定 (両方ともパブリック、または両方ともプライベート) を使用する必要があります
+ VPC は、ECR、CloudWatch Logs、S3、および IoT Core のエンドポイントへのアクセスを提供する必要があります。
+ VPC は、負荷テストの対象となるサービス (複数可) へのアクセスを提供する必要があります。

**注記**  
これらの基準を満たす VPC がない場合は、VPC ウィザードを使用して VPC をすばやく作成できます。詳細については、「[Create a VPC](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html) (VPC を作成する)」を参照してください。

パブリックサブネットは、以下を含めることでこれらの要件を満たすことができます。
+ VPC にアタッチされたインターネットゲートウェイ
+ インターネットゲートウェイへのルート (0.0.0.0/0)

プライベートサブネットは、以下に説明するように、NAT ゲートウェイまたは VPC エンドポイントを使用してこれらの要件を満たすことができます。

 **オプション 1: NAT ゲートウェイ** 
+ プライベートサブネットを持つ各 AZ に NAT ゲートウェイをデプロイする
+ インターネット行きのトラフィック (0.0.0.0/0) を NAT ゲートウェイ経由でルーティングするようにルートテーブルを設定する

 **オプション 2: VPC エンドポイント** 

VPC に次の VPC エンドポイントを作成します。
+ Amazon ECR API エンドポイント: `com.amazonaws.<region>.ecr.api` 
+ Amazon ECR DKR エンドポイント: `com.amazonaws.<region>.ecr.dkr` 
+ Amazon CloudWatch Logs エンドポイント: `com.amazonaws.<region>.logs` 
+ Amazon S3 ゲートウェイエンドポイント: `com.amazonaws.<region>.s3` 
+ AWS IoT Core エンドポイント (ライブデータチャートを使用する場合は必須) `com.amazonaws.<region>.iot.data` 

他の VPC 設定も機能する可能性があります。

**重要**  
各 VPC エンドポイントインターフェイスにアタッチされたセキュリティグループは、ECS タスクセキュリティグループからのポート 443 でのインバウンド TCP トラフィックを許可する必要があります。

 **セキュリティグループの設定** 

デプロイ中、ソリューションは VPC 内にセキュリティグループを作成し、ECS クラスター内のタスクで次のトラフィックを許可します。
+ すべてのアウトバウンドトラフィック
+ ワーカータスクとリーダータスク間の調整を容易にするために、同じセキュリティグループ内の他のタスクからのポート 50000 のインバウンドトラフィック。

## ネットワーク負荷テスト
<a name="network-stress-test"></a>

このソリューションは、「[ネットワーク負荷テスト](https://aws.amazon.com/ec2/testing/)」ポリシーに従って使用していただく必要があります。このポリシーの対象となる状況は、Amazon EC2 インスタンスから他のロケーション (別の Amazon EC2 インスタンス、AWS のプロパティ/サービス、外部エンドポイントなど) に対して直接、ボリュームの大きなネットワークテストの実行を計画する場合などです。これらのテストは、ストレステスト、負荷テスト、ゲームデイテストと呼ばれることがあります。ほとんどのお客様によるテストはこのポリシーに該当しませんが、合計で 1 分超、1 Gbps (10 億ビット/秒) 超または 1 Gpps (10 億パケット/秒) 超のトラフィック生成が予想される場合は、このポリシーを参照してください。

## パブリックユーザーインターフェイスへのアクセス制限
<a name="restricting-access-to-the-public-user-interface"></a>

IAM と Amazon Cognito によって提供される認証と認可のメカニズム以外に、パブリックユーザーインターフェイスへのアクセスを制限するには、[AWS WAF (ウェブアプリケーションファイアウォール) セキュリティオートメーションソリューション](https://aws.amazon.com/solutions/implementations/aws-waf-security-automations/)を使用します。

このソリューションは、一般的なウェブベースの攻撃をフィルタリングする一連の AWS WAF ルールを自動的にデプロイします。ユーザーは、AWS WAF のウェブアクセスコントロールリスト (ウェブ ACL) に含まれるルールを定義している事前設定済みの保護機能から選択できます。

## MCP サーバーのセキュリティ (オプション)
<a name="mcp-server-security"></a>

オプションの MCP サーバー統合をデプロイする場合、ソリューションは AWS AgentCore Gateway を使用して AI エージェントの負荷テストデータへの安全なアクセスを提供します。AgentCore Gateway は、リクエストごとに Amazon Cognito 認証トークンを検証し、認可されたユーザーのみが MCP サーバーにアクセスできることを確認します。MCP サーバー Lambda 関数は読み取り専用アクセスパターンを実装し、AI エージェントがテスト設定や結果を変更できないようにします。すべての MCP サーバーインタラクションは、ウェブコンソールと同じアクセス許可の境界とアクセスコントロールを使用します。