Amazon S3: S3 버킷 액세스, 하지만 프로덕션 버킷은 최근 MFA 없이 거부
이 예제는 Amazon S3 관리자가 객체 업데이트, 추가 및 삭제를 포함하여 모든 버킷에 액세스하도록 허용하는 아이덴티티 기반 정책을 생성하는 방법을 보여줍니다. 하지만 사용자가 지난 30분 내에 멀티 팩터 인증(MFA)을 사용하여 로그인하지 않은 경우 amzn-s3-demo-bucket-production
버킷에 대한 액세스를 명시적으로 거부합니다. 이 정책은 콘솔에서 또는 프로그래밍 방식으로 AWS CLI 또는 AWS API를 사용하여 이 작업을 수행하는 데 필요한 권한을 부여합니다. 이 정책을 사용하려면 정책 예제의 기울임꼴 자리 표시자 텍스트
를 본인의 정보로 대체하세요. 그런 다음 정책 생성 또는 정책 편집의 지침을 따릅니다.
이 정책은 장기 사용자 액세스 키를 사용한 amzn-s3-demo-bucket
버킷에 대한 프로그래밍 방식 액세스를 허용하지 않습니다. 이 작업은 NumericGreaterThanIfExists
조건 연산자와 함께 aws:MultiFactorAuthAge
조건 키를 사용해 수행됩니다. 이 정책 조건은 MFA가 없거나 MFA 사용 기간이 30분 이상인 경우 true
를 반환합니다. 이러한 상황에서는 액세스가 거부됩니다. 프로그래밍 방식으로 amzn-s3-demo-bucket-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:::amzn-s3-demo-bucket-production/*", "arn:aws:s3:::amzn-s3-demo-bucket-production" ], "Condition": { "NumericGreaterThanIfExists": {"aws:MultiFactorAuthAge": "1800"} } } ] }