AWS リソースの共有 - AWS Resource Access Manager

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

AWS リソースの共有

AWS RAM を使用して、所有しているリソースを共有するには、以下の手順に従います。

メモ
  • リソースを所有する AWS アカウント 外のプリンシパルを含むリソース共有は、リソースが作成されたアカウント内のリソースに適用されるアクセス許可やクォータに影響することはありません。

  • AWS RAM はリージョンでのサービスです。共有先のプリンシパルは、リソース共有が作成された AWS リージョン 内のみのアクセスが可能です。

  • リソースによっては、共有に関する特別な考慮事項と前提条件があります。詳細については、「共有可能な AWS リソース」を参照してください。

AWS Organizations 内でリソース共有を有効にする

アカウントが AWS Organizations によって管理されている場合、それを活用すればリソースを共有しやすくなります。組織の有無にかかわらず、ユーザーは個々のアカウントとリソースを共有できます。ただし、アカウントが組織内にある場合には、各アカウントを列挙しなくても、個々のアカウント、または組織内または OU 内のすべてのアカウントとの共有が可能です。

組織内でリソースを共有するには、まず AWS RAM コンソールまたは AWS Command Line Interface (AWS CLI) を使用して AWS Organizations との共有を有効にする必要があります。組織内でリソースを共有する場合、AWS RAM はプリンシパルに招待状を送信しません。組織内のプリンシパルは、招待状を交換せずに共有リソースにアクセスできます。

組織内でリソースの共有を有効にする場合、AWS RAM は AWSServiceRoleForResourceAccessManager と呼ばれるサービスがリンクされたロールを作成します。このロールは AWS RAM サービスのみが引き受けることができ、AWS 管理ポリシー AWSResourceAccessManagerServiceRolePolicy を使用して、そのサービスが所属する組織に関する情報を取得する AWS RAM 権限を付与します。

組織全体または OU とリソースを共有する必要がなくなった場合は、リソース共有を無効にすることができます。詳細については、「AWS Organizations とのリソース共有の無効化」を参照してください。

最小アクセス許可

以下の処理を実行するには、次のアクセス許可を持つ組織の管理アカウントのプリンシパルでサインインする必要があります。

  • ram:EnableSharingWithAwsOrganization

  • iam:CreateServiceLinkedRole

  • organizations:enableAWSServiceAccess

  • organizations:DescribeOrganization

要件
  • これらの手順は、組織の管理アカウントのプリンシパルとしてサインインしている場合のみ実行できます。

  • その組織で、すべての機能が有効になっている必要があります。詳細については、AWS Organizations ユーザーガイドの「組織内のすべての機能の有効化」を参照してください。

重要

AWS RAM コンソールまたは enable-sharing-with-aws-organization AWS CLI コマンドを使用して AWS Organizations との共有を有効にする必要があります。これにより、AWSServiceRoleForResourceAccessManager サービスリンクロールが確実に作成されます。AWS Organizations コンソールまたは enable-aws-service-access AWS CLI コマンドを使用して AWS Organizations で信頼されたアクセスを有効にすると、AWSServiceRoleForResourceAccessManager サービスリンクロールが作成されず、組織内でリソースを共有できなくなります。

Console
組織内でリソース共有を有効にするには
  1. AWS RAM コンソールの [Settings] (設定) ページを開きます。

  2. [Enable sharing with AWS Organizations] (との共有を有効にする) を選択してから [Save settings] (設定の保存) を選択します。

AWS CLI
組織内でリソース共有を有効にするには

enable-sharing-with-aws-organization コマンドを使用します。

このコマンドはどの AWS リージョン でも使用でき、AWS RAM がサポートされているすべてのリージョンで AWS Organizations との共有が有効になります。

$ aws ram enable-sharing-with-aws-organization { "returnValue": true }

リソース共有を作成する

