如何共享 DynamoDB 表以在组织的其他成员之间保持透明?

Posted

技术标签:

【中文标题】如何共享 DynamoDB 表以在组织的其他成员之间保持透明?【英文标题】:How possible to share a DynamoDB table to be transparent among other members of an organization? 【发布时间】:2022-01-20 17:12:47 【问题描述】:

我创建了一个组织,并使用了一个新的管理帐户,称为MA,并邀请了我的个人帐户,称为A。 我想要的是与组织成员共享MA 创建的dynamodb(例如,A 在根目录下)

为此,我创建了一个策略,授予对该表的完全访问权限,附加到一个全新的角色,该角色加入了 A(这是 org 的正式成员),但是不幸的是,来自A 帐户,我看不到表格。

我在哪里做错了?

策略 JSON - dynamodb-products-table-full-access:


    "Version": "2012-10-17",
    "Statement": [
        
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "dynamodb:ListContributorInsights",
                "dynamodb:DescribeReservedCapacityOfferings",
                "dynamodb:ListGlobalTables",
                "dynamodb:ListTables",
                "dynamodb:DescribeReservedCapacity",
                "dynamodb:ListBackups",
                "dynamodb:PurchaseReservedCapacityOfferings",
                "dynamodb:DescribeLimits",
                "dynamodb:ListExports",
                "dynamodb:ListStreams"
            ],
            "Resource": "*"
        ,
        
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "dynamodb:*",
            "Resource": "arn:aws:dynamodb:eu-central-1:<MA ID>:table/products"
        
    ]

Another AWS account 类型附加到A 帐户的角色。

【问题讨论】:

【参考方案1】:

按照以下步骤操作:

在允许访问 DynamoDB 表的“MA”帐户(DynameDB 表所有者)中创建一个角色。 允许“A”帐户中的用户担任“MA”帐户中创建的角色。 使用“切换角色”AWS 控制台功能

“MA”帐户中的角色

它需要访问 DynamoDB 表的权限。关于“dynamodb-products-table-full-access”策略的声明就足够了。 此外,在创建角色时,您需要将“A”帐户定义为可信实体。

允许“A”帐户中的用户担任该角色

在帐户“A”上创建一个具有适当权限的策略,以承担上一步创建的角色:


  "Version": "2012-10-17",
  "Statement": 
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Resource": "arn:aws:iam::<MA_Account_ID>:role/DynamoFullAccess"
    

将该策略添加到相应 IAM 用户或 IAM 用户组的权限策略中:

使用“交换角色”功能

最后,当账户“A”用户进入AWS控制台时,需要使用“切换角色”功能:

输入 MA 帐户 ID 和在该帐户上创建的角色的名称:

他将能够使用该表(注意假定角色为“MA_Account_Dynamo”):


参考:

Delegate access across AWS accounts using IAM roles

【讨论】:

以上是关于如何共享 DynamoDB 表以在组织的其他成员之间保持透明?的主要内容,如果未能解决你的问题,请参考以下文章

AWS AppSync GraphQL - 如何使用 PK/SK 查询而不是扫描整个 dynamoDB 表以获取 graphql 列表 API

如何更改表以在现有列上添加约束

PostgreSQL 从 9 个表继承到 1 个表以在 geoserver 中读取

如何连接两个表以在视图中获取输出

如何更改现有表以在 Oracle 中创建范围分区

如何过滤我的表以在 Oracle 中显示结果?