本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon S3:S3 儲存貯體的存取,但生產儲存貯體在沒有最新 MFA 的情況下遭拒
此範例會示範如何建立身分型政策,允許 Amazon S3 管理員存取任何儲存貯體,包括更新、新增和刪除物件。不過,如果使用者沒有在最近三十分鐘內使用多重要素驗證 (MFA) 登入,則會明確拒絕 amzn-s3-demo-bucket-production
儲存貯體的存取權。此政策會授予在主控台中執行此動作或使用 或 AWS CLI AWS API 以程式設計方式執行此動作所需的許可。若要使用此政策,請將範例政策中的斜體預留位置文字
取代為您自己的資訊。然後,遵循建立政策或編輯政策中的指示進行操作。
此政策永遠不會使用長期使用者存取金鑰來允許以程式設計方式存取 amzn-s3-demo-bucket
儲存貯體。這是使用 aws:MultiFactorAuthAge
條件索引鍵搭配 NumericGreaterThanIfExists
條件運算子一起完成。如果 MFA 不存在或 MFA 的存在時間大於 30 分鐘,則此政策條件會傳回 true
。在這些情況下會拒絕存取。若要以程式設計方式存取 amzn-s3-demo-bucket-production
儲存貯體,S3 管理員必須使用過去 30 分鐘內以 GetSessionToken API 操作產生的臨時憑證。
- JSON
-
-
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ListAllS3Buckets",
"Effect": "Allow",
"Action": ["s3:ListAllMyBuckets"],
"Resource": "arn:aws:s3:::*"
},
{
"Sid": "AllowBucketLevelActions",
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource": "arn:aws:s3:::*"
},
{
"Sid": "AllowBucketObjectActions",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:PutObjectAcl",
"s3:GetObject",
"s3:GetObjectAcl",
"s3:DeleteObject"
],
"Resource": "arn:aws:s3:::*/*"
},
{
"Sid": "RequireMFAForProductionBucket",
"Effect": "Deny",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::amzn-s3-demo-bucket-production/*",
"arn:aws:s3:::amzn-s3-demo-bucket-production"
],
"Condition": {
"NumericGreaterThanIfExists": {"aws:MultiFactorAuthAge": "1800"}
}
}
]
}