Amazon S3:S3 儲存貯體的存取,但生產儲存貯體在沒有最新 MFA 的情況下遭拒 - AWS Identity and Access Management

Amazon S3:S3 儲存貯體的存取,但生產儲存貯體在沒有最新 MFA 的情況下遭拒

此範例會示範如何建立身分型政策,允許 Amazon S3 管理員存取任何儲存貯體,包括更新、新增和刪除物件。不過,如果使用者沒有在最近三十分鐘內使用多重要素驗證 (MFA) 登入,則會明確拒絕 Production 儲存貯體的存取權。此政策會授予在主控台中,或是使用 AWS CLI 或 AWS API 以程式設計方式執行此動作的必要許可。若要使用此政策,請將範例政策中的斜體預留位置文字取代為您自己的資訊。然後,遵循建立政策編輯政策中的指示進行操作。

此政策永遠不會使用長期使用者存取金鑰來允許以程式設計方式存取 Production 儲存貯體。這是使用 aws:MultiFactorAuthAge 條件索引鍵搭配 NumericGreaterThanIfExists 條件運算子一起完成。如果 MFA 不存在或 MFA 的存在時間大於 30 分鐘,則此政策條件會傳回 true。在這些情況下會拒絕存取。若要以程式設計方式存取 Production 儲存貯體,S3 管理員必須使用過去 30 分鐘內以 GetSessionToken API 操作產生的臨時憑證。

{ "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:::Production/*", "arn:aws:s3:::Production" ], "Condition": { "NumericGreaterThanIfExists": {"aws:MultiFactorAuthAge": "1800"} } } ] }