允许ECS任务访问RDS

时间:2020-07-06 16:34:14

标签: amazon-web-services amazon-rds amazon-ecs aws-fargate

我有几个需要连接到RDS的ECS任务(代理,通过Lambda函数执行)。 每个任务都有其自己的角色,这些角色定义用于(例如)访问S3存储桶的策略。

我的每个任务都有自己的安全组。

我现在可以将RDS上的每个任务安全组列入白名单,但这很麻烦,因为每天都会添加新任务。

我认为必须添加允许访问RDS(as described in the docs)的策略:

- PolicyName: RDSAccess
  PolicyDocument:
    Statement:
      - Effect: Allow
        Action:
          - rds-db:connect
        Resource: 'arn:aws:rds-db:REGION:ID:dbuser:DB_ID/DB_USER'

不幸的是,这不起作用-我仍然无法连接到数据库。

如前所述:当将每个任务安全组显式添加到RDS时,我可以毫无问题地连接到数据库。

两个问题:

  1. 误解了文档吗?
  2. 我可以将ECS任务添加到预定义的安全组中,以便只将这个特定的安全组列入白名单吗?

1 个答案:

答案 0 :(得分:1)

通过此策略,您可以使用CLI作为特定的IAM用户/角色来生成临时凭据,您仍然需要通过网络进行入站访问才能连接。

如果要简化此连接过程,可以使用2个安全组选项:

  • 将任务所在的子网范围列入白名单,如果这是一个安全问题,可以将任务移到特定的子网中以简化白名单。
  • 创建一个空白安全组,将其附加到需要连接到RDS的任何任务上,然后将其添加为源入站。该安全组可以在所有任务中重复使用,只是为了确定它应该具有访问权限。
相关问题