【发布时间】:2019-11-24 14:32:24
【问题描述】:
我正在尝试允许使用 Cognito 身份池访问 Kinesis 视频流,但在调用 GetDataEndpoint 时会收到 AccessDeniedException。
IAM 角色政策文档:
{
"Sid": "Stream",
"Effect": "Allow",
"Action": [
"kinesisvideoarchivedmedia:GetHLSStreamingSessionURL",
"kinesisvideo:GetDataEndpoint"
],
"Resource": "arn:aws:kinesisvideo:us-west-2:XXXXXXXXXXXX:stream/<stream-name>/<stream-id>"
}
我已经使用策略模拟器测试了策略,它显示GetDataEndpoint 操作在流上是允许的,但是在浏览器中测试它时出现拒绝访问异常:
访问拒绝异常: 用户:arn:aws:sts::XXXXXXXXXXXX:assumed-role//CognitoIdentityCredentials 无权执行:kinesisvideo:GetDataEndpoint 资源:
<resource-name>
这就是我在网站上获取临时凭据的方式:
AWS.config.region = 'us-west-2';AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: <identity-pool>,
});
AWS.config.credentials.get(function (err, data) {
if (!err) {
id = AWS.config.credentials.identityId;
accessKey = AWS.config.credentials.accessKeyId;
secretKey = AWS.config.credentials.secretAccessKey;
token = AWS.config.credentials.sessionToken;
}
});
我已尝试对 Kinesis 视频操作和资源使用通配符,但仍然遇到相同的错误。任何建议将不胜感激。
【问题讨论】:
-
您好,您找到可以分享的解决方案了吗?在这里面临同样的问题..
标签: amazon-web-services amazon-cognito amazon-kinesis