

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

# AWS Cloud Map 名前空間
<a name="working-with-namespaces"></a>

名前空間は、アプリケーションのサービスを共通の名前と検出可能性レベルでグループ化するために使用される の論理エンティティ AWS Cloud Map です。名前空間を作成するときは、以下を指定します。
+ アプリケーションがインスタンスを検出するために使用する名前。
+ に登録したサービスインスタンスを検出 AWS Cloud Map できる方法。リソースをインターネット経由でパブリックに検出する必要があるか、特定の仮想プライベートクラウド (VPC) でプライベートに検出する必要があるか、または API コールのみで検出する必要があるかを決定できます。

名前空間に関する一般的な概念を次に示します。
+ 名前空間は、作成された AWS リージョン に固有です。を複数のリージョン AWS Cloud Map で使用するには、リージョンごとに名前空間を作成する必要があります。
+ VPC 内の DNS クエリによるインスタンス検出を許可する名前空間を作成すると、 AWS Cloud Map は自動的にプライベート Route 53 ホストゾーンを作成します。このホストゾーンは、複数の VPCsに関連付けることができます。詳細については、*Amazon Route 53 API リファレンス*の「[AssociateVPCWithHostedZone](https://docs.aws.amazon.com/Route53/latest/APIReference/API_AssociateVPCWithHostedZone.html)」を参照してください。

**Topics**
+ [アプリケーションサービスをグループ化する AWS Cloud Map 名前空間の作成](creating-namespaces.md)
+ [AWS Cloud Map 名前空間の一覧表示](listing-namespaces.md)
+ [AWS Cloud Map 名前空間の削除](deleting-namespaces.md)
+ [共有 AWS Cloud Map 名前空間](sharing-namespaces.md)

# アプリケーションサービスをグループ化する AWS Cloud Map 名前空間の作成
<a name="creating-namespaces"></a>

名前空間を作成して、API コールまたは DNS クエリを介してアプリケーションリソースを検出できるわかりやすい名前でアプリケーションのサービスをグループ化できます。

## インスタンス検出オプション
<a name="working-with-namespaces-instance-discovery"></a>

次の表は、 のさまざまなインスタンス検出オプション AWS Cloud Map と、アプリケーションのサービスと設定に応じて作成できる対応する名前空間タイプをまとめたものです。


| 名前空間タイプ | インスタンス検出方法 | 仕組み | 追加情報 | 
| --- | --- | --- | --- | 
| HTTP  | API コール  | アプリケーションのリソースは、 DiscoverInstances API のみを呼び出すことで他のリソースを検出できます。 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloud-map/latest/dg/creating-namespaces.html)  | 
| プライベート DNS | VPC 内の API コールと DNS クエリ | プライベート DNS 名前空間を作成すると、 は対応する Amazon Route 53 プライベートホストゾーン AWS Cloud Map を作成します。アプリケーションのリソースは、 `DiscoverInstances` API を呼び出し、 AWS Cloud Map が自動的に作成するプライベート Route 53 ホストゾーンのネームサーバーをクエリすることで、他のリソースを検出できます。 によって作成されたホストゾーン AWS Cloud Map の名前は名前空間と同じで、*service-name*.*namespace-name* 形式の名前を持つ DNS レコードが含まれています。  Route 53 リゾルバーは、プライベートホストゾーンのレコードを使用して、VPC で発生した DNS クエリを解決します。DNS クエリのドメイン名に一致するレコードが、プライベートホストゾーンに含まれていない場合、Route 53 は、`NXDOMAIN` (存在しないドメイン) でクエリに応答します。   |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloud-map/latest/dg/creating-namespaces.html)  | 
| [パブリック DNS] | API コールとパブリック DNS クエリ | パブリック DNS 名前空間を作成すると、 は対応する Amazon Route 53 パブリックホストゾーン AWS Cloud Map を作成します。アプリケーションのリソースは、 `DiscoverInstances` API を呼び出し、 AWS Cloud Map が自動的に作成するパブリック Route 53 ホストゾーンのネームサーバーをクエリすることで、他のリソースを検出できます。 パブリックホストゾーンの名前は名前空間と同じで、*service-name*.*namespace-name* 形式の名前を持つ DNS レコードが含まれています。  この場合の名前空間名は、登録したドメイン名である必要があります。   |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloud-map/latest/dg/creating-namespaces.html)  | 

