Политика AWS S3 Bucket - разрешать только определенные типы файлов в папке - PullRequest
1 голос
/ 25 мая 2019

У меня в папке есть определенная папка, которую я хотел бы ограничить только определенными типами файлов. В настоящее время у меня есть следующее:

{
    "Version": "2012-10-17",
    "Id": "Policy1464968545158",
    "Statement": [
        {
            "Sid": "Stmt1464968483619",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:PutObject",
            "Resource": [
                "arn:aws:s3:::my-bucket/my-folder/*"
            ]
            "Condition": {
                "StringNotEquals": {
                  "s3:prefix": ".txt",
                  "s3:prefix": ".doc"
                }
            },
        }
    ]
}

Мне нужно что-то заменить s3:prefix, чтобы вместо просмотра начала файла и пути система смотрела в конце. Я пробовал s3:suffix, но это недопустимое свойство.

Есть ли свойство S3, которое выполняет поиск по подстановочному знаку в конце имени файла, чтобы я мог вносить в белый список только определенные типы файлов для моей папки?

Ответы [ 2 ]

2 голосов
/ 25 мая 2019

Вы должны быть в состоянии определить его в Resource, используя подстановочный знак.Используйте Effect: Allow, если вы хотите, чтобы папка была ограничена .txt и .doc.

{
    "Version": "2012-10-17",
    "Id": "Policy1464968545158",
    "Statement": [
        {
            "Sid": "Stmt1464968483619",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:PutObject",
            "Resource": [
                "arn:aws:s3:::my-bucket/my-folder/*.doc",
                "arn:aws:s3:::my-bucket/my-folder/*.txt"
            ]
        }
    ]
}
0 голосов
/ 25 мая 2019

Так же, как используется эффект запрета, вы можете использовать разрешающий эффект. Оба примера приведены ниже:

Разрешить только определенные и запретить конкретные, если это необходимо ....

{
  "Version": "2012-10-17",
  "Id": "Policy1464968545158",
  "Statement": [
    {
      "Sid": "Stmt1464968483619",
      "Effect": "Allow",
      "Principal": {
        "AWS": "IAM-USER-ARN"
      },
      "Action": "s3:PutObject",
      "Resource": [
        "arn:aws:s3:::bucket-name/*.doc",
        "arn:aws:s3:::bucket-name/*.txt"
      ]
    },
    {
      "Sid": "Stmt1464968483619",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:PutObject",
      "NotResource": [
        "arn:aws:s3:::bucket-name/*.png",
        "arn:aws:s3:::bucket-name/*.gif"
      ]
    }
  ]
}
...