2011-10-06 2 views
20

Je veux offrir des URLs présignées à mes seaux s3 avec une date d'expiration. Le .net sdk génère bien ces urls, mais regardant me fait un peu inquiète:Les clés Amazon AWS Access sont-elles sécurisées?

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 

Pourquoi at-il besoin de mettre mon (public) AWSAccessKey dans l'URL? Cela ne devrait-il pas être gardé un peu plus confidentiel? Je sais que ce n'est pas le secret, mais je ne me sens toujours pas à l'aise de l'exposer en public ..

Quelle est la probabilité pour quelqu'un qui a ma clé publique de deviner/bruteforce ma clé privée?

Répondre

29

L'accès ID clé est pas un secret et n'a pas besoin de protection. En fait, vous pouvez donner des URL expirant à des inconnus aléatoires si vous souhaitez qu'ils accèdent à un objet S3. Ils peuvent voir la clé d'accès dans cette URL, mais ne peuvent rien faire avec ce que vous n'avez pas autorisé.

Référence: http://docs.amazonwebservices.com/AWSSecurityCredentials/1.0/AboutAWSCredentials.html#AccessKeys

+0

merci. Néanmoins, je ne me sens pas réconfortant de le partager. Si quelqu'un a la part publique de la likeleyhood il peut comprendre que la partie privée augmente beaucoup. Avec les clés, il peut alors accéder à mon environnement aws complet. Tout simplement parce que je voulais partager certains fichiers .. – AyKarsi

+3

Non, l'ID de clé publique n'offre aucun avantage significatif à l'attaquant dans la détermination de la clé d'accès secrète, sauf si, je suppose, l'attaquant possède déjà une liste de clés d'accès secrètes valides. se demandant quels ID de clé d'accès ils vont avec. –

+2

Dépensez votre effort pour protéger votre clé d'accès secrète. Le masquage de votre ID de clé d'accès non secret réduit simplement la fonctionnalité AWS que vous pouvez utiliser. –

2

votre clé privée est un calcul unidirectionnel de certains paramètres inconnus, elle ne peut même pas utiliser la clé publique elle-même dans le cadre de l'algorithme. connaître votre AWSAccessKeyId ne devrait avoir aucun effet sur la complexité du brut-forcement de votre clé privée. Https garantit que la seule chose que quelqu'un peut dire de votre connexion (s'ils reniflent le trafic réseau) est que c'est entre votre adresse IP et l'adresse IP de s3.amazonaws.com sur le port 443. même le fait que vous vous connectez Amazon doit être déduit des plages d'adresses IP connues qui leur sont attribuées (ce qui est probablement bien connu de toute façon)

la seule façon d'accéder à votre AWSAccessKeyId dans la barre d'adresse est de le voir physiquement sur votre écran, l'installation d'un trousseau de clés ou d'un cheval de Troie sur votre ordinateur ou du certificat SSL d'amazon de MIM (man in the middle-ing), ce qui est extrêmement difficile même si quelqu'un a accès aux nœuds de réseau en amont nécessaires.

leon

+0

L'URL complet ne contient-il pas les paramètres visibles lors de l'analyse? Quand j'utilise Fiddler, qui est ma compréhension d'un outil de reniflage, je vois l'URL complète .. – AyKarsi

+0

Je ne suis pas sûr si vous utilisez les fonctions de décryptage HTTPS de fiddler (http://www.fiddler2.com/fiddler/help/httpsdecryption.asp) qui font le MIM que j'ai décrit localement (et vous obligent à ignorer les avertissements de cert) . Cela ne sera pas possible en dehors de votre propre machine. Je viens de tester Fiddler avec FF et en cherchant https://encrypted.google.com, rien ne se présente. Seul le protocole HTTP est affiché lorsqu'il est utilisé. – leeoniya

10

Je suis plutôt d'accord avec la réponse acceptée, mais il est un moyen facile de faire ce que vous voulez.

Vous devez utiliser Amazon IAM pour créer un utilisateur qui ne peut lire que les fichiers (cela n'a pas vraiment d'importance, mais ils ont au moins besoin d'être lus uniquement dans le compartiment auquel vous avez affaire). Ensuite, utilisez les utilisateurs AWS ID et le secret pour générer un lien de téléchargement.

Cela n'ouvre pas votre compartiment entier, comme pour voir l'ensemble du compartiment dont la personne a besoin de l'AWSID de cet utilisateur 'lecteur' IAM, plus sa clé secrète. Vous devez toujours créer des URL limitées dans le temps.

Vous pouvez utiliser la console IAM pour créer un utilisateur de cette manière en quelques minutes. Vous avez seulement une chance d'obtenir la clé secrète - au moment où vous faites l'utilisateur (ou si vous faites pivoter ses clés).

Cela devrait le faire. Cet AWSID n'a accès à rien et n'est pas lié à vous.

En général, Amazon recommande maintenant que votre AWSID principal ne soit pas utilisé «pour quoi que ce soit». Vous créez des utilisateurs avec des autorisations dans IAM, puis utilisez ces codes. Cela permet une grande flexibilité de sécurité. Vous pouvez désactiver votre utilisateur en lecture seule avec une action simple dans la console IAM.

Questions connexes