【问题标题】:Am I allowed to connect to arbitrary RDS DB instances if given the RDS DbiResourceId?如果给定 RDS DbiResourceId,我是否可以连接到任意 RDS 数据库实例?
【发布时间】:2020-05-20 01:36:29
【问题描述】:

我正在检查在 RDS 中设置 IAM 身份验证的步骤:https://aws.amazon.com/premiumsupport/knowledge-center/users-connect-rds-iam/ 其中一个步骤是附加具有适当权限的 IAM 角色:https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.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-idDbiResourceIddb-user-name(或者可能是 db-user-name,因为我可以使用通配符?),那么我就可以连接到该数据库实例,对吧?

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

【问题讨论】:

    标签: amazon-web-services amazon-ec2 amazon-rds amazon-iam


    【解决方案1】:

    不,这是不可能的。唯一希望与此资源交互的方式是在目标帐户中担任角色。

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

    【讨论】:

      猜你喜欢
      • 2020-11-26
      • 2019-07-05
      • 2017-05-22
      • 1970-01-01
      • 2021-10-06
      • 1970-01-01
      • 2013-01-28
      • 1970-01-01
      • 2016-09-30
      相关资源
      最近更新 更多