DynamoDb - 网关 VPC 端点 "across two accounts"

DynamoDb - Gateway VPC endpoint "across two accounts"

基础设施描述:我在一个 AWS 账户(比如 A1)中有一个发电机数据库 table,在另一个账户(比如 A2)中有一个托管在 EC2 中的应用程序 / VPC-私有子网。此应用程序(在帐户 A2 中)reads/writes 帐户 A1 中的发电机数据库 table。这两个帐户都在同一个组织下,table 和应用程序在同一个 AWS 区域。我在应用程序的帐户 (A2) 中为 dynamo 数据库创建了一个 VPC 端点(比如 VPC-E1),并且路由 table 正确填充了 VPC 端点目标。该应用程序使用 AssumeRole 方法对自身进行授权。我为同一个 IAM 帐户创建了一个角色策略,EC2 使用该帐户仅在源 VPC 终端节点是我创建的终端节点 (VPC-E1) 时才允许连接到 DynamoDB。注意:EC2 通过 NAT 网关连接互联网。

IAM 政策:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": "dynamodb:*",
            "Effect": "Deny",
            "Resource": [
                "My DynamoDb table ARN"
            ],
            "Condition": {
                "StringNotEquals": {
                    "aws:SourceVpce": "VPC-E1"
                }
            }
        }
    ]
}

可达性分析器表示从 Ec2 到 VPC 端点的流量可以正常工作。

问题:流量被策略拒绝,因为 1. 流量不是通过该 VPC 端点发生的,或者我假设流量是通过 Nat 发生的gateway/internet。当我删除此策略时,它工作正常;因为流量可能通过 NAT 网关发生。

有人成功配置过这样的设置吗?即通过 AWS 私有网络(VPC 端点)跨账户访问 DynamoDb。我的目标是通过 AWS 专用网络将流量从一个 account/VPC 发送到 dyanamo db table 所属的另一个帐户。

是的。 DynamoDb 是一种 SaaS,并不托管在您的 VPC 中。我删除了 IAM 策略中的条件。我在帐户(A2 - dynamodb 所属的位置)创建了一个 cloudtrail 日志,以捕获来自特定 dynamodb table 的数据事件。在消费者账户 (A2) 中创建的 VPC 端点出现在目标 AWS 账户 (A1) 的 cloudtrail 日志中(来自特定 DynamoDb table/index 的数据事件)。因此这有效。