

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

# 共有 AWS Cloud Map 名前空間
<a name="sharing-namespaces"></a>

AWS Cloud Map を使用すると、名前空間の所有者は、名前空間を の他の AWS アカウント または組織内で共有 AWS Organizations して、クロスアカウントサービス検出とサービスレジストリを簡素化できます。これにより、 AWS 組織内の他の AWS アカウント またはチームが管理する名前空間を簡単に使用できます。

AWS Cloud Map は AWS Resource Access Manager (AWS RAM) と統合してリソース共有を有効にします。 AWS RAM は、一部の AWS Cloud Map リソースを他の AWS アカウント または と共有できるようにするサービスです AWS Organizations。では AWS RAM、リソース共有を作成して、所有している*リソースを共有*します。リソース共有は、共有するリソースと、それらを共有するコンシューマーを指定します。コンシューマーには以下が含まれます。
+ の組織 AWS アカウント 内で固有 AWS Organizations
+ の組織内の組織単位 AWS Organizations
+ の組織全体 AWS Organizations

詳細については AWS RAM、*[AWS RAM 「 ユーザーガイド](https://docs.aws.amazon.com/ram/latest/userguide/)*」を参照してください。

このトピックでは、所有しているリソースの共有方法と、共有されているリソースの使用方法を説明します。

**Topics**
+ [名前空間の共有に関する考慮事項](#sharing-considerations)
+ [AWS Cloud Map 名前空間の共有](sharing-share.md)
+ [AWS Cloud Map 名前空間の共有を停止する](sharing-unshare.md)
+ [共有 AWS Cloud Map 名前空間の識別](sharing-identify.md)
+ [名前空間を共有するアクセス許可の付与](#granting-perms-to-share)
+ [共有名前空間の責任とアクセス許可](#sharing-perms)
+ [請求と使用量測定](#sharing-billing)
+ [クォータ](#sharing-quotas)

## 名前空間の共有に関する考慮事項
<a name="sharing-considerations"></a>
+ 名前空間を共有するには、 でその名前空間を所有している必要があります AWS アカウント。つまり、自分のアカウントにそのリソースが割り当てられているか、プロビジョニングされている必要があります。共有されている名前空間を共有することはできません。
+ 名前空間を組織または の組織単位と共有するには AWS Organizations、 との共有を有効にする必要があります AWS Organizations。詳細については、「AWS RAM ユーザーガイド」の「[Enable Sharing with AWS Organizations](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html#getting-started-sharing-orgs)」を参照してください。
+ 共有プライベート DNS 名前空間で DNS クエリを使用するサービス検出の場合、名前空間所有者は、名前空間に関連付けられたプライベートホストゾーンの ID とコンシューマーの VPC `create-vpc-association-authorization`を使用して を呼び出す必要があります。

  ```
  aws route53 create-vpc-association-authorization --hosted-zone-id Z1234567890ABC --vpc VPCRegion=us-east-1,VPCId=vpc-12345678
  ```

  名前空間コンシューマーは、プライベートホストゾーンの ID を使用して `associate-vpc-with-hosted-zone` を呼び出す必要があります。

  ```
  aws route53 associate-vpc-with-hosted-zone --hosted-zone-id Z1234567890ABC --vpc VPCRegion=us-east-1,VPCId=vpc-12345678
  ```

  詳細については、[「Amazon Route 53 デベロッパーガイド」の「異なる で作成した Amazon VPC とプライベートホストゾーンの関連付け AWS アカウント](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zone-private-associate-vpcs-different-accounts.html)」を参照してください。 * *
+ 共有 DNS 名前空間に関連付けられたサービスのup-to-dateネットワークロケーションを検出した後、異なる VPCs にある場合、サービスと通信するように VPC 間接続を設定する必要がある場合があります。これは、VPC ピアリング接続を使用して実現できます。詳細については、「*Amazon Virtual Private Cloud ピアリングガイド*」の「[VPC ピアリング接続の作成または削除](https://docs.aws.amazon.com/vpc/latest/peering/create-vpc-peering-connection.html)」を参照してください。
+ を使用して`ListOperations`、他のアカウントによって実行される共有名前空間に対するオペレーションを一覧表示することはできません。
+ タグ付けは、共有名前空間ではサポートされていません。

# AWS Cloud Map 名前空間の共有
<a name="sharing-share"></a>

 所有している AWS Cloud Map 名前空間を他の AWS アカウント (コンシューマー) と共有する場合、これらのアカウントを有効にして、一時的な認証情報を必要とせずに、名前空間内のサービスのup-to-dateネットワークロケーションを検出できます。

名前空間を共有するには、リソース共有に追加する必要があります。リソース共有とは、 AWS アカウント間で自身のリソースを共有するための AWS RAM リソースです。リソース共有では、共有対象のリソースと、共有先のコンシューマーを指定します。名前空間を新しいリソース共有に追加するには、まず [AWS RAM コンソール](https://console.aws.amazon.com/ram)を使用してリソース共有を作成する必要があります。

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

 AWS RAM コンソールまたは を使用して、所有している名前空間を共有できます AWS CLI。

------
#### [ AWS RAM console ]

**AWS RAM コンソールを使用して所有している名前空間を共有するには**  
「AWS RAM ユーザーガイド」の「[Creating a resource share in AWS RAM](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-create.html)」を参照してください。

------
#### [ AWS CLI ]

**を使用して所有している名前空間を共有するには AWS CLI**  
 AWS RAM [create-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/create-resource-share.html) コマンドを使用します。

------

# AWS Cloud Map 名前空間の共有を停止する
<a name="sharing-unshare"></a>

名前空間が共有されなくなった場合、名前空間とそれに関連付けられたサービスおよびインスタンスにコンシューマーがアクセスできなくなります AWS アカウント。これには、コンシューマーが名前空間にアクセスしたときに名前空間で作成されたリソースが含まれます。

所有している名前空間の共有を停止するには、リソース共有から削除する必要があります。これを行うには、 AWS RAM コンソールまたは を使用します AWS CLI。

------
#### [ AWS RAM console ]

**AWS RAM コンソールを使用して所有している名前空間の共有を停止するには**  
「AWS RAM ユーザーガイド」の「[リソース共有の更新](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-update.html)」を参照してください。

------
#### [ AWS CLI ]

**を使用して所有している名前空間の共有を停止するには AWS CLI**  
[disassociate-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/disassociate-resource-share.html) コマンドを使用します。

------

# 共有 AWS Cloud Map 名前空間の識別
<a name="sharing-identify"></a>

所有者とコンシューマーは、 AWS Cloud Map コンソールと を使用して共有名前空間を識別できます AWS CLI。名前空間所有者は、 `ResourceOwner`プロパティを使用して識別できます。サービス AWS アカウント を作成するか、共有名前空間にインスタンスを登録する は、 `CreatedByAccount`プロパティを使用して識別できます。

------
#### [ AWS Cloud Map console ]

**AWS Cloud Map コンソールを使用して共有名前空間を識別するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/cloudmap/](https://console.aws.amazon.com/cloudmap/) で AWS Cloud Map コンソールを開きます。

1. **名前空間**ページの**リソース所有者**の下に、名前空間を所有 AWS アカウント する の ID が表示されます。

1. 識別する名前空間の**ドメイン名**を選択します。

1. **名前空間: *namespace-name*** ページの**「名前空間情報**」セクションの**「リソース所有者**」で、名前空間を所有 AWS アカウント する の ID を確認できます。

------
#### [ AWS CLI ]

を使用して共有名前空間を識別するには AWS CLI、[list-namespaces](https://docs.aws.amazon.com/cli/latest/reference/servicediscovery/list-namespaces.html) コマンドを使用します。コマンドは、所有している名前空間と共有されている名前空間を返します。`ResourceOwner` フィールドには、名前空間所有者の AWS アカウント ID が表示されます。

次の`list-namespaces`呼び出しはアカウント によって行われます`111122223333`。

```
aws servicediscovery list-namespaces
```

出力:

```
{
    "Namespaces": [
        {
            "Arn": "arn:aws:servicediscovery:us-west-2:111122223333:namespace/ns-abcdef01234567890",
            "CreateDate": 1585354387.357,
            "Id": "ns-abcdef01234567890",
            "Name": "local",
            "Properties": {
                "DnsProperties": {
                    "HostedZoneId": "Z06752353VBUDTC32S84S"
                },
                "HttpProperties": {
                    "HttpName": "local"
                 }
            },
            "Type": "DNS_PRIVATE",
            "ServiceCount": 2,
           "ResourceOwner": "111122223333"
        },
        {
            "Arn": "arn:aws:servicediscovery:us-west-2:444455556666:namespace/ns-021345abcdef6789",
            "CreateDate": 1586468974.698,
            "Description": "Shared second namespace",
            "Id": "ns-021345abcdef6789",
            "Name": "My-second-namespace",
            "Properties": {
                "DnsProperties": {},
                "HttpProperties": {
                    "HttpName": "Shared-second-namespace"
                }
            },
            "Type": "HTTP",
            "ServiceCount": 0,
            "ResourceOwner": "444455556666"
        }
    ]
}
```

このシナリオでは、名前空間`ns-abcdef01234567890`は によって作成および所有`111122223333`され、名前空間`ns-021345abcdef6789`は によって作成および所有されます`444455556666`。名前空間`ns-021345abcdef6789`は、アカウント `111122223333`によってアカウント と共有されます`444455556666`。

------

## 名前空間を共有するアクセス許可の付与
<a name="granting-perms-to-share"></a>

IAM プリンシパルが名前空間を共有するには、最小限のアクセス許可のセットが必要です。`AWSCloudMapFullAccess` および `AWSResourceAccessManagerFullAccess`管理ポリシーを使用して、IAM プリンシパルが共有名前空間を共有および使用するために必要なアクセス許可を持っていることを確認することをお勧めします。

カスタム IAM ポリシーを使用する場合は、名前空間の共有に `servicediscovery:PutResourcePolicy`、`servicediscovery:GetResourcePolicy`、および `servicediscovery:DeleteResourcePolicy`アクションが必要です。これらはアクセス許可のみの IAM アクションです。IAM プリンシパルにこれらのアクセス許可が付与されていない場合、 を使用して名前空間を共有しようとするとエラーが発生します AWS RAM。

が IAM AWS RAM を使用する方法の詳細については、*AWS RAM 「 ユーザーガイド*」の「 が [IAM AWS RAM を使用する方法](https://docs.aws.amazon.com/ram/latest/userguide/security-iam-policies.html)」を参照してください。

## 共有名前空間の責任とアクセス許可
<a name="sharing-perms"></a>

名前空間の所有者とコンシューマーは、共有名前空間に対して異なるアクションを実行できます。

### 所有者のアクセス許可
<a name="perms-owner"></a>

名前空間所有者は、共有名前空間で次のアクションを実行できます。
+ コンシューマーアカウントによって作成されたサービスや、これらのサービスに登録されたインスタンスなど、名前空間に関連付けられたサービスにアクセスします。
+ コンシューマーアカウントによって作成されたサービスやこれらのサービスに登録されたインスタンスへのアクセスなど、 名前空間へのアクセスを取り消します。
+ コンシューマーまたは名前空間所有者が共有名前空間で作成したサービスでインスタンスを登録および登録解除するアクセス許可を他のアカウントに設定します。
+ コンシューマーアカウントによって作成されたサービスや登録されたインスタンスなど、サービスを削除し、インスタンスの登録を解除します。
+ 共有名前空間を更新または削除します。

### コンシューマーのアクセス許可
<a name="perms-consumer"></a>

名前空間コンシューマーは、共有名前空間で次のアクションを実行できます。
+ 名前空間でサービスを作成および削除します。
+ 名前空間で作成されたサービスでインスタンスを登録および登録解除します。
+ 名前空間で作成されたサービスに登録されているインスタンスを検出します。

コンシューマーは、共有名前空間を更新または削除することはできません。共有名前空間へのアクセスが失われると、コンシューマーアカウントは名前空間で作成したサービスにもアクセスできなくなります。

## 請求と使用量測定
<a name="sharing-billing"></a>

所有者は、共有名前空間に登録したインスタンスと、これらのインスタンスの登録時に作成された Route 53 ヘルスチェックに対して課金されます。コンシューマーは、名前空間に登録したインスタンスと、これらのインスタンスの登録時に作成された Route 53 ヘルスチェックに対して課金されます。共有名前空間が DNS 名前空間の場合、名前空間の所有者は、名前空間にサービスが作成されたときに作成された Route 53 DNS レコードに対して課金されます。所有者は、 `DiscoverInstances`および `DiscoverInstancesRevision`呼び出しに対して課金されます。コンシューマーは、 `DiscoverInstances`および `DiscoverInstancesRevision`呼び出しに対して課金されます。

## クォータ
<a name="sharing-quotas"></a>

共有名前空間は、リージョンクォータあたりの名前空間所有者の名前空間にのみカウントされます。共有名前空間にコンシューマーによって登録されたインスタンスは、名前空間クォータごとに所有者のインスタンスにカウントされます。コンシューマーが共有名前空間にサービスを作成する場合、サービスに登録されたインスタンスは、サービスクォータあたりのコンシューマーのインスタンスにカウントされます。所有者が共有名前空間にサービスを作成する場合、サービスに登録されたインスタンスは、サービスクォータあたりの所有者のインスタンスにカウントされます。