

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 共用 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 帳戶 或透過 共用一些 AWS Cloud Map 資源 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 使用者指南》**中的[透過 AWS Organizations啟用共用](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html#getting-started-sharing-orgs)。
+ 對於在共用私有 DNS 命名空間中使用 DNS 查詢的服務探索，命名空間擁有者將需要`create-vpc-association-authorization`使用與命名空間和消費者 VPC 相關聯之私有託管區域的 ID 來呼叫 。

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

  命名空間取用者需要呼叫 `associate-vpc-with-hosted-zone`，並指定私有託管區域的 ID。

  ```
  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 Peering Guide* 中的 [Create or delete a VPC Peering connection](https://docs.aws.amazon.com/vpc/latest/peering/create-vpc-peering-connection.html)。
+ 您無法使用 `ListOperations` 列出其他帳戶所執行之共用命名空間上的操作。
+ 共用命名空間不支援標記。

# 共用 AWS Cloud Map 命名空間
<a name="sharing-share"></a>

 當您與其他 AWS 帳戶 （消費者） 共用您擁有的 AWS Cloud Map 命名空間時，您可以讓這些帳戶探索命名空間中 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：//[https://console.aws.amazon.com/cloudmap/](https://console.aws.amazon.com/cloudmap/) 開啟 AWS Cloud Map 主控台。

1. 在**命名空間**頁面**的資源擁有者**下，您可以找到擁有命名空間的 AWS 帳戶 的 ID。

1. 選擇您要識別之命名空間的**網域名稱**。

1. 在**命名空間：*命名空間-名稱***頁面的**命名空間資訊**區段**的資源擁有者**下，您可以找到擁有命名空間的 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。

如需 如何使用 AWS RAM IAM 的詳細資訊，請參閱*AWS RAM 《 使用者指南*》中的[如何使用 AWS RAM IAM](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>

共用命名空間只會計入每個區域配額的命名空間擁有者。在共用命名空間中由取用者註冊的執行個體會計入每個命名空間配額的擁有者執行個體。如果消費者在共用命名空間中建立服務，則在服務中註冊的任何執行個體都會計入每個服務配額的消費者執行個體。如果擁有者在共用命名空間中建立服務，則在服務中註冊的任何執行個體都會計入每個服務配額的擁有者執行個體。