0

基础设施描述:我在一个 AWS 账户(比如 A1)中有一个 dynamo db 表,在另一个账户(比如 A2)/VPC-private 子网中托管在 EC2 中的应用程序。此应用程序(在帐户 A2 中)读取/写入帐户 A1 中的 dynamo db 表。两个账户都在同一个组织下,表和应用程序在同一个 AWS 区域。我为应用程序帐户 (A2) 中的 dynamo db 创建了一个 VPC 端点(例如 VPC-E1),并且路由表正确填充了 VPC 端点目标。应用程序使用 AssumeRole 方法授权自己。我为 EC2 使用的同一 IAM 账户创建了一个角色策略,仅当源 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 网关/互联网发生的。当我删除此策略时,它可以正常工作;因为流量可能通过 NAT 网关发生。

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

4

1 回答 1

0

是的。DynamoDb 是一种 SaaS,不托管在您的 VPC 中。我删除了 IAM 政策中的条件。我在帐户(A2 - dynamodb 所属)创建了一个 cloudtrail 日志,以从特定的 dynamodb 表中捕获数据事件。在使用者账户 (A2) 中创建的 VPC 终端节点出现在目标 AWS 账户 (A1) 的 cloudtrail 日志(来自特定 DynamoDb 表/索引的数据事件)中。因此这是有效的。

于 2021-12-23T04:08:39.467 回答