2011-10-06 18 views
20

Deseo ofrecer direcciones URL prescritas a mis contenedores s3 con fecha de caducidad. El SDK de .NET genera muy bien estas URL, sino mirándolos hace que me preocupe un poco:¿Qué tan seguras son las claves de acceso Amazon AWS?

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 

¿Por qué necesita para poner mi AWSAccessKey (público) en el URL? ¿No debería ser un poco más confidencial? Sé que no es el secreto, pero todavía no me siento cómodo exponiéndolo en público ...

¿Cuán probable es que alguien que tenga mi clave pública pueda adivinar/brutarizar mi clave privada?

Respuesta

29

La clave de acceso ID no es un secreto y no necesita protección.

De hecho, puede dar URL expirantes a extraños al azar si desea que accedan a un objeto S3. Pueden ver la clave de acceso en esa URL, pero no pueden hacer nada con ella que no hayas autorizado.

referencia: http://docs.amazonwebservices.com/AWSSecurityCredentials/1.0/AboutAWSCredentials.html#AccessKeys

+0

gracias. Sin embargo, no me siento cómodo al compartirlo. Si alguien tiene la parte pública de la similitud, puede darse cuenta de que la parte privada aumenta mucho. Con las teclas, puede acceder a mi entorno completo de aws. Solo porque quería compartir algunos archivos ... – AyKarsi

+3

No, el ID de clave de acceso público no proporciona al atacante ninguna ventaja significativa para determinar la clave de acceso secreta, a menos que, supongo, el atacante ya tenga una lista de claves de acceso secretas válidas y sea justo preguntándome con qué ID de clave de acceso van. –

+2

Dedica tu esfuerzo a la protección de tu clave de acceso secreta. Ocultar su ID de clave de acceso no secreta solo reduce la funcionalidad de AWS que puede usar. –

2

su clave privada es un cálculo unidireccional de algunos parámetros desconocidos, incluso puede que no use la clave pública como parte del algoritmo. saber que AWSAccessKeyId no debería tener ningún efecto en la complejidad de forzar brutales su clave privada en absoluto.

https asegura que lo único que alguien puede decir sobre su conexión (si están olfateando el tráfico de red) es que está entre su IP y la IP de s3.amazonaws.com en el puerto 443. incluso el hecho de que se está conectando amazon tendría que deducirse de los rangos conocidos de direcciones IP asignados a ellos (que de todos modos es bien conocido)

la única manera de acceder a su AWSAccessKeyId en la barra de direcciones es verlo físicamente en su pantalla, instalar algún keylogger o troyano en su computadora o MIM (hombre en el medio) el certificado SSL de amazon, que es extremadamente difícil incluso si alguien tiene acceso a los nodos de red ascendentes necesarios.

leon

+0

¿no es la url completa los parámetros que se incluyen al olfatear? Cuando uso Fiddler, que es mi comprensión de una herramienta de olfateo, veo la url completa. – AyKarsi

+0

no estoy seguro de si está utilizando las funciones de descifrado HTTPS de fiddler (http://www.fiddler2.com/fiddler/help/httpsdecryption.asp) que hacen el MIM que describí localmente (y le piden que ignore las advertencias de certificaciones) . esto no será posible fuera de tu propia máquina. Acabo de probar Fiddler con FF y buscar en https://encrypted.google.com, no aparece nada. solo se muestra Protocolo HTTP cuando se usa. – leeoniya

10

que tipo de acuerdo con la respuesta aceptada, pero no hay una manera fácil de hacer lo que quiera.

Necesita utilizar Amazon IAM para crear un usuario que solo puede leer archivos (en realidad no importa, pero al menos necesitan leer solo el cubo con el que está tratando). A continuación, utilice los usuarios de AWS ID y secreto para generar un enlace de descarga.

Esto no abre todo su cubo, como para ver todo el segmento, la persona necesita el AWSID de este usuario IAM 'lector', más su clave secreta. Aún necesita construir URL de tiempo limitado.

Puede usar la consola de IAM para crear un usuario así en unos pocos minutos. Solo tiene una oportunidad de obtener la clave secreta, en el momento en que hace al usuario (o si gira sus teclas).

Eso debería hacerlo. Este AWSID no tiene acceso a nada y no está vinculado a usted.

En general, Amazon ahora recomienda que su AWSID primario no se use "para nada". Usted crea usuarios con permisos en IAM, luego usa esos códigos. Esto permite una gran flexibilidad de seguridad. Puede desactivar su usuario de solo lectura con una simple acción en la consola de IAM.

Cuestiones relacionadas