我可以使用此策略將檔案從 Z 組中的用戶 A 上傳到我的存盤桶。B 組中的另一個用戶也在 Z 組中,因此具有相同的策略。但是,當我以 B 身份登錄 AWS 管理控制臺時,我無法讀取該檔案。我特別困惑,因為根據策略模擬器,這個策略(加上管理員訪問用戶 B 擁有)應該完全使 B 能夠看到有問題的檔案。
相反,用戶 B 只得到Access Denied.
幫助?我覺得我在這里遺漏了一些非常簡單的東西。
我的完整(如果已編輯)組策略是:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:GetBucketLocation",
"s3:ListBucket"
],
"Resource": "arn:aws:s3:::my-bucket"
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::my-bucket/*",
"arn:aws:s3:::my-bucket"
]
}
]
}
我自動生成的存盤桶策略是:
{
"Version": "2012-10-17",
"Id": "S3-Console-Auto-Gen-Policy-1645709424074",
"Statement": [
{
"Sid": "S3PolicyStmt-DO-NOT-MODIFY-1645709423946",
"Effect": "Allow",
"Principal": {
"Service": "logging.s3.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::my-bucket/*"
}
]
}
我的存盤桶已打開阻止公共訪問。
uj5u.com熱心網友回復:
這里的問題是,即使您登錄到 AWS 控制臺,您的身份驗證也不會擴展到通過物件的簡單 HTTP GET 下載 S3 物件https://mybucket.s3.region.amazonaws.com/myfile.png,如果您將該 URL 粘貼到新選項卡中就會發生這種情況。
相反,您可以生成并使用 S3 預簽名 URL 來下載物件。預簽名 URL 是有時間限制的,并使用您的密鑰進行簽名,因此它包含下載物件所需的所有身份驗證。
您可以使用 S3 控制臺、awscli 或任何 AWS 開發工具包生成預簽名的 S3 URL,例如:
aws s3 presign s3://mybucket/myfile.png
請注意,預簽名 URL 的行為有點像不記名令牌。擁有預簽名 URL 的任何人都可以使用它來下載物件,直到它過期。
您還可以使用 awscli(使用適當的身份驗證)下載單個物件,甚至整個物件桶。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/432561.html
上一篇:找到字串時停止命令-python
