【发布时间】:2021-07-30 05:57:11
【问题描述】:
我使用受限角色通过 Cloudformation 部署资源,遇到了一个错误,让我陷入了一段时间的循环。
我有一个用于创建资源的最小角色。它只有以下允许的操作(在所有资源上)
rds:CreateDBSubnetGroup
ec2:DescribeVpcs
ec2:DescribeSubnets
ec2:DescribeAvailabilityZones
通过上述操作,我可以使用以下 aws cli 命令成功创建数据库子网组:
aws rds create-db-subnet-group \
--db-subnet-group-name testing \
--db-subnet-group-description testing \
--subnet-ids "subnet-abc" "subnet-def"
但是,如果我遗漏了这些 ec2 操作中的任何一个,那么在运行相同的命令时会出现相当误导的错误。
调用 CreateDBSubnetGroup 操作时发生错误 (InvalidParameterValue):缺少必要的凭据。请查看http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAM.ServiceLinkedRoles.html
这让我陷入了查看服务相关角色的长长的兔子洞,这没有任何区别(添加操作 iam:CreateServiceLinkedRole 并没有阻止错误)。我最终通过反复试验和查看 CloudTrail 找到了要添加的 ec2 操作。将 RDS 与 IAM 服务相关角色一起使用的错误完全具有误导性。
我的问题真的是……我对这种情况的评估准确吗,还是我在这里遗漏了一些基本的东西?
如果不是因为我在创建数据库实例时遇到了同样的错误,那就不会那么糟糕了。自然我不再相信这个错误,所以没有看服务链接角色。花了一天时间搜索那个无处可去的兔子洞 - 只是发现在这种情况下它是服务相关角色(简单修复)。
【问题讨论】:
标签: amazon-web-services amazon-ec2 amazon-rds amazon-iam