所有するリソースを共有するには、リソース共有を作成します。プロセスの概要を次に示します。

  1. 共有するリソースを追加します。

  2. 共有に含める各リソースタイプで、リソースタイプで使用する管理アクセス許可を指定します。

    • 使用可能な AWS 管理アクセス許可および既存のカスタマー管理アクセス許可を選択することができます。または、新しいカスタマー管理アクセス許可を作成することもできます。

    • AWS 管理アクセス許可は、標準的なユースケースに対応するように AWS によって作成されます。

    • カスタマー管理アクセス許可を使用すると、セキュリティやビジネスニーズに合わせて独自の管理アクセス許可をカスタマイズできます。

    注記

    選択した管理アクセス許可に複数のバージョンがある場合、AWS RAM はデフォルトバージョンを自動的にアタッチします。アタッチできるのは、デフォルトとして指定されているバージョンのみです。

  3. リソースにアクセスできるようにしたいプリンシパルを指定します。

考慮事項
  • 共有に含めた AWS リソースを後で削除する必要が生じた場合は、そのリソースをリソース共有から削除するか、リソース共有を削除することを推奨します。

  • リソース共有に含めることができるリソースタイプの一覧は「共有可能な AWS リソース」で確認できます。

  • 共有できるのは自分が所有するリソースのみです。自分が共有先になっているリソースを共有リソースにすることはできません。

  • AWS RAM はリージョンでのサービスです。リソースを他の AWS アカウント 内のプリンシパルと共有する場合、プリンシパルはリソースが作成されたのと同じ AWS リージョン から各リソースにアクセスする必要があります。サポートされているグローバルリソースについては、そのリソースのサービスコンソールとツールがサポートしているどの AWS リージョン からでもアクセスできます。このようなリソース共有とそのグローバルリソースは、指定されたホームリージョンである米国東部 (バージニア北部) us-east-1 の AWS RAM コンソールとツールでのみ表示できます。AWS RAM とグローバルリソースの詳細については、「リージョナルリソースの共有とグローバルリソースの共有の比較」を参照してください。

  • 共有しているアカウントが AWS Organizations の組織の一部で、組織で共有が有効化されている場合、組織内のあらゆる共有先プリンシパルには、招待状なしでリソース共有にアクセスできるアクセス許可が自動的に付与されます。組織のコンテキスト外で共有するアカウントのプリンシパルは、リソース共有に参加するための招待を受け取り、招待を受け入れた後でのみ、共有リソースへのアクセス権が付与されます。

  • サービスプリンシパルと共有する場合、他のプリンシパルをリソース共有に関連付けることはできません。

  • 組織の一部であるアカウントまたはプリンシパル間で共有する場合、組織のメンバーシップを変更すると、リソース共有へのアクセスに動的に影響します。

    • 組織またはリソース共有へのアクセス権を持つ OU に AWS アカウント を追加する場合、新しいメンバーに共有リソースへのアクセス許可が自動的に付与されます。その後、共有先のアカウント管理者は、アカウント内の個々のプリンシパルに、共有内のリソースへのアクセス権を付与できます。

    • 組織またはリソース共有へのアクセス権を持つ OU からアカウントを削除する場合、そのアカウントのすべてのプリンシパルは、リソース共有からアクセス可能なリソースへのアクセス許可を自動的に失います。

    • メンバーアカウント、またはメンバーアカウントの IAM ロールまたはユーザーと直接共有し、そのアカウントを組織から削除する場合、そのアカウントのすべてのプリンシパルは、そのリソース共有からアクセス可能なリソースへのアクセス許可を失います。

    重要

    組織または OU と共有し、スコープにリソース共有を所有するアカウントが含まれる場合、共有アカウントのすべてのプリンシパルは、共有内のリソースに自動的にアクセスできるようになります。付与されるアクセスは、共有に関連付けられている管理アクセス許可によって定義されます。これは、共有内の各リソースに AWS RAM がアタッチするリソースベースのポリシーで "Principal": "*" が使用されるためです。詳細については、「"Principal": "*" をリソースベースのポリシーで使用することの影響」を参照してください。

    他のコンシューマーアカウントのプリンシパルは、共有のリソースにすぐにはアクセスできません。他のアカウントの管理者は、まず ID ベースのアクセス許可ポリシーを適切なプリンシパルにアタッチする必要があります。これらのポリシーは、リソース共有内の個々のリソース ARN への Allow アクセスを付与する必要があります。これらのポリシーのアクセス許可は、リソース共有に関連付けられた管理アクセス許可で指定されているアクセス許可を超えることはできません。

  • リソース共有に追加できるのは、アカウントがメンバーとして所属する組織とその組織の OU のみです。組織の外部から OU または組織をプリンシパルとしてリソース共有に追加することはできません。ただし、個々の AWS アカウント、または組織外のサポートされているサービスの IAM ロールをリソース共有のプリンシパルとして追加することはできます。

    注記

    すべてのリソースタイプを IAM ロールやユーザーと共有できるわけではありません。これらのプリンシパルと共有できるリソースの詳細については、「共有可能な AWS リソース」を参照してください。

  • 次のリソースタイプについては、7 日以内に共有への招待を受け入れる必要があります。7 日以内に招待を受け入れない場合、招待は期限切れになり、自動的に辞退したことになります。

    重要

    以下のリストに含まれていない共有リソースタイプについては、12 時間以内にリソース共有への招待を受け入れる必要があります。12 時間が経過すると、招待は期限切れになり、リソース共有のエンドユーザープリンシパルとの関連付けが解除されます。エンドユーザーは招待を受け入れることができなくなります。

    • Amazon Aurora – DB クラスター

    • Amazon EC2 — キャパシティ予約と専有ホスト

    • AWS License Manager - ライセンス設定

    • AWS Outposts - ローカルゲートウェイルートテーブル、アウトポスト、サイト

    • Amazon Route 53 – 転送ルール

    • Amazon VPC — カスタマーが所有する IPv4 アドレス、プレフィックスリスト、サブネット、トラフィックミラーターゲット、トランジットゲートウェイ、トランジットゲートウェイマルチキャストドメイン

