Добавить встроенную политику в шаблон AWS SAM

Я использую шаблон SAM для создания бессерверного приложения.

Используя тег Policies в свойствах ресурса, я могу добавить стандартные политики, например:

Resources:
  QueryFunction:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: query/
      Handler: app.lambda_handler
      Policies:
        - AmazonDynamoDBFullAccess
        - AWSLambdaVPCAccessExecutionRole
      Runtime: python3.7

Проблема в том, что мне нужно прикрепить встроенную политику для доступа только к определенной таблице DynamoDB.

Как я могу поместить эту встроенную политику в шаблон?

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "dynamodb:*",
            "Resource": "dynamo_db_table_endpoint"
        }
    ]
}

Спасибо


person rivamarco    schedule 09.12.2019    source источник


Ответы (1)


Попробуй это:

QueryFunction:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: query/
      Handler: app.lambda_handler
      Policies:
        - AmazonDynamoDBFullAccess
        - AWSLambdaVPCAccessExecutionRole
        - Version: '2012-10-17' # Policy Document
          Statement:
            - Effect: Allow
              Action:
                - dynamodb:*
              Resource: 'arn:aws:dynamodb:*:*:table/dynamo_db_table_endpoint'
      Runtime: python3.7

Amazon DynamoDB: разрешает доступ к определенной таблице

Если вы хотите передать свое tableName в качестве параметра, измените Resource: 'arn:aws:dynamodb:*:*:table/dynamo_db_table_endpoint' на Resource: !Sub 'arn:aws:dynamodb:${AWS::Region}:${AWS::AccountId}:table/${tableName}'

Надеюсь это поможет

person Assael Azran    schedule 09.12.2019
comment
@rivamarco тебе с этим повезло? - person Assael Azran; 09.12.2019
comment
Можем ли мы добавить сюда несколько ресурсов? пример: Ресурс: [‹arn1›, ‹arn2›] - person Paras Thakur; 28.09.2020
comment
Я знаю, что добавляю к этому с опозданием на год, но можете ли вы прикрепить только раздел PolicyDocument или есть способ создать политику, которая также добавляет существующие роли? например Последний пример на этой странице: docs.aws .amazon.com / AWSCloudFormation / latest / UserGuide / - person WillBroadbent; 18.12.2020