Насколько безопасны ключи доступа Amazon AWS? - PullRequest
24 голосов
/ 06 октября 2011

Я хочу предложить заранее назначенные URL-адреса моим корзинам s3 с датой истечения срока действия. .Net SDK прекрасно генерирует эти URL, но их просмотр заставляет меня немного волноваться:

https://s3.amazonaws.com/upload_youtipit/myfile?AWSAccessKeyId=**MYACCESSKEY**&Expires=1317924047&response-content-disposition=attachment;filename=feedback.jpg&response-content-type=image/jpeg&Signature=podKJSrNeFel6%2B0aOneb342H5GA%3D

Почему нужно поместить мой (общедоступный) AWSAccessKey в URL? Разве это не должно быть более конфиденциальным? Я знаю, что это не секрет, но я все еще не чувствую себя комфортно разоблачать это на публике ..

Насколько вероятно, что кто-то, у кого есть мой открытый ключ, сможет угадать / взломать мой закрытый ключ?

Ответы [ 3 ]

31 голосов
/ 07 октября 2011

Идентификатор ключа доступа не является секретом и не нуждается в защите.

На самом деле, вы можете дать URL-адреса с истекающим сроком действия случайным незнакомцам, если вы хотите, чтобы они обращались к объекту S3.Они могут видеть ключ доступа в этом URL, но не могут ничего с ним сделать, если вы не авторизовали.

ссылка: http://docs.amazonwebservices.com/AWSSecurityCredentials/1.0/AboutAWSCredentials.html#AccessKeys

10 голосов
/ 02 декабря 2011

Я вроде согласен с принятым ответом, но есть простой способ сделать то, что вы хотите.

Вам нужно использовать Amazon IAM, чтобы создать пользователя, который может только читать файлы (на самом деле это не так)важно, но они, по крайней мере, должны читать только те ведра, с которыми вы имеете дело).Затем используйте для этого пользователя AWS ID и секрет, чтобы создать ссылку для скачивания.

Это не открывает все ваше ведро, так как для просмотра всего ведра человеку необходим AWSID этого пользователя-читателя IAM плюс его секретный ключ.Вам все еще нужно создать ограниченные по времени URL-адреса.

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

Это должно сделать это.Этот AWSID не имеет доступа ни к чему и не связан с вами.

В общем, Amazon теперь рекомендует, чтобы ваш основной AWSID не использовался «ни для чего».Вы создаете пользователей с разрешениями в IAM, а затем используете эти коды.Это обеспечивает большую гибкость безопасности.Вы можете отключить пользователя, доступного только для чтения, с помощью простого действия в консоли IAM.

2 голосов
/ 06 октября 2011

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

https гарантирует, что единственное, что кто-то может сказать о вашем соединении (если он перехватывает сетевой трафик), это то, что оно находится между вашим IP-адресом и IP-адресом s3.amazonaws.com на порту 443. даже тот факт, что вы подключаетесь к Амазонка должна быть выведена из известных им назначенных диапазонов IP-адресов (которые, вероятно, в любом случае хорошо известны)

единственный способ получить ваш AWSAccessKeyId в адресной строке - это физически увидеть его на экране, установить на свой компьютер какой-нибудь кейлоггер или троянец или MIM (посредник) SSL-сертификат amazon, который чрезвычайно сложно, даже если кто-то имеет доступ к необходимым узлам восходящей сети.

1007 * лев *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...