我为我的身份池配置了 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 资源的访问。​


此页内容对您是否有帮助? |

返回 AWS Support 知识中心

需要帮助? 请访问 AWS 支持中心

发布时间: 2016 年 11 月 23 日

更新时间: 2018 年 8 月 29 日