共有メッシュの使用 - AWS App Mesh

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

共有メッシュの使用

共有メッシュは、異なるアカウントで作成されたリソースが同じメッシュの中で互いに通信できるようにするものです。

AWS Identity and Access Management アカウントは、メッシュリソースオーナー、メッシュコンシューマー、またはその両方にすることができます。コンシューマーは、アカウントと共有されるメッシュにリソースを作成できます。オーナーは、アカウントが所有する任意のメッシュにリソースを作成できます。メッシュ所有者は、次のタイプのメッシュコンシューマとメッシュを共有できます。

  • AWS Organizations の組織内または組織外の特定の AWS アカウント

  • AWS Organizations の組織内の組織単位

  • AWS Organizations の組織全体

メッシュ共有のエンドツーエンドのウォークスルーについては、GitHub の「クロスアカウントメッシュのチュートリアル」を参照してください。

共有メッシュのアクセス許可

共有メッシュには、次のアクセス許可があります。

  • コンシューマーは、アカウントと共有されているメッシュ内のすべてのリソースを一覧表示して記述できます。

  • オーナーは、アカウントが所有するメッシュ内のすべてのリソースを一覧表示して説明できます。

  • 所有者とコンシューマーは、アカウントが作成したメッシュのリソースを変更できますが、他のアカウントが作成したリソースを変更することはできません。

  • コンシューマーは、アカウントが作成したメッシュ内の任意のリソースを削除できます。

  • 所有者は、任意のアカウントが作成したメッシュ内の任意のリソースを削除できます。

  • 所有者のリソースは、同じアカウント内の他のリソースのみをリファレンスできます。例えば、仮想ノードは、仮想ノードの所有者と同じアカウントにある AWS Cloud Map または AWS Certificate Manager 証明書のみをリファレンスできます。

  • 所有者とコンシューマーは、アカウントが所有する仮想ノードとして Envoy プロキシを App Mesh に接続できます。

  • 所有者は、仮想ゲートウェイと仮想ゲートウェイルートを作成できます。

  • 所有者とコンシューマーは、アカウントが作成したメッシュ内のタグを一覧表示したり、リソースにタグ付け/タグ付け解除できます。アカウントが作成したものではないメッシュ内のタグを一覧表示したり、リソースにタグ付け/タグ付け解除することはできません。

共有メッシュのサポートは、アカウントレベルのすべて許可の認可からポリシーベースの認可に移行しました。このロールアウト以前に共有されたメッシュはすべて前者の戦略を使用し、このロールアウト後に共有されたメッシュはすべて後者の戦略を使用します。

ポリシーベースの認可では、メッシュは固定された権限で共有されます。これらの権限を選択してリソースポリシーに追加します。オプションの IAM ポリシーを IAM ユーザー/ロールに基づいて選択することもできます。これらのポリシーで許可されている権限の共通部分から、明示的に拒否された権限を除いたものが、プリンシパルのメッシュへのアクセス権になります。

リソースポリシーに追加された権限のセットは固定で、AWS Resource Access Manager (AWS RAM) によって決定されます。

  • appmesh:CreateVirtualNode

  • appmesh:CreateVirtualRouter

  • appmesh:CreateRoute

  • appmesh:CreateVirtualService

  • appmesh:UpdateVirtualNode

  • appmesh:UpdateVirtualRouter

  • appmesh:UpdateRoute

  • appmesh:UpdateVirtualService

  • appmesh:ListVirtualNodes

  • appmesh:ListVirtualRouters

  • appmesh:ListRoutes

  • appmesh:ListVirtualServices

  • appmesh:DescribeMesh

  • appmesh:DescribeVirtualNode

  • appmesh:DescribeVirtualRouter

  • appmesh:DescribeRoute

  • appmesh:DescribeVirtualService

  • appmesh:DeleteVirtualNode

  • appmesh:DeleteVirtualRouter

  • appmesh:DeleteRoute

  • appmesh:DeleteVirtualService

注記

このセットには、appmesh:TagResources などの一部の権限は含まれていません。appmesh:TagResources へのアクセスが必要な場合、 のサポートが開始されるまで、アカウントをアカウントレベルのすべて許可の権限戦略に対応させることができます。appmesh:TagResources

メッシュを共有するための前提条件

メッシュを共有するには、以下の前提条件を満たす必要があります。

  • AWS アカウントでメッシュを所有している必要があります。すでに共有されているメッシュを共有することはできません。

  • 組織または AWS Organizations の組織単位とメッシュを共有するには、AWS Organizations との共有を有効にする必要があります。詳細については、「AWS RAM ユーザーガイド」の「AWS Organizations で共有を有効化する」を参照してください。

  • サービスは、相互に通信するメッシュリソースを含むアカウント間で接続を共有しているAmazon VPCにデプロイする必要があります。ネットワーク接続を共有する 1 つの方法は、メッシュで使用するすべてのサービスを共有サブネットにデプロイすることです。詳細および制限事項については、「サブネットの共有」を参照してください。

  • サービスは DNS または AWS Cloud Map を介して検出可能である必要があります。サービスディスカバリの詳細については、「仮想ノード」を参照してください。

