

# 使用共享 AWS Cloud Map 命名空间的 Amazon ECS Service Connect
<a name="service-connect-shared-namespaces"></a>

Amazon ECS Service Connect 支持在同一 AWS 区域内的多个 AWS 账户之间使用共享 AWS Cloud Map 命名空间。此功能使您能够创建分布式应用程序，其中运行在不同 AWS 账户中的服务可以通过 Service Connect 发现彼此并相互通信。共享命名空间使用 AWS Resource Access Manager（AWS RAM）进行管理，它允许安全的跨账户资源共享。有关共享命名空间的更多信息，请参阅《AWS Cloud Map 开发人员指南》**中的 [Cross-account AWS Cloud Map namespace sharing](https://docs.aws.amazon.com/cloud-map/latest/dg/sharing-namespaces.html)。

**重要**  
您必须使用 `AWSRAMPermissionCloudMapECSFullPermission` 托管权限来共享命名空间，Service Connect 才能与命名空间正常协作。

当您将共享 AWS Cloud Map 命名空间与 Service Connect 结合使用时，来自多个 AWS 账户的服务可以参与同一个服务命​​名空间。这对于拥有多个 AWS 账户、需要跨账户边界维护服务间通信同时确保安全性和隔离的组织来说特别有用。

**注意**  
要与不同 VPC 中的服务进行通信，您需要配置 VPC 间连接。这可以使用 VPC 对等连接来实现。有关更多信息，请参阅《Amazon Virtual Private Cloud VPC 对等连接指南》**中的[创建或删除 VPC 对等连接](https://docs.aws.amazon.com/vpc/latest/peering/create-vpc-peering-connection.html)。

## 注意事项
<a name="service-connect-shared-namespaces-considerations"></a>

在将共享 AWS Cloud Map 命名空间与 Service Connect 结合使用时，请注意以下事项：
+ AWS RAM 必须在要使用共享命名空间的 AWS 区域可用。
+ 共享命名空间必须与您的 Amazon ECS 服务和集群位于同一 AWS 区域。
+ 在为 Service Connect 配置共享命名空间时，您必须使用命名空间 ARN，而不是 ID。
+ 所有命名空间类型均受支持：HTTP、私有 DNS 和公有 DNS 命名空间。
+ 如果撤消对共享命名空间的访问，则需要与该命名空间交互的 Amazon ECS 操作（例如 `CreateService`、`UpdateService` 和 `ListServicesByNamespace`）将失败。有关排查共享命名空间权限问题的更多信息，请参阅 [排查将 Amazon ECS Service Connect 与共享的 AWS Cloud Map 命名空间结合使用时出现的问题](service-connect-shared-namespaces-troubleshooting.md)。
+ 对于在共享私有 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
    ```
+ 仅命名空间所有者可以管理资源共享。
+ 命名空间使用者可以在共享命名空间内创建和管理服务，但不能修改命名空间本身。
+ 无论哪个账户创建服务，发现名称在共享命名空间内都必须是唯一的。
+ 共享命名空间中的服务可以发现并连接到有权访问该命名空间的其他 AWS 账户中的服务。
+ 在为 Service Connect 启用 TLS 并使用共享命名空间时，AWS 私有 CA 证书颁发机构（CA）的作用域限定为该命名空间。当对共享命名空间的访问被撤销时，对 CA 的访问也会停止。
+ 在使用共享命名空间时，命名空间所有者和使用者默认情况下无法访问跨账户 Amazon CloudWatch 指标。目标指标仅发布到拥有客户端服务的账户。拥有客户端服务的账户无法访问拥有客户端-服务器服务的账户接收到的指标，反之亦然。要允许跨账户访问指标，请设置 CloudWatch 跨账户可观测性。有关配置跨账户可观测性的更多信息，请参阅《Amazon CloudWatch 用户指南》**中的 [CloudWatch 跨账户可观测性](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html)。有关 Service Connect 的 CloudWatch 指标的更多信息，请参阅 [Amazon ECS CloudWatch 指标](available-metrics.md)。