跨账户 DNS 关联的 AWS 权限

跨账户 DNS 关联的 AWS 权限

摘要:我在关联同一 AWS 区域内不同账户的私有 DNS 托管区域时遇到了权限问题

我有两个 AWS 账户,每个账户中我都创建了一个 VPC 和服务器等。第一个账户(11112222)从私有子网提供一些服务,并带有私有 DNS 托管区域等。

我想向我的第二个帐户 (22223333) 提供我的私有子网上服务的 DNS 查找,该帐户包含一个“项目”VPC 和服务器。我已创建从项目到服务 VPC 的对等连接,并在服务 VPC 端接受了它,设置了路由等。

对于 DNS,我通过运行以下命令创建了关联授权: aws route53 create-vpc-association-authorization --hosted-zone-id Z333AEF1GGC --vpc VPCRegion=eu-west-1,VPCId=vpc-012345678

我可以验证它已经对做了一些事情list-vpc-association-authorizations

在“服务” VPC 上,我很难“接受”关联。我正在运行: aws route53 associate-vpc-with-hosted-zone --hosted-zone-id Z333AEF1GGC --vpc VPCRegion=eu-west-1,VPCId=vpc-abcdef01234

然而,这句话是: An error occurred (AccessDenied) when calling the AssociateVPCWithHostedZone operation: User: arn:aws:sts::22223333:assumed-role/devops/ralph is not authorized to perform: route53:AssociateVPCWithHostedZone on resource: arn:aws:route53:::hostedzone/Z333AEF1GGC

显然我做了大量的谷歌搜索并发现https://forums.aws.amazon.com/thread.jspa?threadID=243780这表明我还需要 ec2:DescribeVPCs。我们的帐户权限相当简单,因为我的假定角色上有“允许*”(对于某些 IAM 操作只有几个拒绝)。我尝试明确添加这两个权限,有和没有明确命名托管区域 ARN。但似乎什么都不起作用。

我觉得我肯定忽略了一些非常明显的东西——你知道是什么吗?有没有更好的方法来实现我想要做的事情?

附加信息(根据评论)

  • 我们对所有用户帐户使用 2FA,然后“承担”一个角色来对我们的帐户执行任何操作(承担一个角色需要 2FA 身份验证)。不过使用 2FA 没有任何技术要求。我们的个人用户帐户几乎没有任何权限直接执行任何操作。

答案1

感谢您的帮助。我认为我们可以将此归结为“用户错误”。我的错误是: aws route53 associate-vpc-with-hosted-zone --hosted-zone-id Z333AEF1GGC --vpc VPCRegion=eu-west-1,VPCId=vpc-012345678 ...实际上应该是: aws route53 associate-vpc-with-hosted-zone --hosted-zone-id Z333AEF1GGC --vpc VPCRegion=eu-west-1,VPCId=vpc-abcdef01234

我在命令中使用了 HZ 端的 VPC ID,其中说明确实说要使用“帐户 B”(即“远程”端)。我甚至设法正确地匿名化了问题中的命令。现在我感觉有点傻 ;-(

答案2

我相信我犯了与拉尔夫同样的错误,但我会努力更好地解释它。

为了两个都您需要使用create-vpc-association-authorization的命令associate-vpc-with-hosted-zone相同--hosted-zone-id[您要共享的源区域 ID]的值 --vpc[这目的地虚拟专用网络(VPC)。

唯一不同的应该是凭证。

我做错的一件事,我认为这是一个很容易掉进去的陷阱,就是假设源账户中的 VPC 在这方面完全重要。因为事实并非如此。

例如,使用帐户配置文件:

aws --profile source_account \
  route53 create-vpc-association-authorization \
  --hosted-zone-id Z00000000000000012345 \
  --vpc VPCRegion=us-west-2,VPCId=vpc-000000000000asdf

aws --profile destination_account \
  route53 associate-vpc-with-hosted-zone \
  --hosted-zone-id Z00000000000000012345 \
  --vpc VPCRegion=us-west-2,VPCId=vpc-000000000000asdf

其中Z00000000000000012345属于source_account,且vpc-000000000000asdf属于destination_account

可以将其视为源帐户询问“我可以将我的区域附加到您的 VPC 吗?”并且目的地回答“是的,您可以将该区域附加到我的 VPC。”。

相关内容