Console
リソース共有を作成するには
  1. AWS RAM コンソールを開きます。

  2. AWS RAM リソース共有は特定の AWS リージョン 内に存在するので、コンソール右上のドロップダウンリストから適切な AWS リージョン を選択してください。グローバルリソースを含むリソース共有を表示するには、AWS リージョン を米国東部 (バージニア北部) us-east-1 に設定する必要があります。グローバルリソース共有の詳細については、「リージョナルリソースの共有とグローバルリソースの共有の比較」を参照してください。リソース共有にグローバルリソースを含める場合は、指定されたホームリージョンである米国東部 (バージニア北部) us-east-1 を選択する必要があります。

  3. AWS RAM を初めて使用する場合は、ホームページから [Create a resource share] (リソース共有の作成) を選択します。それ以外の場合、[Shared by me : Resource shares] (自分が共有: リソース共有) から [Create resource share] (リソース共有の作成) を選択します。

  4. [Step 1: Specify resource share details] (ステップ 1: リソース共有の詳細を指定する) で、以下の手順に従います。

    1. [Name] (名前) に、リソース共有のわかりやすい名前を入力します。

    2. [Resources] (リソース) で、リソース共有に追加するリソースを以下のように選択します。

      • [Select resource type] (ターゲットリソースの選択) で、共有するリソースのタイプを選択します。そうすることで、共有可能なリソースのリストが、選択したタイプのリソースのみに絞り込まれます。

      • 結果のリソースリストで、共有したい個々のリソースの横にあるチェックボックスをオンにします。選択したリソースが [Selected resources] (選択済みリソース) に移動します。

        特定のアベイラビリティゾーンに関連付けられているリソースを共有する場合、アベイラビリティゾーン ID (AZ ID) を使用すると、アカウント間でこれらのリソースの場所を判別するのに役立ちます。詳細については、「AWS リソースのアベイラビリティーゾーン ID」を参照してください。

    3. (オプション) タグをアタッチするには、[Tags] (タグ) にタグのキーと値を入力します。[Add new tag] (新しいタグを追加) を選択して、他のユーザーを追加します。この手順を必要なだけ繰り返します。これらのタグは、リソース共有内のリソースには適用されず、リソース共有自体にのみ適用されます。

  5. [Next] (次へ) をクリックします。

  6. 手順 2: 管理アクセス許可を各リソースタイプに関連付ける」では、AWS で作成された管理アクセス許可をリソースタイプに関連付けるか、既存のカスタマー管理アクセス許可を選択するか、サポートされているリソースタイプに対して独自のカスタマー管理アクセス許可を作成するかを選択できます。詳細については、「管理アクセス許可のタイプ」を参照してください。

    [カスタマー管理アクセス許可の作成] を選択して、共有ユースケースの要件を満たすカスタマー管理アクセス許可を作成します。詳細については、「カスタマー管理アクセス許可を作成する」を参照してください。プロセスが完了したら Refresh icon を選択し、[管理アクセス許可] ドロップダウンリストから新しいカスタマー管理アクセス許可を選択します。

    注記

    選択した管理アクセス許可に複数のバージョンがある場合、AWS RAM はデフォルトバージョンを自動的にアタッチします。デフォルトとして指定されたバージョンのみをアタッチできます。

    管理アタッチで許可されているアクションを表示するには、[この管理アタッチのポリシーテンプレートを表示] を展開します。

  7. [Next] (次へ) をクリックします。

  8. 手順 3: プリンシパルにアクセス権限を付与する」で、以下を行います。

    1. デフォルトでは、[すべてのユーザーとの共有を許可] が選択されています。つまり、サポートされているリソースタイプでは、組織外の AWS アカウント とリソースを共有できます。これは、Amazon VPC サブネットなど、組織内のみで共有できるリソースタイプには影響しません。サポートされているリソースタイプの一部は、IAM ロールおよびユーザーと共有できます。

      組織内のプリンシパルのみにリソース共有を制限するには、[自分の組織内でのみ共有を許可] を選択します。

    2. [Principals] (プリンシパル) について、以下の操作をします。

      • 組織、組織単位 (OU) または組織の一部である AWS アカウント を追加するには、[Display organizational structure] (組織構造の表示) をオンにします。そうすると組織図が表示されます。次いで、追加したい各プリンシパルの横にあるチェックボックスをオンにします。

        重要

        組織または OU と共有し、スコープにリソース共有を所有するアカウントが含まれる場合、共有アカウントのすべてのプリンシパルは、共有内のリソースに自動的にアクセスできるようになります。付与されるアクセスは、共有に関連付けられている管理アクセス許可によって定義されます。これは、共有内の各リソースに AWS RAM がアタッチするリソースベースのポリシーで "Principal": "*" が使用されるためです。詳細については、「"Principal": "*" をリソースベースのポリシーで使用することの影響」を参照してください。

        他のコンシューマーアカウントのプリンシパルは、共有のリソースにすぐにはアクセスできません。他のアカウントの管理者は、まず ID ベースのアクセス許可ポリシーを適切なプリンシパルにアタッチする必要があります。これらのポリシーは、リソース共有内の個々のリソース ARN への Allow アクセスを付与する必要があります。これらのポリシーのアクセス許可は、リソース共有に関連付けられた管理アクセス許可で指定されているアクセス許可を超えることはできません。

        • 組織 (o- で始まる ID) を選択した場合、組織内のすべての AWS アカウント のプリンシパルがリソース共有にアクセスできます。

        • OU (ou- で始まる ID) を選択した場合、OU 内とその子 OU 内のすべての AWS アカウント のプリンシパルがリソース共有にアクセスできます。

        • 個々の AWS アカウント を選択した場合、そのアカウントのプリンシパルのみがリソース共有にアクセスできます。

        注記

        [Display organizational structure] (組織構造の表示) トグルが表示されるのは、AWS Organizations とのが有効になっていて、組織の管理アカウントにサインインしているときのみです。

        この方法で組織外の AWS アカウント または IAM ロール/ユーザーを指定することはできません。代わりに、[組織構造を表示] を無効にし、ドロップダウンリストとテキストボックスを使用して ID または ARN を入力します。

      • 組織外のプリンシパルを含む ID または ARN でプリンシパルを指定するには、プリンシパルごとにプリンシパルタイプを選択します。次に、(AWS アカウント、組織、または OU の) ID または (IAM ロールまたはユーザーの) ARN を入力して [追加] を選択します。使用可能なプリンシパルタイプと ID および ARN 形式は以下のとおりです。

        • AWS アカウント — AWS アカウント を追加するには、12 桁のアカウント ID を入力します。例:

          123456789012

        • [Organization] (組織) — AWS アカウント のすべてを追加するには、組織の ID を入力します。例:

          o-abcd1234

        • [Organizational unit (OU)] (部門単位 (OU)) — OU を追加するには、OU の ID を入力します。例:

          ou-abcd-1234efgh

        • [IAM role] (IAM ロール) — IAM ロールを追加するには、ロールの ARN を入力します。次の構文を使用します。

          arn:partition:iam::account:role/role-name

          例:

          arn:aws:iam::123456789012:role/MyS3AccessRole

          注記

          IAM ロールの一意の ARN を取得するには、IAM コンソールでロールのリストを表示し、get-role AWS CLI コマンドまたは GetRole API アクションを使用します。

        • [IAM user] (IAM ユーザー) — IAM ユーザーを追加するには、ユーザーの ARN を入力します。次の構文を使用します。

          arn:partition:iam::account:user/user-name

          例:

          arn:aws:iam::123456789012:user/bob

          注記

          IAM ユーザーの一意の ARN を取得するには、IAM コンソールでユーザーのリストを表示しget-user AWS CLI コマンドまたは GetUser API アクションを使用します。

      • サービスプリンシパル — サービスプリンシパルを追加するには、[プリンシパルタイプの選択] ドロップボックスで [サービスプリンシパル] を選択します。AWS サービスプリンシパル名を入力します。次の構文を使用します。

        • service-id.amazonaws.com

          例:

          pca-connector-ad.amazonaws.com

    3. [Selected principals] (選択されたプリンシパル) について、指定したプリンシパルがリストに入っていることを確認します。

  9. [Next] (次へ) をクリックします。

  10. [Step 4: Review and create] (ステップ 4: 確認して作成する) で、リソース共有に関する設定の詳細を見直します。任意のステップについて設定を変更するには、戻りたいステップに対応するリンクを選択して必要なだけ変更を加えます。

  11. リソース共有を確認し終わった、[Create resource share] (リソース共有の作成) を選択します。

    リソースとプリンシパルの関連付けが完了するまでに数分かかることがあります。リソース共有を使用する前にこのプロセスを完了させてください。

  12. リソースとプリンシパルの追加および削除、リソース共有へのカスタムタグの適用はいつでもできます。リソース共有に含まれるリソースタイプのうち、デフォルトの管理アクセス許可以外をサポートするタイプについては、管理アクセス許可を変更できます。リソースを共有する必要がなくなったら、リソース共有を削除できます。詳細については、「所有する AWS リソースの共有」を参照してください。

