Envoy プロキシ - AWS App Mesh

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

Envoy プロキシ

プロキシ認可は、使節Amazon ECS タスク内、Amazon EKS で実行されている Kubernetes ポッド内で実行されるプロキシ、または Amazon EC2 インスタンスで実行され、アプリケーションメッシュ Envoy 管理サービスから 1 つ以上のメッシュエンドポイントの設定を読み取るプロキシ。2021 年 04/26 より前にすでに Envoys を App Mesh エンドポイントに接続しているカスタマーアカウントの場合、使用する仮想ノードにはプロキシ認証が必要です。Transport Layer Security (TLS)仮想ゲートウェイ(TLS ありまたはなし)の場合。2021年4月26日以降にEnvoysをApp Meshエンドポイントに接続するカスタマーアカウントの場合、すべてのApp Mesh機能にプロキシ認証が必要です。すべての顧客アカウントが、TLS を使用していない場合でも、すべての仮想ノードのプロキシ認証を有効にして、特定のリソースへの認証に IAM を使用して安全で一貫性のあるエクスペリエンスを提供することをお勧めします。プロキシ認証では、appmesh:StreamAggregatedResourcesアクセス権限は IAM ポリシーで指定されます。ポリシーは IAM ロールにアタッチする必要があり、その IAM ロールは、プロキシをホストするコンピューティングリソースにアタッチする必要があります。

IAM ポリシーを作成する

サービスメッシュ内のすべてのメッシュエンドポイントで、すべてのメッシュエンドポイントの設定を読み取れるようにするには、に進みます。IAM ロールを作成する。個々のメッシュエンドポイントで設定を読み込めるメッシュエンドポイントを制限する場合は、1 つ以上の IAM ポリシーを作成する必要があります。設定を読み込めるメッシュエンドポイントを、特定のコンピューティングリソースで実行されている Envoy プロキシのみに制限することをお勧めします。IAM ポリシーを作成し、appmesh:StreamAggregatedResourcesポリシーへのアクセス許可。次のポリシーの例では、という名前の仮想ノードの設定を許可します。serviceBv1そしてserviceBv2サービスメッシュで読み込まれます。サービスメッシュで定義されている他の仮想ノードの設定を読み取ることができません。IAM ポリシーの作成または編集の詳細については、「」を参照してください。IAM ポリシーの作成そしてIAM ポリシーの編集

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "appmesh:StreamAggregatedResources", "Resource": [ "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualNode/serviceBv1", "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualNode/serviceBv2" ] } ] }

複数のポリシーを作成し、各ポリシーで異なるメッシュエンドポイントへのアクセスを制限できます。

IAM ロールを作成する

サービスメッシュ内のすべてのメッシュエンドポイントで、すべてのメッシュエンドポイントの設定を読み取れるようにするには、1 つの IAM ロールを作成するだけで済みます。個々のメッシュエンドポイントで設定を読み込めるメッシュエンドポイントを制限する場合は、前の手順で作成したポリシーごとにロールを作成する必要があります。プロキシが実行されるコンピュートリソースの指示を完了します。

  • Amazon EKS— 単一のロールを使用する場合は、クラスターの作成時に作成され、ワーカーノードに割り当てられた既存のロールを使用できます。複数のロールを使用するには、クラスターがで定義した要件を満たしている必要があります。クラスターでのサービスアカウント用の IAM ロールの有効化。IAM ロールを作成し、ロールを Kubernetes サービスアカウントに関連付けます。詳細については、「」を参照してください。サービスアカウント用の IAM ロールとポリシーを作成するそしてサービスアカウントの IAM ロールの指定

  • Amazon ECS— SelectAWSサービス、選択する弾性コンテナサービス[]、[] を選択します。Elastic ContainerIAM ロールを作成するときのユースケース。

  • Amazon EC2— SelectAWSサービス、選択するEC2[]、[] を選択します。EC2IAM ロールを作成するときのユースケース。これは、プロキシを Amazon EC2 インスタンスで直接ホストするか、インスタンスで実行されている Kubernetes でホストするかに適用されます。

IAM ロールの作成方法の詳細については、「」を参照してください。向けのロールを作成するAWSサービス

IAM ポリシーのアタッチ

