Envoy プロキシの認可 - AWS App Mesh

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

Envoy プロキシの認可

重要

サポート終了通知: 2026 年 9 月 30 日、 は のサポートを中止 AWS します AWS App Mesh。2026 年 9 月 30 日以降、 AWS App Mesh コンソールまたは AWS App Mesh リソースにアクセスできなくなります。詳細については、このブログ記事の「 から Amazon ECS Service Connect AWS App Mesh への移行」を参照してください。

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

IAM ポリシーの作成

サービスメッシュ内のすべてのメッシュエンドポイントで、すべてのメッシュエンドポイントの設定を読み取れるようにするには、IAM ロールの作成 に進みます。個々のメッシュエンドポイントによって設定を読み取ることができるメッシュエンドポイントを制限する場合は、1 つ以上のIAMポリシーを作成する必要があります。設定を読み取りできるメッシュエンドポイントを、特定のコンピューティングリソースで実行されている Envoy プロキシのみに制限することをお勧めします。IAM ポリシーを作成し、ポリシーに appmesh:StreamAggregatedResources アクセス許可を追加します。次のポリシーの例では、serviceBv1serviceBv2 という名前の仮想ノードの設定をサービスメッシュで読み取りすることを許可します。サービスメッシュで定義されている他の仮想ノードの設定を読み取りすることはできません。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 ECSAWS サービスを選択し、Elastic Container Service を選択し、IAMロールの作成時に Elastic Container Service タスクのユースケースを選択します。

  • Amazon EC2AWS サービスを選択し、 を選択しEC2、IAMロールの作成時にEC2ユースケースを選択します。これは、プロキシを Amazon EC2インスタンスで直接ホストするか、インスタンスで実行されている Kubernetes でホストするかにかかわらず適用されます。

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

アタッチIAMポリシー

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

IAM ロールをアタッチする

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

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

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

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

アクセス許可の確認

コンピュートサービス名の1つを選択して、プロキシをホストするコンピュートリソースに appmesh:StreamAggregatedResources アクセス許可が割り当てられていることを確認します。

Amazon EKS

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

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

    kubectl describe deployment my-deployment

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

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

    kubectl describe serviceaccount my-service-account

    Kubernetes サービスアカウントが AWS Identity and Access Management ロールに関連付けられている場合、返される行の 1 つは次の例のようになります。

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

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

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

  4. 左のナビゲーションペインで、[ロール] を選択します。前のステップでメモしたIAMロールの名前を選択します。

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

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