我为我的身份池配置了 Amazon Cognito Streams,但没有数据发送到我的 Amazon Kinesis 流。如何配置 AWS Identity and Access Management (IAM) 角色,以允许 Amazon Cognito Streams 向我的 Amazon Kinesis 流发送数据?
通过确认以下内容来解决问题:
- 您的 Amazon Cognito 流配置正确,而且流状态设置为已启用。
- 与您的 Amazon Kinesis 流建立信任关系的 IAM 角色与 Amazon Cognito 关联。
- 与 Amazon Cognito 关联的 IAM 角色具有将数据发布到您的 Amazon Kinesis 流的权限。
1. 确保您的流配置正确,而且流状态设置为已启用。
2. 确认与您选择的 Amazon Kinesis 流建立信任关系的 IAM 角色与 Amazon Cognito 关联。以下示例阐释了您可能使用的权限和语法:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "cognito-sync.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
3. 确保与您的 Amazon Cognito 身份池关联的 IAM 角色具有发布数据所必需的 IAM 权限。下面是一个可以与 Kinesis 交互的 IAM 角色的权限和语法的示例:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesis:PutRecord" ], "Resource": [ "arn:aws:kinesis:<REGION>:<ACCOUNTID>:stream/{my kinesis stream}" ] } ] }
4. (可选) 要监控在开始同步操作时接收到流数据,请使用 CloudWatch 监控 IncomingRecords 或 PutRecord.Success 指标。
有关设计与 Kinesis 交互的 IAM 策略和角色的信息,以及示例策略,请参阅使用 IAM 控制对 Amazon Kinesis Streams 资源的访问。