Доступ к корзине AWS S3 запрещен - PullRequest
0 голосов
/ 29 августа 2018

Вот политика корзины, которую я реализовал в своей корзине.

    {
    "Id": "Policy1535460101139",
    "Version": "2012-10-17",
    "Statement": [
      {
       "Sid": "Stmt1535460099601",
       "Action": "s3:*",
       "Effect": "Deny",
       "Resource": "arn:aws:s3:::bucketname",
       "Condition": {
       "StringNotEquals": {
          "aws:SourceVpc": "vpc-id"
        }
      },
      "Principal": "*"
    }
  ]
}

Сразу после сохранения этой политики я не могу вывести список или что-либо сделать с моим хранилищем из консоли (у меня полный доступ к s3), и все, что отображает доступ запрещен. Следовательно, когда я пытался скопировать файл из одного из экземпляров ec2 в VPC, копирование было успешным, но я не смог перечислить объекты в корзине. Я получаю сообщение об ошибке «Отказано в доступе» (у экземпляра ec2 есть роль с полным разрешением на ведро). Вот роль, прикрепленная к экземпляру EC2.

    {
     "Version": "2012-10-17",
     "Statement": [
      {
        "Sid": "VisualEditor0",
        "Effect": "Allow",
        "Action": "s3:*",
        "Resource": "arn:aws:s3:::bucketname/*"
      }
    ]
  }

То, что я хочу знать, это то, является ли это странное поведение причиной моей политики ведра, или это может быть что-то еще. Если да, какие-либо советы о том, как я могу изменить свою политику ведра сейчас? Более того, вот скриншот с моей консоли. enter image description here

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Причина, по которой я не смог получить доступ к корзине даже из экземпляра внутри vpc, заключалась в том, что у меня не было конечной точки VPC-S3, присоединенной к таблице маршрутизации подсети, которой принадлежал экземпляр. Слово "aws:SourceVpc" используется, чтобы разрешить множественные соединения конечных точек из одного и того же VPC, как упомянуто в документах, вопреки тому, что я думал, т.е. он будет разрешать все запросы от упомянутого VPC. Таким образом, окончательное решение этого вопроса состоит в том, что вы можете удалить «корзину» из экземпляра, присутствующего внутри упомянутого VPC, при условии, что он принадлежит подсети, к которой присоединена конечная точка VPC - S3.

0 голосов
/ 29 августа 2018

Да, это 100% из-за вашей политики.

Политика гласит:

  • "Effect": "Deny", - Запретить доступ
  • "Principal": "*" - Для всех
  • "Resource": "arn:aws:s3:::bucketname" - к этому ведру
  • "StringNotEquals": {"aws:SourceVpc": "vpc-id" - если запрос не поступает от этого VPC

От того, как это исправить, зависит от ваших требований, которые вы не указали в своем вопросе.

...