サービスメッシュ内のすべてのメッシュエンドポイントで、すべてのメッシュエンドポイントの設定を読み取れるようにするには、AWSAppMeshEnvoyAccess管理された IAM ポリシーを、前のステップで作成した IAM ロールに作成します。個々のメッシュエンドポイントで設定を読み込めるメッシュエンドポイントを制限する場合は、作成した各ポリシーを、作成した各ロールにアタッチします。IAM ロールにカスタム IAM ポリシーまたは管理 IAM ポリシーをアタッチする方法の詳細については、「」を参照してください。IAM アイデンティティアクセス権限の追加

IAM ロールのアタッチ

各 IAM ロールを適切なコンピューティングリソースにアタッチします。

  • Amazon EKS— ワーカーノードにアタッチされたロールにポリシーをアタッチした場合は、この手順をスキップできます。個別のロールを作成した場合は、各ロールを個別の Kubernetes サービスアカウントに割り当てて、各サービスアカウントを Envoy プロキシを含む個々の Kubernetes ポッドデプロイ仕様に割り当てます。詳細については、「」を参照してください。サービスアカウントの IAM ロールの指定Amazon EKS ユーザーガイドそしてPod のサービスアカウントを構成するKubernetes ドキュメントを参照してください。

  • Amazon ECS— Envoy プロキシを含むタスク定義に Amazon ECS タスクロールをアタッチします。タスクは、EC2 または Fargate 起動タイプでデプロイできます。Amazon ECS タスクロールを作成してタスクにアタッチする方法の詳細については、「」を参照してください。タスク用の IAM ロールを指定する

  • Amazon EC2— IAM ロールは、Envoy プロキシをホストする Amazon EC2 インスタンスにアタッチする必要があります。Amazon EC2 インスタンスにロールをアタッチする方法の詳細については、「」を参照してください。IAM ロールを作成しましたが、今度は EC2 インスタンスに割り当てたいと思います

アクセス許可の確認

[] を確認します。appmesh:StreamAggregatedResources権限は、コンピュートサービス名の 1 つを選択して、プロキシをホストするコンピュートリソースに割り当てられます。

Amazon EKS

カスタムポリシーは、ワーカーノード、個々の Pod、またはその両方に割り当てられるロールに割り当てることができます。ただし、個々の Pod のアクセスを個々のメッシュエンドポイントに制限できるように、ポリシーを個々の Pod にのみ割り当てることをお勧めします。ポリシーがワーカーノードに割り当てられたロールにアタッチされている場合は、Amazon EC2タブをクリックし、ワーカーノードインスタンスの手順を完了します。Kubernetes ポッドに割り当てられている IAM ロールを特定するには、以下の手順を実行します。

  1. Kubernetes サービスアカウントが割り当てられていることを確認するポッドを含む Kubernetes デプロイの詳細を表示します。次のコマンドは、という名前のデプロイの詳細を表示します。my-dev

    kubectl describe deployment my-deployment

    返された出力では、の右側にある値をメモします。Service Account:。で始まる行の場合Service Account:が存在しない場合、カスタム Kubernetes サービスアカウントは現在デプロイメントに割り当てられていません。1 つを割り当てる必要があります。詳細については、Kubernetes ドキュメントの「Configure Service Accounts for Pods (ポッド用にサービスアカウントを設定する)」を参照してください。

  2. 前のステップで返されたサービスアカウントの詳細を表示します。次のコマンドは、という名前のサービスアカウントの詳細を表示します。マイサービスアカウント

    kubectl describe serviceaccount my-service-account

    Kubernetes サービスアカウントがAWS Identity and Access Managementrole の場合、返される行の 1 つは、次の例のようになります。

    Annotations:         eks.amazonaws.com/role-arn=arn:aws:iam::123456789012:role/my-deployment

    前の例ではmy-deploymentは、サービスアカウントが関連付けられている IAM ロールの名前です。サービスアカウントの出力に上記の例のような行が含まれていない場合、Kubernetes サービスアカウントはAWS Identity and Access Managementアカウントを作成し、それを1つに関連付ける必要があります。詳細については、「サービスアカウントの IAM ロールの指定」を参照してください。

  3. AWS Management Console にサインインして、https://console.aws.amazon.com/iam/ で IAM コンソールを開きます。

  4. 左側のナビゲーションで、ロール。前のステップで書き留めておいた IAM ロールの名前を選択します。

  5. 以前に作成したカスタムポリシー、またはAWSAppMeshEnvoyAccess管理ポリシーが一覧表示されます。どちらのポリシーもアタッチされていない場合は、IAM ポリシーのアタッチIAM ロールに追加します。カスタム IAM ポリシーをアタッチしたいが持っていない場合は、次の操作が必要です。カスタム IAM ポリシーを作成する必要なアクセス権限を持つ。カスタム IAM ポリシーがアタッチされている場合は、ポリシーを選択し、ポリシーに含まれていることを確認します。"Action": "appmesh:StreamAggregatedResources"。そうでない場合は、そのアクセス権限をカスタム IAM ポリシーに追加する必要があります。また、特定のメッシュエンドポイントに適切な Amazon リソースネーム (ARN) がリストされていることも確認できます。ARN がリストされていない場合は、ポリシーを編集して、リストされた ARN を追加、削除、または変更することができます。詳細については、「」を参照してください。IAM ポリシーの編集そしてIAM ポリシーを作成する

  6. Envoy プロキシを含む各 Kubernetes ポッドについて、上記の手順を繰り返します。

