Nano Hash - криптовалюты, майнинг, программирование

IAM-политика S3 работает в симуляторе, но не в реальной жизни

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

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1416387009000",
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets"
            ],
            "Resource": [
                "arn:aws:s3:::*"
            ]
        },
        {
            "Sid": "Stmt1416387127000",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::progress"
            ]
        },
        {
            "Sid": "Stmt1416387056000",
            "Effect": "Allow",
            "Action": [
                "s3:AbortMultipartUpload",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::progress/*"
            ]
        }
    ]
}

Есть три утверждения:

  1. Возможность перечислить все корзины (иначе они ничего не увидят в консоли S3 при входе в систему)
  2. Возможность отображать содержимое сегмента прогресс
  3. Возможность помещать объекты в корзину прогресса

Пользователь может войти в консоль AWS со своим именем пользователя и паролем (и URL-адресом моей пользовательской учетной записи, т. е. https://account.signin.aws.amazon.com/console). Они могут перейти в раздел консоли S3 и просмотреть список всех моих сегментов. Однако если они нажмут прогресс, они просто получат следующее сообщение об ошибке:

Извини! Вам было отказано в доступе для этого.

Я проверил с помощью симулятора политик IAM, есть ли у пользователя разрешение ListBucket на ARN корзины (arn:aws:s3:::progress), и симулятор политик говорит, что пользователю должно быть разрешено.

Я вышел из системы и снова вошел в систему как целевой пользователь на случай, если политики будут обновляться только при выходе из системы, но все равно без радости.

Что я сделал не так? Я что-то пропустил?


  • Я не вижу указанный выше Principal (docs.aws.amazon.com/AmazonS3/latest/dev/) — привязаны ли эти политики к конкретному пользователю? 19.11.2014
  • Да. Это политика, привязанная к пользователю IAM. 19.11.2014

Ответы:


1

Я предполагаю, что при использовании консоли AWS выполняется другой вызов для получения местоположения корзины, прежде чем он сможет перечислить объекты в этой корзине, и у пользователя нет разрешения на выполнение этого вызова. Вам также необходимо предоставить учетной записи доступ к GetBucketLocation. Соответствующий текст из документации

При использовании консоли Amazon S3 обратите внимание, что при выборе корзины консоль сначала отправляет запрос местоположения GET Bucket, чтобы найти регион AWS, в котором развернута корзина. Затем консоль использует региональную конечную точку корзины для отправки запроса GET Bucket (List Objects). В результате, если пользователи собираются использовать консоль, вы должны предоставить разрешение для действия s3:GetBucketLocation, как показано в следующем заявлении политики:

{
   "Sid": "RequiredByS3Console",
   "Action": ["s3:GetBucketLocation"],
   "Effect": "Allow",
   "Resource": ["arn:aws:s3:::*"]
}
19.11.2014
  • Я протестировал сценарий и могу подтвердить, что для корзины требуются разрешения s3:GetBucketLocation. 25.11.2014
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..