[英]How to allow Cognito user pool users to delete objects in S3?
我的移動應用程序使用 AWS Amplify,我在項目中有一個 Cognito 用戶池和一個 S3 存儲桶。 用戶可以將對象放入桶中沒問題,但不能刪除。 我想要做的是讓每個登錄用戶都能夠刪除存儲桶中的文件。
文件路徑例如: my_bucket_name/protected/eu-west-2:de55c2rf-8f1e-836d-88f9-82da662aau6dt/videos/video1
要刪除,我稱之為:
import { Storage } from 'aws-amplify';
import Amplify, { Auth } from 'aws-amplify';
. . .
delFromS3 = async () => {
Storage.remove('protected/eu-west-2:de55c2rf-8f1e-836d-88f9-82da662aau6dt/videos/video1')
.then(result => console.log('Deleted Video from S3'))
.catch(err => console.log('Deleting video from S3 error: ', err));
}
所以我要么需要一種方法來允許認知用戶池中的用戶被授權刪除一個對象。 或者因為我手動知道每個用戶子存儲桶中文件的路徑(例如/protected/eu-west-2:de55c2rf-8f1e-836d-88f9-82da662aau6dt/videos/video1
)只需在我的delFromS3()
函數中傳遞它. 我不認為這是存儲桶策略問題。
或者,如果我需要使用身份池,我如何允許現有用戶池中的所有用戶使用自動生成的身份池來使他們能夠在 S3 中刪除? 目前用戶使用 Cognito 使用Auth.signIn()
進入用戶池
我會調用一個 API 並在您的 Lambda 中檢查安全性/它是誰以及他們是否有權刪除文件。
但是如果將來需要,額外的 api 會為您提供另一層安全性
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.