Насколько секретен токен сеанса во временных учетных данных безопасности AWS?

Я хочу сгенерировать предварительно подписанные URL-адреса S3 с использованием временных учетных данных (моя программа работает на узле EC2, к которому привязана роль IAM с политиками, которые я хочу).

Я видел на документы о том, как создать подписанный запрос о том, что я должен предоставить токен сеанса как часть предварительно подписанного URL. Безопасно ли это выставлять на всеобщее обозрение?

В документации по использованию временных учетных данных говорится, что «AWS использует токен сеанса для проверки временных учетных данных безопасности», но может ли кто-нибудь использовать ключ доступа и токен сеанса из временных учетных данных (оба из которых видны в предварительно подписанном URL-адресе) для совершения каких-либо вредоносных действий?

Короче говоря, мой вопрос: насколько секретен токен сеанса от временных учетных данных безопасности AWS? Опасно ли раскрывать само по себе? Что если я открою его с помощью соответствующего ключа доступа?

Заранее спасибо! Я ломал голову над этим, так как в документации STS не очень ясно, насколько секретным является этот токен сеанса, и я определенно хочу делать The Right Thing с точки зрения безопасности.


person CDOct    schedule 15.03.2018    source источник
comment
Если возможно, вам следует использовать SDK AWS для создания предварительно подписанных URL-адресов. Если он излучает ключ доступа в виде открытого текста и токен сеанса в URL-адресе, это, по-видимому, безопасно.   -  person jarmod    schedule 15.03.2018


Ответы (1)


Маркер сеанса и идентификатор ключа доступа бесполезны без соответствующего секрета. С вычислительной точки зрения невозможно реконструировать секрет из ключа + токена + подписи.

Предварительно подписанные URL-адреса предназначены для использования в тех случаях, когда вы хотите предоставить пользователю доступ к определенному ресурсу без фактического предоставления им учетных данных и обязательно включать x-amz-security-token, если подписаны с временными учетными данными. Если токен не указан, служба ответит InvalidAccessKeyId, «Предоставленный вами идентификатор ключа доступа AWS не существует в наших записях» при использовании подписанного URL-адреса.

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

person Michael - sqlbot    schedule 18.03.2018