AWS S3에서 익명 다운로드 거부

AWS S3에서 익명 다운로드 거부

공개적으로 다운로드할 수 있는 여러 파일이 포함된 버킷이 있습니다. IAM 사용자만 이러한 파일을 다운로드할 수 있도록 하는 버킷 정책을 설정하고 싶습니다. 지금까지 제가 가지고 있는 정책은 다음과 같습니다.

{
    "Version": "2008-10-17",
    "Id": "Policy1424952346041",
    "Statement": [
        {
            "Sid": "Stmt1424958477350",
            "Effect": "Deny",
            "NotPrincipal": {
                "AWS": "arn:aws:iam::777777777777:root"
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::test/*"
        },
        {
            "Sid": "Stmt1424958477351",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::777777777777:root"
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::test/*"
        }
    ]
}

그러나 IAM 사용자를 포함한 모든 사람을 거부하고 있습니다. 누구든지 여기서 무엇이 잘못되었는지 지적해 주실 수 있나요?

답변1

계정에 있는 IAM 사용자 수에 따라 다음과 같이 두 문 모두에서 계정을 지정할 수 있습니다(작동하는지 확인하기 위해 테스트로 한두 개를 시도해 보십시오). 과거에 실제로 모든 IAM 계정을 포함하기 위해 arn:aws:iam::XXXXXXXXXXXX:root를 가져오는 데 문제가 있었습니다. IAM 사용자를 지정하고 루트 항목을 제거할 수도 있습니다.

{
    "Version": "2008-10-17",
    "Id": "Policy1424952346041",
    "Statement": [
        {
            "Sid": "Stmt1424958477350",
            "Effect": "Deny",
            "NotPrincipal": {
                "AWS": [
                        "arn:aws:iam::777777777777:root",
                        "arn:aws:iam::777777777777:user/user1", 
                        "arn:aws:iam::777777777777:user/user2" ]
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::test/*"
        },
        {
            "Sid": "Stmt1424958477351",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                        "arn:aws:iam::777777777777:root",
                        "arn:aws:iam::777777777777:user/user1",
                        "arn:aws:iam::777777777777:user/user2" ]
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::test/*"
        }
    ]
}

관련 정보