我想从外部 AWS 账户写入 Kinesis,我设法通过向 kinesis 流添加基于资源的策略来做到这一点。有没有办法使用 Cloudformation 将基于资源的策略添加到 kinesis 流?我知道我们有
AWS::Lambda::Permission
基于 lambda 资源的政策。试图为运动找到类似的东西。
我尝试了下面的类型,但它说它是无效类型。
MyKinesisStreamPolicy:
Type: AWS::Kinesis::StreamPolicy
Properties:
StreamName: !Ref StreamName
PolicyDocument:
Version: '2012-10-17'
Statement:
- Sid: StreamWriteStatementID
Effect: Allow
Principal:
AWS:
- !Ref SourceAccountNumber
- !Sub 'arn:aws:iam::${SourceAccountNumber}:role/${SourceIAMRole}'
Action:
- 'kinesis:DescribeStreamSummary'
- 'kinesis:ListShards'
- 'kinesis:PutRecord'
- 'kinesis:PutRecords'
Resource: !GetAtt StreamName.Arn
CloudFormation 尚不支持该资源类型。 看 https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_Kinesis.html
因此,如果您想通过 CloudFormation 创建它,您需要创建一个 CustomResource 并通过 API 自行完成。 请参阅 https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-custom-resources.html 了解有关该流程的信息。