gpt4 book ai didi

amazon-web-services - 设置 AWS Kinesis cloudformation 模板

转载 作者:行者123 更新时间:2023-12-03 07:36:24 25 4
gpt4 key购买 nike

我是 AWS cloudformation 的新手,需要创建 Kinesis 数据流,然后使用 python 代码将记录写入该流。我能够通过 cloudformation 模板创建数据流,但无法设置权限。我如何附加权限以允许某些用户组使用 python 库写入此 kinesis 数据流?

我当前的模板代码是,

AWSTemplateFormatVersion: '2010-09-09'
Description: 'This template will create an AWS Kinesis DataStream'

Parameters:

CFNStreamName:
Description: This will be used to name the Kinesis DataStream
Type: String
Default: 'data-stream'

CFNRetensionHours:
Description: This will be used to set the retension hours
Type: Number
Default: 168

CFNShardCount:
Description: This will be used to set the shard count
Type: Number
Default: 2

Resources:
MongoCDCStream:
Type: AWS::Kinesis::Stream
Properties:
Name: !Ref CFNStreamName
RetentionPeriodHours: !Ref CFNRetensionHours
ShardCount: !Ref CFNShardCount
StreamEncryption:
EncryptionType: KMS
KeyId: alias/aws/kinesis
Outputs:
MongoCDCStream:
Value: !Ref MongoCDCStream
Export:
Name: !Sub ${AWS::StackName}-MongoCDCStream

最佳答案

您将需要传入(通过 cloudformation 参数)运行 Python 代码的 IAM 角色或用户。

在模板内,创建附加到您传入的 IAM 角色/用户的 IAM 策略或 ManagedPolicy,并分配正确的权限。

AWSTemplateFormatVersion: '2010-09-09'
Description: 'This template will create an AWS Kinesis DataStream'

Parameters:

CFNStreamName:
Description: This will be used to name the Kinesis DataStream
Type: String
Default: 'data-stream'

CFNRetensionHours:
Description: This will be used to set the retension hours
Type: Number
Default: 168

CFNShardCount:
Description: This will be used to set the shard count
Type: Number
Default: 2

PythonCodeRole:
Type: String
# ^- Pass in role here.

Resources:
# Assign permission here.
PythonCodePlicyAssignmen:
Type: AWS::IAM::Policy
Properties:
PolicyDocument:
<assign needed permission here>
Version: "2012-10-17"
Statement:
- Effect: "Allow"
Action:
- "kinesis:*"
Resource: !Ref MongoCDCStream
# ^- here, use !Ref to tie in the correct resource id cleanly.
PolicyName: python-code-permission
Roles: [!Ref PythonCodeRole]

MongoCDCStream:
Type: AWS::Kinesis::Stream
Properties:
Name: !Ref CFNStreamName
RetentionPeriodHours: !Ref CFNRetensionHours
ShardCount: !Ref CFNShardCount
StreamEncryption:
EncryptionType: KMS
KeyId: alias/aws/kinesis
Outputs:
MongoCDCStream:
Value: !Ref MongoCDCStream
Export:
Name: !Sub ${AWS::StackName}-MongoCDCStream

关于amazon-web-services - 设置 AWS Kinesis cloudformation 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55805412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com