Запретить анонимные загрузки в 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 у вас в аккаунте, вы можете указать аккаунты в обоих операторах следующим образом (попробуйте один или два просто для проверки, работает ли это). У меня были проблемы в прошлом с получением arn:aws:iam::XXXXXXXXXXXX:root для фактического охвата всех аккаунтов IAM. Вы также можете попробовать просто указать пользователей IAM и удалить запись root.

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

Связанный контент