Роль не авторизована для выполнения DescribeStream на KinesisStream - PullRequest
1 голос
/ 17 февраля 2020

У меня есть 2 политики для каждого потока S3 и Kinesis, который включает в себя DescribeStream. Политика S3 работает хорошо, но я получаю эту ошибку с KinesisPolicy.

Ресурсы:

  • S3
  • KinesisStream
  • Firehose

Роль:

  • FirehoseRole

Политики:

  • Политика S3 со следующими разрешениями:

          - 's3:AbortMultipartUpload'
          - 's3:GetBucketLocation'
          - 's3:GetObject'
          - 's3:ListBucket'
          - 's3:ListBucketMultipartUploads'
          - 's3:PutObject'
    
  • Политика Kinesis со следующими разрешениями:

          - 'kinesis:PutRecord'
          - 'kinesis:DescribeStreamSummary'
          - 'kinesis:PutRecords'
          - 'kinesis:GetShardIterator'
          - 'kinesis:GetRecords'
          - 'kinesis:DescribeStream'
    

Ошибка:

Роль (firehoseRole) не авторизован для выполнения DescribeStream в MyKinesisStream.

Шаблон формирования облаков


Resources:
  S3Bucket:
    Type: AWS::S3::Bucket
    Properties:
      VersioningConfiguration:
        Status: Enabled

 firehoseRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: 2012-10-17
        Statement:
          - Sid: ''
            Effect: Allow
            Principal:
              Service: firehose.amazonaws.com
            Action: 'sts:AssumeRole'
            Condition:
              StringEquals:
                'sts:ExternalId': !Ref 'AWS::AccountId'

  DeliveryPolicy:
    Type: AWS::IAM::Policy
    Properties:
      PolicyName: firehose_delivery_policy
      PolicyDocument:
        Version: 2012-10-17
        Statement:
          - Effect: Allow
            Action:
              - 's3:AbortMultipartUpload'
              - 's3:GetBucketLocation'
              - 's3:GetObject'
              - 's3:ListBucket'
              - 's3:ListBucketMultipartUploads'
              - 's3:PutObject'
            Resource:
              - !Sub 'arn:aws:s3:::${S3Bucket}'
              - !Sub 'arn:aws:s3:::${S3Bucket}*'
      Roles:
        - !Ref firehoseRole

  KinesisPolicy:
    Type: AWS::IAM::Policy
    Properties:
      PolicyName: kinesis_policy
      PolicyDocument:
        Version: 2012-10-17
        Statement:
          - Effect: Allow
            Action: 
              - 'kinesis:PutRecord'
              - 'kinesis:DescribeStreamSummary'
              - 'kinesis:PutRecords'
              - 'kinesis:GetShardIterator'
              - 'kinesis:GetRecords'
              - 'kinesis:DescribeStream'
            Resource:
              - !GetAtt MyKinesisStream.Arn
      Roles:
        - !Ref firehoseRole

  MyKinesisStream:
    Type: AWS::Kinesis::Stream
    Properties: 
      ShardCount: 1

  DeliveryStream:
    Type: AWS::KinesisFirehose::DeliveryStream
    Properties:
      DeliveryStreamType: KinesisStreamAsSource
      KinesisStreamSourceConfiguration:
        KinesisStreamARN: !GetAtt MyKinesisStream.Arn
        RoleARN: !GetAtt firehoseRole.Arn
      S3DestinationConfiguration:
        BucketARN: !GetAtt S3Bucket.Arn
        BufferingHints:
          IntervalInSeconds: 60
          SizeInMBs: 50
        CompressionFormat: UNCOMPRESSED
        Prefix: firehose/
        RoleARN: !GetAtt firehoseRole.Arn

1 Ответ

1 голос
/ 17 февраля 2020

Мне удалось устранить ошибку. Мне пришлось добавить DependsOn To DeliveryStream и включить обе политики.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...