AWS CloudFormation создает кластер RDS и добавляет его ARN в политику в том же шаблоне - PullRequest
0 голосов
/ 17 июня 2020

Я создаю RDS cluster и в том же шаблоне политику с некоторыми разрешениями, разрешающими определенные действия в этом кластере.

Statement:
  - Effect: Allow
    Actions:
      - 'rds-data:BatchExecuteStatement'
      - 'rds-data:ExecuteStatement'
    Resource: 'arn:aws:rds:us-east-1:1111111111:cluster:production-mycluster-rdscluster-no1yzvzs29sq'

Проблема в том, что AWS::RDS::DBCluster не поддерживает Fn::GetAtt ARN, и, поскольку RDS добавляет эту случайную строку в конец ARN, в этом примере no1yzvzs29sq Я не знаю, как я могу использовать что-то вроде подстановочного знака для «белого списка» части имени .

Я бы хотел что-то вроде arn:aws:rds:us-east-1:1111111111:cluster:production-mycluster-rdscluster-*

Но это не работает. Буду признателен за помощь!

Ответы [ 2 ]

1 голос
/ 17 июня 2020

Вы можете построить ARN на основе имени кластера самостоятельно.

Например:

Statement:
  - Effect: Allow
    Actions:
      - 'rds-data:BatchExecuteStatement'
      - 'rds-data:ExecuteStatement'
    Resource: !Sub 'arn:${AWS::Partition}:rds:${AWS::Region}:${AWS::AccountId}:cluster:${MyDBCluster}'

0 голосов
/ 17 июня 2020

На основе docs :

API данных Amazon RDS не поддерживает указание ресурса ARN в элементе Resource заявления политики IAM. Чтобы разрешить доступ к Amazon RDS Data API, укажите “Resource”: “*” в своей политике.

Итак, на этом этапе похоже, что вы застряли с политикой, которая выглядит как

Statement:
  - Effect: Allow
    Actions:
      - 'rds-data:BatchExecuteStatement'
      - 'rds-data:ExecuteStatement'
    Resource: '*'
...