摘要:我在关联同一 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。”。