## 手順
<a name="create-namespace-steps"></a>

以下の手順に従って、 AWS CLI、 AWS マネジメントコンソール、または SDK for Python を使用して名前空間を作成できます。

------
#### [ AWS マネジメントコンソール ]

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

1. [**名前空間の作成**] を選択します。

1. **名前空間名**には、インスタンスの検出に使用される名前を入力します。
**注記**  
パブリック DNS クエリ用に設定された名前空間は、最上位ドメインで終わる必要があります。例えば、`.com`。
まず名前を Punycode に変換する場合は、国際化ドメイン名 (IDN) を指定します。オンラインコンバーターについては、インターネットで「punycode コンバーター」を検索してください。  
プログラムで名前空間を作成する際、国際化ドメイン名 (IDN) を Punycode に変換することもできます。たとえば、Java を使用する場合は、java.net.IDN ライブラリの `toASCII` メソッドを使って Unicode 値を Punycode に変換できます。

1. (オプション) **名前空間の説明**には、名前空間ページと**名前空間**情報の下に表示される**名前空間に関する情報**を入力します。この情報を使用して、名前空間を簡単に識別できます。

1. **インスタンス検出では**、**API コール**、**VPCs 内の API コールと DNS クエリ**、**API コールとパブリック DNS クエリ**のいずれかを選択して、それぞれ HTTP、プライベート DNS、またはパブリック DNS 名前空間を作成できます。詳細については、「[インスタンス検出オプション](#working-with-namespaces-instance-discovery)」を参照してください。

   選択内容に基づいて、以下の手順を実行します。
   + **VPCs で API コールと DNS クエリ**を選択した場合、**VPC** の場合は、名前空間を関連付ける Virtual Private Cloud (VPC) を選択します。
   + **VPCs で API コールと DNS クエリ**を選択した場合、または **API コールとパブリック DNS クエリ**を選択した場合は、**TTL** に数値を秒単位で指定します。有効期限 (TTL) 値は、DNS リゾルバーが名前空間で作成された Route 53 ホストゾーンの認証開始 (SOA) DNS レコードの情報をキャッシュする期間を決定します。TTL の詳細については、*「Amazon Route 53 デベロッパーガイド*」の[「TTL (秒)](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-values-shared.html#rrsets-values-common-ttl)」を参照してください。

1. (オプション) **タグ** で**タグを追加** を選択し、名前空間にタグを付けるキーと値を指定します。1 つ以上のタグを指定して、 名前空間に追加することができます。タグを使用すると、 AWS リソースをより簡単に管理できるようにリソースを分類できます。詳細については、「[AWS Cloud Map リソースのタグ付け](using-tags.md)」を参照してください。

1. [**名前空間の作成**] を選択します。[ListOperations](https://docs.aws.amazon.com/cloud-map/latest/api/API_ListOperations.html) を使用してオペレーションのステータスを表示できます。詳細については、 *AWS Cloud Map API リファレンス*の[ListOperations](https://docs.aws.amazon.com/cloud-map/latest/api/API_ListOperations.html)」を参照してください。

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

  希望するインスタンスディスカバリタイプのコマンドで名前空間を作成します（*red* の値は独自の値に置換):
  + `[create-http-namespace](https://docs.aws.amazon.com/cli/latest/reference/servicediscovery/create-http-namespace.html)` を使用して HTTP 名前空間を作成します。HTTP 名前空間を使用して登録したサービスインスタンスは、`DiscoverInstances` リクエストを使用して検出できますが、DNS を使用して検出することはできません。

    ```
    aws servicediscovery create-http-namespace --name name-of-namespace
    ```
  + DNS に基づいてプライベート名前空間を作成します。これは、`[create-private-dns-namespace](https://docs.aws.amazon.com/cli/latest/reference/servicediscovery/create-private-dns-namespace.html)`を使用して、指定した Amazon VPC 内でのみ表示されます。 リクエストまたは DNS`DiscoverInstances` を使用して、プライベート DNS 名前空間に登録されたインスタンスを検出できます。

    ```
    aws servicediscovery create-private-dns-namespace --name name-of-namespace --vpc vpc-xxxxxxxxx
    ```
  + `[create-public-dns-namespace](https://docs.aws.amazon.com/cli/latest/reference/servicediscovery/create-public-dns-namespace.html)` を使用して DNS に基づいてパブリック名前空間を作成します。これは、インターネットで表示されます。`DiscoverInstances` リクエストまたは DNS を使用して、プライベート DNS 名前空間で登録したインスタンスを検出できます。

    ```
    aws servicediscovery create-public-dns-namespace --name name-of-namespace
    ```

------
#### [ AWS SDK for Python (Boto3) ]

1. まだ`Boto3`がインストールしていない場合は、[[こちら](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html#installation)]のインストール、設定、使用に関する説明を`Boto3`参照してください。

1. `Boto3`をインポートしてサービスとして`servicediscovery`を使用してください。

   ```
   import boto3
   client = boto3.client('servicediscovery')
   ```

1. 

   希望するインスタンスディスカバリタイプのコマンドで名前空間を作成します（*red* の値は独自の値に置換):
   + `create_http_namespace()` を使用して HTTP 名前空間を作成します。HTTP 名前空間を使用して登録したサービスインスタンスは、`discover_instances()` を使用して検出できますが、DNS を使用して検出することはできません。

     ```
     response = client.create_http_namespace(
         Name='name-of-namespace',
     )
     # If you want to see the response
     print(response)
     ```
   + DNS に基づいてプライベート名前空間を作成します。これは、`create_private_dns_namespace()`を使用して、指定した Amazon VPC 内でのみ表示されます。`discover_instances()`または DNS を使用して、プライベート DNS 名前空間に登録されたインスタンスを検出できます。

     ```
     response = client.create_private_dns_namespace(
         Name='name-of-namespace',
         Vpc='vpc-1c56417b',
     )
     # If you want to see the response
     print(response)
     ```
   + `create_public_dns_namespace()` を使用して DNS に基づいてパブリック名前空間を作成します。これは、インターネットで表示されます。`discover_instances()` リクエストまたは DNS を使用して、プライベート DNS 名前空間で登録したインスタンスを検出できます。

     ```
     response = client.create_public_dns_namespace(
         Name='name-of-namespace',
     )
     # If you want to see the response
     print(response)
     ```
   + レスポンスオブジェクトの例

     ```
     {
         'OperationId': 'gv4g5meo7ndmeh4fqskygvk23d2fijwa-k9302yzd',
         'ResponseMetadata': {
             '...': '...',
         },
     }
     ```

------

## 次の手順
<a name="create-namespace-next-steps"></a>

名前空間を作成したら、名前空間にサービスを作成して、アプリケーション内の特定の目的にまとめて対応するアプリケーションリソースをグループ化できます。サービスは、アプリケーションリソースをインスタンスとして登録するためのテンプレートとして機能します。 AWS Cloud Map サービスの作成の詳細については、「」を参照してください[アプリケーションコンポーネントの AWS Cloud Map サービスの作成](creating-services.md)。

# AWS Cloud Map 名前空間の一覧表示
<a name="listing-namespaces"></a>

名前空間を作成したら、以下の手順に従って作成した名前空間のリストを表示できます。

------
#### [ AWS マネジメントコンソール ]

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

1. ナビゲーションペインで、**名前空間**を選択して名前空間のリストを表示します。名前空間は、名前、説明、インスタンス検出モード、所有者、または名前空間 ID で並べ替えることができます。検索フィールドに名前空間名または ID を入力して、特定の名前空間を見つけて表示することもできます。

------
#### [ AWS CLI ]
+ `[list-namespaces](https://docs.aws.amazon.com/cli/latest/reference/servicediscovery/list-namespaces.html)` コマンドで名前空間を一覧表示します。

  ```
  aws servicediscovery list-namespaces
  ```

------
#### [ AWS SDK for Python (Boto3) ]

1. まだ`Boto3`がインストールしていない場合は、[[こちら](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html#installation)]のインストール、設定、使用に関する説明を`Boto3`参照してください。

1. `Boto3`をインポートしてサービスとして`servicediscovery`を使用してください。

   ```
   import boto3
   client = boto3.client('servicediscovery')
   ```

1. `list_namespaces()` で名前空間を一覧表示します。

   ```
   response = client.list_namespaces()
   # If you want to see the response
   print(response)
   ```

   レスポンスオブジェクトの例

   ```
   {
       'Namespaces': [
           {
               'Arn': 'arn:aws::servicediscovery:us-west-2:123456789012:namespace/ns-xxxxxxxxxxxxxxx',
               'CreateDate': 1585354387.357,
               'Id': 'ns-xxxxxxxxxxxxxxx',
               'Name': 'myFirstNamespace',
               'Properties': {
                   'DnsProperties': {
                       'HostedZoneId': 'Z06752353VBUDTC32S84S',
                   },
                   'HttpProperties': {
                       'HttpName': 'myFirstNamespace',
                   },
               },
               'Type': 'DNS_PRIVATE',
           },
           {
               'Arn': 'arn:aws::servicediscovery:us-west-2:123456789012:namespace/ns-xxxxxxxxxxxxxxx',
               'CreateDate': 1586468974.698,
               'Description': 'My second namespace',
               'Id': 'ns-xxxxxxxxxxxxxxx',
               'Name': 'mySecondNamespace.com',
               'Properties': {
                   'DnsProperties': {
                   },
                   'HttpProperties': {
                       'HttpName': 'mySecondNamespace.com',
                   },
               },
               'Type': 'HTTP',
           },
           {
               'Arn': 'arn:aws::servicediscovery:us-west-2:123456789012:namespace/ns-xxxxxxxxxxxxxxx',
               'CreateDate': 1587055896.798,
               'Id': 'ns-xxxxxxxxxxxxxxx',
               'Name': 'myThirdNamespace.com',
               'Properties': {
                   'DnsProperties': {
                       'HostedZoneId': 'Z09983722P0QME1B3KC8I',
                   },
                   'HttpProperties': {
                       'HttpName': 'myThirdNamespace.com',
                   },
               },
               'Type': 'DNS_PRIVATE',
           },
       ],
       'ResponseMetadata': {
           '...': '...',
       },
   }
   ```

------

# AWS Cloud Map 名前空間の削除
<a name="deleting-namespaces"></a>

名前空間の使用が完了したら、削除できます。削除した名前空間は、サービスインスタンスの登録または検出に使用できなくなります。

**注記**  
 DNS 名前空間を削除すると、 は名前空間の作成時に作成された対応する Amazon Route 53 ホストゾーン AWS Cloud Map を削除します。

名前空間を削除する前に、すべてのサービスインスタンスの登録を解除してから、名前空間で作成されたすべてのサービスを削除する必要があります。詳細については、「[AWS Cloud Map サービスインスタンスの登録解除](deregistering-instances.md)」および「[AWS Cloud Map サービスの削除](deleting-services.md)」を参照してください。

名前空間で作成されたインスタンスの登録を解除し、サービスを削除したら、以下の手順に従って名前空間を削除します。

------
#### [ AWS マネジメントコンソール ]

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

1. ナビゲーションペインで [**名前空間**] を選択します。

1. 削除する名前空間を選択し、**削除**を選択します。

1. 削除を再度選択して、サービスを削除することを確認します****。

------
#### [ AWS CLI ]
+ 名前空間を `[delete-namespace](https://docs.aws.amazon.com/cli/latest/reference/servicediscovery/delete-namespace.html)` コマンドで削除します (*red* の値は独自の値で置き換え)。名前空間に 1 つ以上のサービスが含まれている場合、リクエストは失敗します。

  ```
  aws servicediscovery delete-namespace --id ns-xxxxxxxxxxx
  ```

------
#### [ AWS SDK for Python (Boto3) ]

1. まだ`Boto3`がインストールしていない場合は、[[こちら](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html#installation)]のインストール、設定、使用に関する説明を`Boto3`参照してください。

1. `Boto3`をインポートしてサービスとして`servicediscovery`を使用してください。

   ```
   import boto3
   client = boto3.client('servicediscovery')
   ```

1. 名前空間を `delete_namespace()`で削除します (*red* の値は独自の値で置き換え)。名前空間に 1 つ以上のサービスが含まれている場合、リクエストは失敗します。

   ```
   response = client.delete_namespace(
       Id='ns-xxxxxxxxxxx',
   )
   # If you want to see the response
   print(response)
   ```

   レスポンスオブジェクトの例

   ```
   {
       'OperationId': 'gv4g5meo7ndmeh4fqskygvk23d2fijwa-k98y6drk',
       'ResponseMetadata': {
           '...': '...',
       },
   }
   ```

------

# 共有 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>

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