Как я могу заблокировать себя и всех администраторов из корзины S3? - PullRequest
0 голосов
/ 20 сентября 2019

Мне нужно создать корзину S3 и назначить права 2 пользователям в нашей компании.Но только этим двум пользователям разрешено иметь любой доступ к нему.

Есть несколько пользователей, включая меня с правами администратора.Мне нужно отозвать доступ ко всем, включая меня.Мне нужно убедиться, что никто не сможет отменить это аннулирование, даже я сам.

Возможно ли это?

Ответы [ 2 ]

1 голос
/ 20 сентября 2019

Вы хотите использовать шаблон NotPrincipal Deny.Использование политики ресурсов S3

  1. Запретить всем, кроме пользователей, имеющих доступ
  2. Разрешить 2 пользователям, которым необходим доступ.Вы можете добавить доступ в политику ресурсов, как я указал ниже, или присоединить его к своей политике идентификации IAM.
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DenyOthers",
            "Effect": "Deny",
            "NotPrincipal": {
                "AWS": [
                    "USER_ARN"
                ]
            },
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::BUCKET",
                "arn:aws:s3:::BUCKET/*"
            ]
        },
        {
            "Sid": "DenyOthers",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "USER_ARN"
                ]
            },
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::BUCKET",
                "arn:aws:s3:::BUCKET/*"
            ]
        }
    ]
}

Однако, поскольку вы являетесь администратором, вы просто заблокировали себя от администратора, пока не станете пользователем root.Таким образом, вы можете рассмотреть возможность предоставления себе привилегий корзины без какого-либо доступа к объектам.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DenyOthers",
            "Effect": "Deny",
            "NotPrincipal": {
                "AWS": [
                    "USER_ARNs",
                    "ADMIN_ARNs"
                ]
            },
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::BUCKET",
                "arn:aws:s3:::BUCKET/*"
            ]
        },
        {
            "Sid": "DenyUsersAdminAccess",
            "Effect": "Deny",
            "Principal": {
                "AWS": [
                    "USER_ARN"
                ]
            },
             "NotAction": [
                "s3:ListBucket"
              ],
            "Resource": [
                "arn:aws:s3:::BUCKET"
            ]
        },
        {
            "Sid": "AllowUsersAccess",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "USER_ARN"
                ]
            },
             "Action": [
                "s3:AbortMultipartUpload",
                "s3:ListMultipartUploadParts",
                "s3:DeleteObject*",
                "s3:PutObject*",
                "s3:GetObject*",
                "s3:RestoreObject*",
                "s3:ListBucket"
              ],
            "Resource": [
                "arn:aws:s3:::BUCKET",
                "arn:aws:s3:::BUCKET/*"
            ]
        },
        {
            "Sid": "DenyAdminObjectAccess",
            "Effect": "Deny",
            "Principal": {
                "AWS": [
                    "ADMIN_ARN"
                ]
            },
             "Action": [
                "s3:*"
              ],
            "Resource": [
                "arn:aws:s3:::BUCKET/*",
            ]
        },
        {
            "Sid": "AllowAdminAccess",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "ADMIN_ARN"
                ]
            },
             "NotAction": [
                "s3:ListBucket"
              ],
            "Resource": [
                "arn:aws:s3:::BUCKET",
            ]
        },
    ]
}

Я кратко остановился на доступе администратора, включив в него только ВЕДРО, а не объект (BUCKET / ).Кроме того, поскольку большинство администраторов имеют доступ S3: в политике идентификации IAM, я добавил явное запрещение администратору доступа к объектам только для того, чтобы убедиться.

ПРЕДУПРЕЖДЕНИЕ: проверьте учетную запись, у которой есть права доступа rootкак политики запрета, так и политики запрета могут легко заблокировать всех.

0 голосов
/ 20 сентября 2019

Лучший способ сделать это - создать отдельную учетную запись AWS , чтобы никто не имел доступа.Это довольно распространено при обработке конфиденциальной информации, такой как данные HR.Учетные записи могут быть подключены через AWS Organizations .

Если вы действительно хотите сделать это в рамках одной учетной записи, вам необходимо создать BucketПолитика, которая запрещает все разрешения , кроме двух указанных пользователей.Единственный способ отменить эти разрешения - через этих двух пользователей (если им предоставлено разрешение на это) или через учетную запись root для учетной записи.

Вещи становятся немного сложными и немного запутанными при использованиитакие Deny политики, так как вы можете непреднамеренно заблокировать всех людей.Поэтому я бы рекомендовал использовать отдельный аккаунт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...