En 2011, Amazon anunció la disponibilidad del soporte de AWS Identity & Access Management (IAM) para CloudFront. IAM se lanzó en 2010 e incluyó soporte para S3. AWS Identity & Access Management (IAM) le permite tener varios usuarios dentro de una cuenta AWS. Si ha utilizado Amazon Web Services (AWS), es consciente de que la única manera de gestionar el contenido de AWS es dando su nombre de usuario y contraseña o claves 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 sólo una solución complicada cuando un miembro del personal deja nuestro equipo. AWS Identity & Access Management (IAM) fue un buen comienzo al permitir cuentas de usuario individuales con claves individuales. Sin embargo, somos usuarios de S3/CloudFront, por lo que hemos estado esperando que CloudFront se añada a IAM, lo que finalmente sucedió.
La documentación de este servicio me pareció un poco dispersa. Hay algunos productos de terceros que ofrecen una gama de soporte para la gestión de identidad y acceso (IAM). Pero los desarrolladores suelen ser ahorrativos, así que busqué una solución gratuita para gestionar IAM con nuestro servicio Amazon S3.
Se explica el proceso de configuración de la interfaz de línea de comandos compatible con IAM y la configuración de un grupo/usuario con acceso S3. Es necesario tener una cuenta de Amazon AWS S3 antes de empezar a configurar la gestión de identidad y acceso (IAM). My, Using the Amazon Simple Storage Service (S3), le guiará a través del proceso de creación de una cuenta AWS S3.
A continuación se describen los pasos necesarios para configurar e implementar un usuario en IAM. Esto está escrito para Windows, pero se puede ajustar para su uso en Linux, UNIX y/o Mac OSX.
- Instalar y configurar la interfaz de línea de comandos (CLI)
- Crear un grupo
- Dar acceso al grupo a S3 Bucket y CloudFront
- Crear usuario y añadir al grupo
- Crear perfil de inicio de sesión y crear claves
- Acceso de prueba
Índice de contenidos
Instalar y configurar la interfaz de línea de comandos (CLI)
El kit de herramientas de línea de comandos de IAM es un programa Java disponible en las herramientas para desarrolladores de AWS de Amazon. La herramienta le permite ejecutar comandos de API de IAM desde una utilidad de shell (DOS para Windows).
- Necesitas estar ejecutando Java 1.6 o superior. Puede descargar la última versión de Java.com. Para ver qué versión está instalada en su sistema Windows, abra el símbolo del sistema y escriba java -version. Esto asume que java.exe está en su ruta.
- Descarga el kit de herramientas de IAM CLI y descomprímelo en algún lugar de tu disco local.
- Hay 2 archivos en la raíz del kit de herramientas CLI que necesita actualizar.
- aws-credential.template: Este archivo contiene sus credenciales AWS. Añada su AWSAccessKeyId y su AWSSecretKey, guarde y cierre el archivo.
- clientent-config.template : Sólo necesita actualizar este archivo si necesita un servidor proxy. Quite los signos # y actualice ClientProxyHost, ClientProxyPort, ClientProxyUsername y ClientProxyPassword. Guarde y cierre el archivo.
- El siguiente paso consiste en añadir variables de entorno. Vaya a Panel de control | Propiedades del sistema | Configuración avanzada del sistema | Variables de entorno. Añada las siguientes variables:
- AWS_IAM_HOME : Establezca esta variable en el directorio donde descomprimió el kit de herramientas CLI. Si está ejecutando Windows y lo ha descomprimido en la raíz de su unidad C, la variable sería C:IAMCli-1.2.0.
- JAVA_HOME : Configure 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:Program Files (x86)Javajre6.
- AWS_CREDENTIAL_FILE : Defina esta variable como la ruta y el nombre de archivo de la plantilla aws-credential.template que actualizó anteriormente. Si está ejecutando Windows y lo ha descomprimido en la raíz de su unidad C, la variable sería C:IAMCli-1.2.0aws-credential.template.
- CLIENT_CONFIG_FILE : Sólo necesita añadir esta variable de entorno si necesita un servidor proxy. Si está ejecutando Windows y lo ha descomprimido en la raíz de su unidad C, la variable sería C:IAMCli-1.2.0client-config.template. No añada esta variable a menos que la necesite.
- Pruebe la instalación yendo al símbolo del sistema e introduciendo iam-userlistbypath. Mientras no recibas un error, puedes irte.
Todos los comandos de 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 AWS. Aunque se pueden establecer permisos en IAM a nivel de usuario, el uso de grupos sería la mejor práctica. Este es 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 línea de comandos está disponible en AWS Docs.
- Si quieres crear un grupo llamado «awesomeusers», debes entrar, iam-groupcreate -g awesomeusers at the Command Prompt.
- Puede comprobar que el grupo se ha creado correctamente introduciendo iam-grouplistbypath en el Símbolo del sistema. Si sólo 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 AWS.
Dar acceso al grupo a S3 Bucket y CloudFront
Las políticas controlan lo que su grupo es capaz de 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 era correcta, pero al crear un puñado de políticas, hice un poco de prueba y error para que las cosas funcionaran de la manera en que yo quería que funcionaran.
Usted tiene un par de opciones para crear políticas. Una opción es que puede introducirlos directamente en el Símbolo del sistema. Ya que podría estar creando una política y ajustándola, para mí me pareció más fácil añadir la política en un archivo de texto y luego subir el archivo de texto como parámetro con el comando iam-groupuploadpolicy. Aquí está el proceso usando un archivo de texto y subiendo a IAM.
- Utilice algo como el Bloc de notas, introduzca 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 en esta política. El efecto se utiliza para permitir o denegar algún tipo de acceso. La Acción son las cosas específicas que el grupo puede hacer. El recurso se utilizaría para dar acceso a cubos individuales.
- Puede limitar las Acciones individualmente. En este ejemplo, «Acción»:[«s3:GetObject», «s3:ListBucket», «s3:GetObjectVersion»], el grupo podría listar el contenido de un cubo y descargar objetos.
- La primera sección «Permite» al grupo realizar todas las acciones S3 para el cubo «BUCKETNAME».
- El segundo apartado «Permite» al grupo enumerar todos los cubos de S3. Necesitas esto para que puedas ver la lista de cubos si usas algo como la ConsolaAWS.
- La tercera sección da al grupo acceso completo a CloudFront.
Hay muchas opciones cuando se trata de políticas de IAM. Amazon tiene una herramienta realmente genial disponible llamadaAWS Policy Generator. Esta herramienta proporciona una GUI donde puede crear sus políticas y generar el código que necesita para implementar la política. También puede consultar la sección Lenguaje de la política de acceso de la documentación Usar la gestión de acceso e identidad de AWS en línea.
Crear usuario y añadir al grupo
El proceso de crear un nuevo usuario y añadirlo a un grupo para proporcionarle 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 línea de comandos está disponible en AWS Docs.
- Si desea crear un usuario «bob», debe introducir, iam-usercreate -u bob -g awesomeusers at the Command Prompt.
- Puede comprobar que el usuario se ha creado correctamente introduciendo iam-grouplistusers -g awesomeusers en el Símbolo del sistema. Si sólo 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 AWS.
Crear perfil de inicio de sesión y crear claves
En este punto, ha creado un usuario pero necesita proporcionarle una forma de añadir y eliminar objetos de S3. Hay 2 opciones disponibles para proporcionar a sus usuarios acceso a S3 mediante 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 AWS de Amazon. 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 Amazon AWS Console.
- 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 línea de comandos está disponible en AWS Docs.
- Si desea crear un perfil de inicio de sesión para el usuario «bob», debe introducir, iam-useraddloginprofile -u bob -p PASSWORD en el Símbolo del sistema.
- Puede comprobar que el perfil de inicio de sesión se ha creado correctamente introduciendo 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 «Perfil de inicio de sesión existe para el usuario bob».
Crear claves
La creación de una Clave de Acceso Secreto AWS y su correspondiente ID de Clave de Acceso AWS permitirá a sus usuarios utilizar software de terceros como los mencionados anteriormente. Tenga en cuenta que, como medida de seguridad, sólo puede obtener estas claves durante el proceso de añadir el perfil de usuario. Asegúrese de copiar y pegar la salida desde el Símbolo del sistema y guardarla en un archivo de texto. Puede enviar el archivo a su usuario.
- La sintaxis para añadir claves para un usuario es iam-useraddkey[-u USERNAME]. La documentación completa sobre la interfaz de línea de comandos está disponible en AWS Docs.
- Si desea crear claves para el usuario «bob», debe introducir iam-useraddkey -u bob en el Símbolo del sistema.
- El comando dará salida a las teclas que tendrían un aspecto parecido a este:
- AKIACOOB5BQVEXAMPLE
- BvQW1IpqVzRdbwPUirD3pK6L8ngoX4PTEXAMPLE
- La primera línea es el ID de la Clave de Acceso y la segunda línea es la Clave de Acceso Secreto. Usted necesita ambos para 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 utilizar su nombre de usuario y contraseña para iniciar sesión en la Consola AWS. Sin embargo, esta no es la página regular de inicio de sesión de la consola que se utiliza para la cuenta principal de AWS. Hay una URL especial que puede utilizar que le proporcionará un formulario de inicio de sesión sólo para su cuenta de Amazon AWS. Aquí está la URL para iniciar sesión en S3 para tus usuarios de IAM.
https://AWS-ACCOUNT-NUMBER.signin.aws.amazon.com/console/s3
El número de cuenta AWS es su número de cuenta AWS habitual. Usted puede obtener esto iniciando sesión en el sitio Web de Amazon Web Service Sign Inform. Inicie sesión y haga clic en Cuenta | Actividad de la cuenta. Su número de cuenta está en la esquina superior derecha. Asegúrate de quitar los guiones. La URL se vería algo así como https://123456789012.signin.aws.amazon.com/console/s3.
Uso de claves de acceso
Puede descargar e instalar cualquiera de las herramientas de terceros ya mencionadas en esta página. Introduzca su ID de Clave de Acceso y la Clave de Acceso Secreto según la documentación de la herramienta de terceros.
Le recomiendo encarecidamente que cree un usuario inicial y que le haga una prueba completa de que puede hacer todo lo que necesita hacer en S3. Después de verificar a uno de sus usuarios, puede proceder con la configuración de todos sus usuarios de S3.