我正在检查RDS中设置IAM auth的步骤。https:/aws.amazon.comremiumsupportknowledge-centerusers-connect-rds-iam。 而其中一个步骤是附加具有适当权限的IAM角色。https:/docs.aws.amazon.comAmazonRDSlatestUserGuideUsingWithRDS.IAMDBAuth.IAMPolicy.html。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"rds-db:connect"
],
"Resource": [
"arn:aws:rds-db:us-east-2:1234567890:dbuser:db-ABCDEFGHIJKL01234/db_user"
]
}
]
}
资源按照这样的格式。
arn:aws:rds-db:region:account-id:dbuser:DbiResourceId/db-user-name
如果我没理解错的话,只要我知道某人的... ... account-id
, DbiResourceId
和 db-user-name
(也许 db-user-name
因为我可以使用通配符?),那么我就能够连接到那个DB实例,对吗?
这听起来不安全。我是否错过了什么?
不,这是不可能的。唯一想与这个资源交互的是在目标账户中承担一个角色。
您可以使用IAM角色来允许不同账户中的某人(受信任的委托人)访问您账户中的资源。角色是授予跨账户访问的主要方式。但是,对于某些 AWS 服务,您可以将策略直接附加到资源上(而不是使用角色作为代理)。要了解角色和基于资源的策略在跨账户访问方面的区别,请参见《IAM 用户指南》中的《IAM 角色与基于资源的策略有何不同》。