我有一個小型節點應用程式,它在本地調整影像大小,然后將其發送到我的 S3 存盤桶。問題是我只想接受特定 IAM 用戶上傳的圖片。我已經嘗試了存盤桶策略的所有組合,但它們似乎都不起作用。他們要么完全禁用上傳,要么允許任何人上傳。當您無法實作如此簡單的事情時,我逐漸失去了對政策方法的糟糕程度的想法。
有什么幫助嗎?
uj5u.com熱心網友回復:
要在 AWS 中管理資源訪問,建議使用 IAM 角色,而不是用戶(尤其是直接使用而不是在組內使用時),因此任何用戶/應用程式/服務都可以在需要時擔任該角色。 https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html
不過,如果這是您想要的,那么應該起作用的政策是:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": ["arn:aws:iam::IdOfYourAWSAccount:user/NameOfYourUser",
"arn:aws:iam::IdOfYourAWSAccount:root"]
},
"Action": "s3:*",
"Resource": ["arn:aws:s3:::YourBucket",
"arn:aws:s3:::YourBucket/*"]
}
]
}
uj5u.com熱心網友回復:
默認情況下,存盤桶是私有的。這很好,因為沒有人有權上傳或下載它。
由于您希望向特定 IAM 用戶授予訪問權限,因此您應該向 IAM 用戶添加策略而不是存盤桶策略。所以,保持 Bucket Policy 為空。
您將向您的 IAM 用戶添加這樣的策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::BUCKETNAME/*"
}
]
}
這允許他們將物件 ( PutObject) 上傳到存盤桶。
uj5u.com熱心網友回復:
所以事實證明,AWS-SDK 會自動從我的電腦發送我保存的 IAM 用戶憑證,即使我沒有在我的代碼中撰寫它。這就是為什么我能夠繼續上傳到我的存盤桶,即使我沒有在我的代碼中傳遞任何憑據。憑據存盤在位于“C:\Users\User.aws”的 .aws 檔案夾中。我只是重命名了這兩個檔案,最后一切都變得有意義了。事實證明我的存盤桶策略一直都在正常作業,只是我一直在發送憑證,這些憑證驗證了我是允許使用該存盤桶的 IAM 用戶。我相信憑據是在使用 CLI 登錄這臺電腦后存盤的。
為什么它會這樣作業,我猜這是另一個話題......
TLDR:如果您似乎能夠在不使用 AWS-SDK 發送任何憑證的情況下與您的私有存盤桶進行互動,請檢查 .aws 檔案夾“C:\Users\User.aws”以獲取可能保存的憑證。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/493368.html