AWS CLI
リソース共有を作成するには

create-resource-share コマンドを実行します。次のコマンドは、組織内の AWS アカウント のすべてと共有されるリソース共有を作成します。共有は、AWS License Manager ライセンス設定を含み、これはそのリソースタイプに対するデフォルトの管理アクセス許可を付与します。

注記

このリソース共有のリソースタイプでカスタマー管理アクセス許可を使用する場合は、既存のカスタマー管理アクセス許可を使用するか、新しいカスタマー管理アクセス許可を作成します。カスタマー管理アクセス許可の ARN をメモし、リソース共有を作成します。詳細については、「カスタマー管理アクセス許可を作成する」を参照してください。

$ aws ram create-resource-share \ --region us-east-1 \ --name MyLicenseConfigShare \ --permission-arns arn:aws:ram::aws:permission/AWSRAMDefaultPermissionLicenseConfiguration \ --resource-arns arn:aws:license-manager:us-east-1:123456789012:license-configuration:lic-abc123 \ --principals arn:aws:organizations::123456789012:organization/o-1234abcd { "resourceShare": { "resourceShareArn": "arn:aws:ram:us-east-1:123456789012:resource-share/12345678-abcd-09876543", "name": "MyLicenseConfigShare", "owningAccountId": "123456789012", "allowExternalPrincipals": true, "status": "ACTIVE", "creationTime": "2021-09-14T20:42:40.266000-07:00", "lastUpdatedTime": "2021-09-14T20:42:40.266000-07:00" } }