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