如果给我RDS DbiResourceId,我是否可以连接到任意的RDS DB实例?

问题描述 投票:1回答:1

我正在检查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, DbiResourceIddb-user-name (也许 db-user-name 因为我可以使用通配符?),那么我就能够连接到那个DB实例,对吗?

这听起来不安全。我是否错过了什么?

amazon-web-services amazon-ec2 amazon-rds amazon-iam
1个回答
3
投票

不,这是不可能的。唯一想与这个资源交互的是在目标账户中承担一个角色。

您可以使用IAM角色来允许不同账户中的某人(受信任的委托人)访问您账户中的资源。角色是授予跨账户访问的主要方式。但是,对于某些 AWS 服务,您可以将策略直接附加到资源上(而不是使用角色作为代理)。要了解角色和基于资源的策略在跨账户访问方面的区别,请参见《IAM 用户指南》中的《IAM 角色与基于资源的策略有何不同》。

© www.soinside.com 2019 - 2024. All rights reserved.