En 2011, Amazon anunció la disponibilidad del soporte de AWS Identity & Access Management (IAM) para CloudFront. IAM se lanzó en 2010 e incluyó soporte S3. AWS Identity & Access Management (IAM) le permite tener múltiples usuarios dentro de una cuenta de AWS. Si ha utilizado los servicios web de Amazon (AWS), es consciente de que la única forma de administrar el contenido en AWS consistía en proporcionar su nombre de usuario y contraseña o las teclas de acceso. Esta es una verdadera preocupación de seguridad para la mayoría de nosotros. IAM elimina la necesidad de compartir contraseñas y claves de acceso.
Cambiar constantemente nuestra contraseña principal de AWS o generar nuevas claves es solo una solución desordenada cuando un miembro del personal deja nuestro equipo. AWS Identity & Access Management (IAM) fue un buen comienzo para permitir cuentas de usuarios individuales con claves individuales. Sin embargo, somos usuarios de S3 / CloudFront, por lo que hemos estado esperando que CloudFront se agregue a IAM, lo que finalmente sucedió.
Encontré que la documentación de este servicio está un poco dispersa. Hay algunos productos de terceros que ofrecen una gama de soporte para Identity & Access Management (IAM). Pero los desarrolladores suelen ser ahorrativos, por lo que busqué una solución gratuita para administrar IAM con nuestro servicio Amazon S3.
Este artículo explica el proceso de configuración de la interfaz de línea de comandos que admite IAM y la configuración de un grupo / usuario con acceso a S3. Debe tener una configuración de cuenta de Amazon AWS S3 antes de comenzar a configurar Identity & Access Management (IAM). Mi artículo, Uso del servicio de almacenamiento simple de Amazon (S3), lo guiará a través del proceso de configuración de una cuenta de AWS S3.
Estos son los pasos necesarios para configurar e implementar un usuario en IAM. Esto está escrito para Windows, pero puede modificarlo para usarlo en Linux, UNIX y / o Mac OSX.
- Instalar y configurar la interfaz de línea de comandos (CLI)
- Crear un grupo
- Dar acceso de grupo a S3 Bucket y CloudFront
- Crear usuario y agregar a grupo
- Crear perfil de inicio de sesión y crear claves
- Acceso de prueba
Instalar y configurar la interfaz de línea de comandos (CLI)
El kit de herramientas de línea de comandos IAM es un programa Java disponible en las herramientas de desarrolladores de AWS de Amazon. La herramienta le permite ejecutar comandos de API IAM desde una utilidad de shell (DOS para Windows).
- Necesitas estar ejecutando Java 1.6 o superior. Puede descargar la última versión desde Java.com. Para ver qué versión está instalada en su sistema Windows, abra el símbolo del sistema y escriba java -version. Esto supone que java.exe está en su RUTA.
- Descargue el kit de herramientas IAM CLI y descomprima en algún lugar de su disco local.
- Hay 2 archivos en la raíz del kit de herramientas de la CLI que necesita actualizar.
- aws-credential.template: Este archivo contiene sus credenciales de AWS. Agregue su AWSAccessKeyId y su AWSSecretKey, guarde y cierre el archivo.
- cliente-config.template: Solo necesita actualizar este archivo si necesita un servidor proxy. Elimine los # signos y actualice ClientProxyHost, ClientProxyPort, ClientProxyUsername y ClientProxyPassword. Guarde y cierre el archivo.
- El siguiente paso consiste en agregar variables de entorno. Ir al Panel de Control | Propiedades del sistema | Configuraciones avanzadas del sistema | Variables de entorno. Agregue las siguientes variables:
- AWS_IAM_HOME: Establezca esta variable en el directorio donde descomprimió el kit de herramientas de la CLI. Si está ejecutando Windows y lo descomprimió en la raíz de su unidad C, la variable sería C: IAMCli-1.2.0.
- JAVA_HOME: Establezca esta variable en el directorio donde está instalado Java. Esta sería la ubicación del archivo java.exe. En una instalación normal de Windows 7 Java, esto sería algo así como C: Archivos de programa (x86) Java jre6.
- AWS_CREDENTIAL_FILE: Establezca esta variable en la ruta y el nombre de archivo de aws-credential.template que actualizó anteriormente. Si está ejecutando Windows y lo descomprimió en la raíz de su unidad C, la variable sería C: IAMCli-1.2.0 aws-credential.template.
- CLIENTE_CONFIG_FILE: Solo necesita agregar esta variable de entorno si necesita un servidor proxy. Si está ejecutando Windows y lo descomprimió en la raíz de su unidad C, la variable sería C: IAMCli-1.2.0 client-config.template. No agregue esta variable a menos que la necesite.
- Pruebe la instalación yendo a la línea de comandos e ingresando iam-userlistbypath. Siempre y cuando no recibas un error, deberías estar listo.
Todos los comandos IAM se pueden ejecutar desde el símbolo del sistema. Todos los comandos comienzan con "iam-".
Crear un grupo
Hay un máximo de 100 grupos que se pueden crear para cada cuenta de AWS. Si bien puede establecer permisos en IAM a nivel de usuario, usar grupos sería la mejor práctica. Aquí está el proceso para crear un grupo en IAM.
- La sintaxis para crear un grupo es iam-groupcreate -g GROUPNAME -p PATH -v donde las opciones -p y -v son opciones. La documentación completa sobre la interfaz de la línea de comandos está disponible en los documentos de AWS.
- Si quisiera crear un grupo llamado "awesomeusers", ingresaría, iam-groupcreate -g awesomeusers en el símbolo del sistema.
- Puede verificar que el grupo se haya creado correctamente ingresando iam-grouplistbypath en el símbolo del sistema. Si solo hubiera creado este grupo, la salida sería algo así como "arn: aws: iam :: 123456789012: group / awesomeusers", donde el número es su número de cuenta de AWS.
Dar acceso de grupo a S3 Bucket y CloudFront
Las políticas controlan lo que su grupo puede hacer en S3 o CloudFront. De forma predeterminada, su grupo no tendría acceso a nada en AWS.Encontré que la documentación sobre políticas estaba bien, pero al crear un puñado de políticas, hice un poco de prueba y error para hacer que las cosas funcionaran de la forma en que yo quería que funcionaran.
Tienes un par de opciones para crear políticas. Una opción es que puede introducirlos directamente en el Símbolo del sistema. Como podría estar creando una política y ajustándola, me pareció más fácil agregar la política a un archivo de texto y luego cargar el archivo de texto como un parámetro con el comando iam-groupuploadpolicy. Aquí está el proceso usando un archivo de texto y subiéndolo a IAM.
- Use algo como el Bloc de notas e ingrese el siguiente texto y guarde el archivo:
- {
- "Declaración":{
- "Efecto": "Permitir",
- "Acción": "s3: *",
- "Recurso":
- "arn: aws: s3 ::: BUCKETNAME",
- "arn: aws: s3 ::: BUCKETNAME / *"
- },
- {
- "Efecto": "Permitir",
- "Acción": "s3: ListAllMyBuckets",
- "Recurso": "arn: aws: s3 ::: *"
- },
- {
- "Efecto": "Permitir",
- "Acción": "cloudfront: *",
- "Recurso":"*"
- }
- }
- Hay 3 secciones a esta política. El efecto se utiliza para permitir o denegar algún tipo de acceso. La acción es lo que el grupo puede hacer. El recurso se usaría para dar acceso a cubos individuales.
- Puedes limitar las acciones individualmente. En este ejemplo, "Acción": "s3: GetObject", "s3: ListBucket", "s3: GetObjectVersion", el grupo podría listar el contenido de un grupo y descargar objetos.
- La primera sección "Permite" que el grupo realice todas las acciones de S3 para el grupo "BUCKETNAME".
- La segunda sección "permite" que el grupo enumere todos los grupos en S3. Necesitas esto para poder ver la lista de grupos si usas algo como la Consola AWS.
- La tercera sección le da al grupo acceso completo a CloudFront.
Hay muchas opciones cuando se trata de políticas IAM. Amazon tiene una herramienta realmente genial disponible llamada AWS Policy Generator. Esta herramienta proporciona una GUI donde puede crear sus políticas y generar el código real que necesita para implementar la política. También puede consultar la sección Idioma de la política de acceso de la documentación en línea de AWS Identity and Access Management.
Crear usuario y agregar a grupo
El proceso de crear un nuevo usuario y agregar a un grupo para proporcionarles acceso implica un par de pasos.
- La sintaxis para crear un usuario es iam-usercreate -u USERNAME -p PATH -g GROUPS … -k -v donde las opciones -p, -g, -k y -v son opciones. La documentación completa sobre la interfaz de la línea de comandos está disponible en los documentos de AWS.
- Si desea crear un usuario "bob", debe ingresar, iam-usercreate -u bob -g awesomeusers en el símbolo del sistema.
- Puede verificar que el usuario se haya creado correctamente ingresando iam-grouplistusers -g awesomeusers en el símbolo del sistema. Si solo hubiera creado este usuario, la salida sería algo así como "arn: aws: iam :: 123456789012: user / bob", donde el número es su número de cuenta de AWS.
Crear perfil de inicio de sesión y crear claves
En este punto, ha creado un usuario pero debe proporcionarles una forma de agregar y eliminar objetos de S3. Hay 2 opciones disponibles para proporcionar a sus usuarios acceso a S3 utilizando IAM. Puede crear un perfil de inicio de sesión y proporcionar a sus usuarios una contraseña. Pueden usar sus credenciales para iniciar sesión en la consola de Amazon AWS. La otra opción es dar a sus usuarios una clave de acceso y una clave secreta. Pueden usar estas teclas en herramientas de terceros como S3 Fox, CloudBerry S3 Explorer o S3 Browser.
Crear perfil de inicio de sesión
La creación de un perfil de inicio de sesión para los usuarios de S3 les proporciona un nombre de usuario y una contraseña que pueden utilizar para iniciar sesión en la consola de Amazon AWS.
- La sintaxis para crear un perfil de inicio de sesión es iam-useraddloginprofile -u USERNAME -p PASSWORD. La documentación completa sobre la interfaz de la línea de comandos está disponible en los documentos de AWS.
- Si desea crear un perfil de inicio de sesión para el usuario "bob", debe ingresar, iam-useraddloginprofile -u bob -p PASSWORD en el símbolo del sistema.
- Puede verificar que el perfil de inicio de sesión se haya creado correctamente ingresando iam-usergetloginprofile -u bob en el símbolo del sistema. Si ha creado un perfil de inicio de sesión para bob, la salida sería algo así como "El perfil de inicio de sesión existe para el usuario bob".
Crear claves
La creación de una clave de acceso secreta de AWS y la identificación de la clave de acceso de AWS correspondiente permitirá a los usuarios utilizar software de terceros como los mencionados anteriormente. Tenga en cuenta que, como medida de seguridad, solo puede obtener estas claves durante el proceso de adición del perfil de usuario. Asegúrese de copiar y pegar el resultado de la solicitud de comando y guardar en un archivo de texto. Puede enviar el archivo a su usuario.
- La sintaxis para agregar claves para un usuario es iam-useraddkey -u USERNAME. La documentación completa sobre la interfaz de la línea de comandos está disponible en los documentos de AWS.
- Si desea crear claves para el usuario "bob", debe ingresar iam-useraddkey -u bob en el símbolo del sistema.
- El comando dará salida a las teclas que se verían así:
- AKIACOOB5BQVEXAMPLE
- BvQW1IpqVzRdbwPUirD3pK6L8ngoX4PTEXAMPLE
- La primera línea es la ID de la clave de acceso y la segunda es la clave de acceso secreta. Necesitas ambos para el software de terceros.
Acceso de prueba
Ahora que ha creado grupos / usuarios de IAM y ha dado acceso a los grupos mediante políticas, debe probar el acceso.
Acceso a la consola
Sus usuarios pueden usar su nombre de usuario y contraseña para iniciar sesión en la Consola de AWS. Sin embargo, esta no es la página de inicio de sesión de consola regular que se usa para la cuenta principal de AWS. Hay una URL especial que puede usar que proporcionará un formulario de inicio de sesión solo para su cuenta de Amazon AWS. Aquí está la URL para iniciar sesión en S3 para sus usuarios de IAM.
https://AWS-ACCOUNT-NUMBER.signin.aws.amazon.com/console/s3
AWS-ACCOUNT-NUMBER es su número de cuenta habitual de AWS. Puede obtener esto iniciando sesión en el formulario de inicio de sesión del servicio web de Amazon. Inicia sesión y haz clic en Cuenta | Actividad de la cuenta. Su número de cuenta está en la esquina superior derecha. Asegúrate de eliminar los guiones. La URL se vería como https://123456789012.signin.aws.amazon.com/console/s3.
Uso de las teclas de acceso
Puede descargar e instalar cualquiera de las herramientas de terceros que ya se mencionaron en este artículo. Ingrese su ID de clave de acceso y la Clave de acceso secreta según la documentación de la herramienta de terceros.
Recomiendo encarecidamente que cree un usuario inicial y haga que el usuario compruebe completamente que puede hacer todo lo que necesita hacer en S3. Después de verificar uno de sus usuarios, puede continuar con la configuración de todos sus usuarios S3.