如何共享 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