メッシュ共有は AWS Resource Access Manager (AWS RAM) と統合されています。AWS RAM は、AWS リソースを任意の AWS アカウントと共有したり、AWS Organizations 経由で共有したりするためのサービスです。AWS RAM を使用したリソース共有。これにより、自身が所有するリソースを共有できます。リソース共有は、共有するリソースと、それらを共有するコンシューマーを指定します。コンシューマーには、個々の AWS アカウントとする、あるいは AWS Organizations 内の組織単位または組織全体を指定できます。

AWS RAM の詳細については、AWS RAM ユーザーガイドを参照してください。

メッシュを共有する

メッシュを共有すると、異なるアカウントで作成されたメッシュリソースが同じメッシュ内で相互に通信できるようになります。所有するメッシュのみを共有できます。メッシュを共有するには、メッシュをリソース共有に追加する必要があります。リソース共有とは、AWS RAM アカウント間で自身のリソースを共有するための AWS リソースです。リソース共有では、共有対象のリソースと、共有先のコンシューマーを指定します。Amazon Linux コンソールを使用してメッシュを共有する場合は、既存のリソース共有にそれを追加します。メッシュを新しいリソース共有に追加するには、最初に AWS RAM コンソールを使用してリソース共有を作成する必要があります。

AWS Organizations の組織に属していて、組織内での共有が有効になっている場合、組織内のコンシューマーには、共有メッシュへのアクセス許可を自動的に付与できます。それ以外の場合、コンシューマーはリソース共有に参加するための招待を受け取り、招待を受け入れた後に共有メッシュへのアクセスを許可されます。

AWS RAM コンソールまたは AWS CLI を使用して、所有しているメッシュを共有できます。

AWS RAM コンソールを使用して、自身が所有するメッシュを共有するには

手順については、「AWS RAM ユーザーガイド」の「リソース共有の作成」を参照してください。リソースタイプを選択するときは、[メッシュ] を選択してから、共有するメッシュを選択します。メッシュがリストされていない場合は、最初にメッシュを作成する必要があります。詳細については、「サービスメッシュの作成」を参照してください。

AWS CLI を使用して、自身が所有するメッシュを共有するには

create-resource-share コマンドを使用します。--resource-arns オプションで、共有するメッシュの ARN を指定します。

メッシュの共有解除

メッシュの共有を解除すると、App Mesh はメッシュの以前のコンシューマーによるメッシュへのそれ以降のアクセスを無効にします。ただし、App Mesh はコンシューマーが作成したリソースを削除しません。メッシュの共有が解除されると、メッシュの所有者のみがリソースにアクセスして削除できます。App Mesh は、メッシュ内のリソースを所有していたアカウントが、メッシュの共有解除後に設定情報を受信しないようにします。また、App Mesh は、メッシュ内にリソースを持つアカウントが、メッシュの共有解除後に設定情報を受信しないようにします。メッシュの所有者のみが共有を解除できます。

所有している共有メッシュの共有を解除するには、リソース共有からメッシュを削除する必要があります。これを行うには、AWS RAM コンソールまたは AWS CLI を使用できます。

AWS RAM を使用して所有している共有メッシュの共有を解除するには

手順については、「AWS RAM ユーザーガイド」の「リソース共有の更新」を参照してください。

AWS CLI を使用して所有している共有メッシュの共有を解除するには

disassociate-resource-share コマンドを使用します。

共有メッシュの特定

所有者とコンシューマは、Amazon Linux コンソールと AWS CLI を使用して共有メッシュとメッシュリソースを識別できます

Amazon Linux コンソールを使用して共有メッシュを識別するには
  1. App Mesh コンソールを開きます。https://console.aws.amazon.com/appmesh/

  2. 左のナビゲーションペインで [メッシュ] を選択します。各メッシュのメッシュ所有者のアカウント ID は、[メッシュ所有者]列に一覧表示されます。

  3. 左側のナビゲーションから、[仮想サービス]、[仮想ルーター]、または[仮想ノード]を選択します。各リソースのメッシュ所有者リソース所有者のアカウント ID が表示されます。

AWS CLI を使用して共有メッシュを識別するには

aws appmesh list-meshes などの aws appmesh list resource コマンドを使用します。このコマンドは、所有しているメッシュと共有されているメッシュを返します。meshOwner プロパティは、meshOwner の AWS アカウント ID を示し、resourceOwner プロパティは、リソース所有者の AWS アカウント ID を示します。メッシュリソースに対してコマンドを実行すると、これらのプロパティが返されます。

共有メッシュにアタッチしたユーザー定義のタグは、ユーザー自身の AWS アカウントでのみ利用可能です。メッシュを共有している他のアカウントでは使用できません。別のアカウントでメッシュの aws appmesh list-tags-for-resource コマンドを実行しても、アクセスは拒否されます。

請求と使用量測定

メッシュの共有は無料です。

インスタンスクォータ

メッシュにリソースを作成したユーザーに関係なく、メッシュのすべてのクォータは共有メッシュにも適用されます。メッシュの所有者のみがクォータの増加を要求できます。詳細については、「App Mesh Service Quotas」を参照してください。AWS Resource Access Manager サービスにもクォータがあります。詳細については、「Service Quotas」を参照してください。