簡體   English   中英

用戶通過cognito身份驗證后,如何通過用戶憑據訪問s3存儲桶?

[英]How do i pass the user credential to access s3 bucket once user is authenticated by cognito?

我在節點env中使用javascript sdk,希望能夠為每個用戶分配“密鑰” /文件夾。 我可以進行身份​​驗證並使用cognito獲得令牌。 但是,設置以下規則后,我的訪問被拒絕。 我實際上如何將憑據傳遞給訪問用戶對象?

IAM中的策略如下:

 { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*", "s3:Put*" ], "Resource": [ "arn:aws:s3:::myBucket", "arn:aws:s3:::myBucket/*" ], "Condition": { "StringLike": { "s3:prefix": [ "${aws:username}/*" ] } } } ] } 

您的政策有誤。

修復方法如下:在AWS控制台中設置了認知功能后,您將獲得兩個角色,即身份驗證角色和身份驗證。 轉到IAM和資源中的auth角色,看起來像這樣...

“資源”:[“ arn:aws:s3 ::: mybucket / Users / $ {cognito-identity.amazonaws.com:sub}”,]

認知身份:子部分是將文件夾與經過身份驗證的用戶相關聯的部分。

然后在節點中,當您放置或獲取時僅使用相同的密鑰,但是在此位置-$ {cognito-identity.amazonaws.com:sub傳遞用戶的身份ID。 我不確定如何從AWS控制台獲取identityID,但是您絕對可以使用cli獲取它。 只需查看cognito api部分,以了解如何獲取identityID。

希望能有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM