Amazon S3: S3 バケットアクセス、しかし最新の MFA がなく、本番バケットが拒否された - AWS Identity and Access Management

Amazon S3: S3 バケットアクセス、しかし最新の MFA がなく、本番バケットが拒否された

この例では、オブジェクトの更新、追加、削除など、Amazon S3 管理者が任意のバケットへのアクセスを許可する IAM ポリシーを作成する方法を示します。ただし、過去 30 分以内にユーザーが 多要素認証 (MFA) を使用してサインインしていない場合、Production バケットへのアクセスは明示的に拒否されます。このポリシーは、コンソールで、AWS CLI または AWS APIを使用してプログラムでこのアクションを実行するために必要なアクセス許可を付与します。このポリシーを使用するには、サンプルポリシーのイタリック体のプレースホルダーテキストを独自の情報に置き換えます。次に、ポリシーの作成またはポリシーの編集の手順に従います。

このポリシーでは、長期的なユーザーアクセスキーを使用して Production バケットへのプログラムによるアクセスを許可することはありません。これは、aws:MultiFactorAuthAge 条件キーと NumericGreaterThanIfExists 条件演算子を使用して行います。このポリシー条件は、MFA が存在しない場合、または MFA の経過時間が 30 分を超える場合に true を返します。このような場合、アクセスが拒否されます。Production バケットにプログラムでアクセスするには、S3 管理者は GetSessionToken API オペレーションを使用して直近 30 分以内に生成された一時的な認証情報を使用する必要があります。

{ "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"} } } ] }