Ограничить доступ к корзине S3 возрастом токенов STS? - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть корзина S3, доступ к которой я хочу ограничить, исходя из того, сколько лет используются учетные данные для доступа к ней. Например, если токен, используемый для доступа к корзине, старше X дней, я хочу запретить доступ. Как мне этого добиться? Что-то вроде этой политики -

{
  "Version": "2012-10-17",
  "Statement":        {
            "Sid": "RejectLongTermCredentials",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::${bucket}“,
                "arn:aws:s3:::${bucket}/*”
            ],
            "Condition": {
                aws:TokenIssueTime > 90 days
            }
        }
}

Есть ли способ вычислить age токена? Любая помощь будет оценена!

1 Ответ

0 голосов
/ 26 апреля 2020

То, что вы описываете, очень похоже на предварительно подписанные URL-адреса Amazon S3 .

предварительно подписанный URL-адрес обеспечивает ограниченный по времени доступ к частному объекту .

Представьте себе приложение для обмена фотографиями. Это будет работать так:

  • Все фотографии хранятся в личных корзинах Amazon S3
  • Пользователь аутентифицирует в приложении
  • Когда пользователь желает просмотреть личную фотографию (или приложение создает страницу HTML, которая ссылается на фотографию с использованием тегов <img>), приложение:
    • Проверка , что пользователь имеет право на просмотр этой фотографии
    • Если это так, приложение создает предварительно подписанный URL-адрес , который включает в себя срок действия (например, 5 минут)
  • Когда браузер пользователя получает доступ к предварительно подписанному URL-адресу, Amazon S3 проверяет URL-адрес и проверяет его срок действия:
    • Если это так, тогда закрытый объект закрытый объект возвращается
    • Если это не так, то пользователь получает Access Denied ошибку

Требуется всего пара строк кода для генерации предварительно подписанный URL, и он не требует вызова API для S3.

В отличие от вашего вопроса, приведенный выше ocess не требует использования токенов службы маркеров безопасности (STS) (которые должны быть связаны с пользователями IAM или ролями IAM). Он предназначен для использования приложениями , а не пользователями IAM.

...