为共享 VPC 中的 Amazon Keyspaces 配置跨账户访问 - Amazon Keyspaces(Apache Cassandra 兼容)
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

为共享 VPC 中的 Amazon Keyspaces 配置跨账户访问

您可以创建不同的 Amazon Web Services 账户,将资源与应用程序分开。例如,您可以为 Amazon Keyspaces 表创建一个账户,为开发环境中的应用程序创建一个不同的账户,为生产环境中的应用程序创建另一个账户。本主题将引导您完成在共享 VPC 中使用接口 VPC 端点为 Amazon Keyspaces 设置跨账户访问所需的配置步骤。

有关如何为 Amazon Keyspaces 配置 VPC 端点的详细步骤,请参阅步骤 3:为 Amazon Keyspaces 创建 VPC 端点

在本例中,我们在共享 VPC 中使用了以下三个账户:

  • Account A:此账户包含基础设施,包括 VPC 端点、VPC 子网和 Amazon Keyspaces 表。

  • Account B:此账户包含开发环境中的一个应用程序,该应用程序需要连接到Account A 中的 Amazon Keyspaces 表。

  • Account C:此账户包含生产环境中的一个应用程序,该应用程序需要连接到Account A 中的 Amazon Keyspaces 表。

示意图:显示了同一组织在同一 Amazon Web Services 区域拥有的三个使用共享 VPC 的不同账户。

Account A 包含Account BAccount C 需要访问的资源,因此Account A信任账户。Account BAccount C 包含需要访问Account A 中的资源的主体,因此Account BAccount C受信账户。信任账户通过共享 IAM 角色向受信账户授予权限。以下程序概述了Account A 中所需的配置步骤。

Account A 所需的配置
  1. 使用 Amazon Resource Access Manager 为子网创建资源共享,并与Account BAccount C 共享私有子网。

    Account BAccount C 现在可以在与它们共享的子网中查看和创建资源。

  2. 创建由 Amazon PrivateLink 提供支持的 Amazon Keyspaces 私有 VPC 端点。这将在 Amazon Keyspaces 服务端点的共享子网和 DNS 条目上创建多个端点。

  3. 创建 Amazon Keyspaces 密钥空间和表。

  4. 创建一个 IAM 角色,该角色拥有对 Amazon Keyspaces 表的完全访问权限、对 Amazon Keyspaces 系统表的读取权限,并且能够描述 Amazon EC2 VPC 资源,如以下策略示例所示。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "CrossAccountAccess", "Effect": "Allow", "Action": [ "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcEndpoints", "cassandra:*" ], "Resource": "*" } ] }
  5. 配置账户 B 和账户 C 可以作为受信任账户代入的 IAM 角色信任策略,如下例所示。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111111111111:root" }, "Action": "sts:AssumeRole", "Condition": {} } ] }

    有关跨账户 IAM 策略的更多信息,请参阅《IAM 用户指南》中的跨账户策略

Account BAccount C 中的配置
  1. Account BAccount C 中创建新角色并附加以下策略,允许主体代入在Account A 中创建的共享角色。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

    允许主体代入共享角色是通过 Amazon Security Token Service (Amazon STS) 的 AssumeRole API 实现的。有关更多信息,请参阅《IAM 用户指南》中的向您拥有的其他 Amazon Web Services 账户中的 IAM 用户提供访问权限

  2. Account BAccount C 中,您可以创建使用 SIGV4 身份验证插件的应用程序,该插件让应用程序可以代入共享角色,通过共享 VPC 中的 VPC 端点连接到位于Account A 的 Amazon Keyspaces 表。有关 SIGV4 身份验证插件的更多信息,请参阅创建凭证以通过编程方式访问 Amazon Keyspaces