Amazon ECS
  1. Amazon ECS コンソールで、[] を選択します。タスク定義

  2. Amazon ECS タスクを選択します。

  3. リポジトリの []タスク定義名[] ページで、タスク定義を選択します。

  4. リポジトリの []タスク定義ページで、の右側にある IAM ロール名のリンクを選択します。タスクロール。IAM ロールがリストされていない場合は、次の操作を行う必要があります。IAM ロールを作成するそして、それをタスクに添付してタスク定義を更新する。

  5. 概要[] ページの表示項目アクセス許可タブで、以前に作成したカスタムポリシー、またはAWSAppMeshEnvoyAccess管理ポリシーが一覧表示されます。どちらのポリシーもアタッチされていない場合は、IAM ポリシーのアタッチIAM ロールに追加します。カスタム IAM ポリシーをアタッチしたいが持っていない場合は、次の操作が必要です。カスタム IAM ポリシーを作成する。カスタム IAM ポリシーがアタッチされている場合は、ポリシーを選択し、ポリシーに含まれていることを確認します。"Action": "appmesh:StreamAggregatedResources"。そうでない場合は、そのアクセス権限をカスタム IAM ポリシーに追加する必要があります。また、特定のメッシュエンドポイントに適切な Amazon リソースネーム (ARN) がリストされていることも確認できます。ARN がリストされていない場合は、ポリシーを編集して、リストされた ARN を追加、削除、または変更することができます。詳細については、「」を参照してください。IAM ポリシーの編集そしてIAM ポリシーを作成する

  6. Envoy プロキシを含むタスク定義について、上記の手順を繰り返します。

Amazon EC2
  1. Amazon EC2 コンソールで、[] を選択します。インスタンス左側のナビゲーションで。

  2. Envoy プロキシをホストするインスタンスの 1 つを選択します。

  3. 説明タブで、の右側にある IAM ロール名のリンクを選択します。IAM ロール。IAM ロールがリストされていない場合は、次の操作を行う必要があります。IAM ロールを作成する

  4. 概要[] ページの表示項目アクセス許可タブで、以前に作成したカスタムポリシー、またはAWSAppMeshEnvoyAccess管理ポリシーが一覧表示されます。どちらのポリシーもアタッチされていない場合は、IAM ポリシーのアタッチIAM ロールに追加します。カスタム IAM ポリシーをアタッチしたいが持っていない場合は、次の操作が必要です。カスタム IAM ポリシーを作成する。カスタム IAM ポリシーがアタッチされている場合は、ポリシーを選択し、ポリシーに含まれていることを確認します。"Action": "appmesh:StreamAggregatedResources"。そうでない場合は、そのアクセス権限をカスタム IAM ポリシーに追加する必要があります。また、特定のメッシュエンドポイントに適切な Amazon リソースネーム (ARN) がリストされていることも確認できます。ARN がリストされていない場合は、ポリシーを編集して、リストされた ARN を追加、削除、または変更することができます。詳細については、「」を参照してください。IAM ポリシーの編集そしてIAM ポリシーを作成する

  5. Envoy プロキシをホストするインスタンスごとに、上記の手順を繰り返します。