使用共享 VPC 中的 VPC 端点配置 Amazon Keyspaces 的跨账户访问 - Amazon Keyspaces(Apache Cassandra 兼容)

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

使用共享 VPC 中的 VPC 端点配置 Amazon Keyspaces 的跨账户访问

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

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

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

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

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

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

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

Account A:111111111111是包含Account B:222222222222Account C:333333333333需要访问的资源(Amazon Keyspaces 表)的账户,信任账户Account A:111111111111也是如此。 Account B:222222222222Account C:333333333333委托人需要访问其中的资源(Amazon Keyspaces 表)Account A:111111111111的账户也是值得信Account B:222222222222Account C:333333333333账户。信任账户通过共享 IAM 角色向受信账户授予权限。以下程序概述了Account A:111111111111 中所需的配置步骤。

Account A:111111111111 所需的配置
  1. 用于 AWS Resource Access Manager 为子网创建资源共享并与Account B:222222222222和共享私有子网Account C:333333333333

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

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

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

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

    { "Version": "2012-10-17", "Statement": [ { "Sid": "CrossAccountAccess", "Effect": "Allow", "Action": [ "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcEndpoints", "cassandra:*" ], "Resource": "*" } ] }
  5. 在中为 IAM 角色配置信任策略Account B:222222222222Account A:111111111111以便Account C:333333333333可以将该角色代入可信账户。如以下示例所示。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::222222222222:role/Cross-Account-Role-B", "arn:aws:iam::333333333333:role/Cross-Account-Role-C" ] }, "Action": "sts:AssumeRole", "Condition": {} } ] }

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

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

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

    允许委托人担任共享角色是使用 AWS Security Token Service (AWS STS) 的 AssumeRole API 实现的。有关更多信息,请参阅 IAM 用户指南中的向您拥有 AWS 账户 的另一个 IAM 用户提供访问权限。

  2. Account B:222222222222和中Account C:333333333333,您可以创建使用 SIGV4 身份验证插件的应用程序,该插件允许应用程序扮演共享角色,Account A:111111111111通过共享 VPC 中的 VPC 终端节点连接到位于中的 Amazon Keyspaces 表。有关 SIGV4 身份验证插件的更多信息,请参阅创建用于通过编程方式访问 Amazon Keyspaces 的凭证。。有关如何将应用程序配置为在另一个 AWS 账户中扮演角色的更多信息,请参阅工具参考指南中的身份验证AWS SDKs 和访问权限