繁体   English   中英

控制对Cognito身份的AWS IoT策略操作的访问

[英]Controlling access to AWS IoT policy actions for Cognito identities

IAM的文档指出, AttachUserPolicyDetacherUserPolicyResource属性应设置为托管策略将附加到的用户主体。 虽然iot:AttachPrincipalPolicy的文档iot:AttachPrincipalPolicyiot:DetachPrincipalPolicy不详细,但错误消息

AccessDeniedException:User:arn:aws:sts :: ACCOUNT_ID:assume-role / ROLE / CognitoIdentityCredentials无权执行:iot:AttachPrincipalPolicy on resource:COGNITO_ID

让我相信它期望ARN用于Cognito身份或身份池。 但是,指定Cognito文档中显示的ARN会导致相同的错误。 Cognito身份ARN也未在策略生成器中进行验证。

我应该指定什么资源以便iot:AttachPrincipalPolicyiot:DetachPrincipalPolicy被允许在Cognito身份上附加/分离IoT策略?

在AWS IoT中使用Cognito身份有两个略有不同的路径。 Cognito身份池支持未经身份验证(任何代理可以获取凭据)或经过身份验证的身份(与Cognito用户池,Facebook,OpenID等提供商绑定的用户)。 使用Cognito获取凭据时,AWS IoT支持这两种情况。

使用未经身份验证的案例时,您必须将策略附加到使用Cognito身份池创建的cognito_unauth_role。 身份访问和管理(IAM)控制台是您将策略附加到此角色的位置。 要开始使用,请尝试附加托管策略“AWSIoTDataAccess”。 然后,未经身份验证的Cognito ID可以获取传递给AWS IoT以建立连接的凭据(访问密钥,密钥,会话令牌)。

当使用身份验证的情况下,您必须将政策的是它和你的Cognito身份池为每个验证过的实体创建Cognito ID创建的cognito_auth_role。 AWS IoT API AttachPrincipalPolicy用于将AWS IoT策略附加到Cognito ID。 CLI中API调用的格式如下: aws iot attach-principal-policy --policy-name myPolicy --principal us-east-1:abcd1234-5678-1234-abcd1234efgh 在这种情况下,委托人是经过身份验证的实体的Cognito ID。 只有使用这两个策略,Cognito返回的凭据才能与AWS IoT建立连接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM