Parte 1 de 3
En 2011, Amazon anunciou a dispoñibilidade do soporte de AWS Identity & Access Management (IAM) para CloudFront. IAM foi lanzado en 2010 e incluíu soporte S3. A xestión de identidade e acceso AWS (IAM) permítelle ter varios usuarios dentro dunha conta AWS. Se usou Amazon Web Services (AWS), é consciente de que a única forma de xestionar contido en AWS consistía en entregar o seu nome de usuario e contrasinal ou teclas de acceso.
Esta é unha preocupación de seguridade real para a maioría de nós. IAM elimina a necesidade de compartir contrasinais e teclas de acceso.
Cambiar constantemente a nosa principal contraseña AWS ou xerar novas chaves é só unha solución desordenada cando un empregado deixaría o noso equipo. A xestión de identidade e acceso AWS (IAM) foi un bo comezo permitindo que as contas individuais de usuario con chaves individuais. Non obstante, somos un usuario de S3 / CloudFront polo que estivemos vendo que CloudFront sexa engadido ao IAM que finalmente pasou.
Atopei que a documentación deste servizo estivese un pouco dispersa. Hai algúns produtos de terceiros que ofrecen soporte para a xestión de identidade e acceso (IAM). Pero os desenvolvedores adoitan ser economicos polo que buscaba unha solución gratuita para xestionar IAM co noso servizo Amazon S3.
Este artigo percorre o proceso de configuración da interface de liña de comandos que admite IAM e configura un grupo / usuario con acceso S3. Debe ter unha configuración de conta de Amazon AWS S3 antes de comezar a configurar Identity & Access Management (IAM).
O meu artigo, Usando o servizo de almacenamento simple de Amazon (S3), o levará ao longo do proceso de configuración dunha conta AWS S3.
Aquí están os pasos implicados na creación e implementación dun usuario no IAM. Isto está escrito para Windows pero pode modificarse para usar en Linux, UNIX e / ou Mac OSX.
- Instalar e configurar a interface de liña de comandos (CLI)
- Crear un grupo
- Dálle acceso ao grupo a S3 Bucket e CloudFront
- Crea usuario e engade ao grupo
- Crea perfil de acceso e crea chaves
- Proba de acceso
Instalar e configurar a interface de liña de comandos (CLI)
IAM Command Line Toolkit é un programa Java dispoñible nas AWS Developers Tools de Amazon. A ferramenta permítelle executar comandos IAM API desde unha utilidade shell (DOS para Windows).
- Debe estar executando Java 1.6 ou superior. Podes descargar a última versión de Java.com. Para ver cal versión está instalada no seu sistema Windows, abra o símbolo do sistema e escriba java -version. Isto supón que java.exe está no seu PATH.
- Descargue o kit de ferramentas IAM CLI e descompúxea nalgún lugar da unidade local.
- Hai dous ficheiros na raíz do kit de ferramentas CLI que precisas actualizar.
- aws-credential.template: Este ficheiro ten as súas credenciais AWS. Engada o seu AWSAccessKeyId eo seu AWSSecretKey, garde e pecha o ficheiro.
- client-config.template : Só precisa actualizar este ficheiro se precisa un servidor proxy. Elimine os signos # e actualice ClientProxyHost, ClientProxyPort, ClientProxyUsername e ClientProxyPassword. Garda e péchao.
- O seguinte paso implica a adición de variables de ambiente. Ir ao painel de control | Propiedades do sistema Configuración avanzada do sistema Variables de ambiente. Engade as seguintes variables:
- AWS_IAM_HOME : Establece esta variable no directorio onde descomprimiches o conxunto de ferramentas CLI. Se está executando Windows e descomprimilo na raíz da unidade C, a variable sería C: \ IAMCli-1.2.0.
- JAVA_HOME : Establece esta variable no directorio onde está instalado Java. Esta sería a localización do ficheiro java.exe. Nunha instalación Java normal de Windows 7, isto sería algo así como C: \ Program Files (x86) \ Java \ jre6.
- AWS_CREDENTIAL_FILE : Establece esta variable no camiño e no nome do ficheiro da aws-credential.template que actualizaches anteriormente. Se está executando Windows e descomprimilo na raíz da unidade C, a variable sería C: \ IAMCli-1.2.0 \ aws-credential.template.
- CLIENT_CONFIG_FILE : Só precisa engadir esta variable de ambiente se precisa un servidor proxy. Se está executando Windows e descomprimilo na raíz da unidade C, a variable sería C: \ IAMCli-1.2.0 \ client-config.template. Non engada esta variable a menos que o precise.
- Proba a instalación indo ao símbolo do sistema e ingresando a iam-userlistbypath. Sempre que non reciba un erro, ten que ser bo para ir.
Todos os comandos IAM poden executarse desde o símbolo do sistema. Todos os comandos comezan con "iam-".
Crear un grupo
Hai un máximo de 100 grupos que se poden crear para cada conta de AWS. Mentres pode establecer permisos no IAM a nivel de usuario, o uso de grupos sería a mellor práctica. Aquí está o proceso para crear un grupo en IAM.
- A sintaxe para crear un grupo é iam-groupcreate -g GROUPNAME [-p PATH] [-v] onde as -p e -v son opcións. A documentación completa sobre a interface da liña de comandos está dispoñible nos documentos de AWS.
- Se quería crear un grupo chamado "awesomeusers", ingresaría, iam-groupcreate -g awesomeusers no símbolo do sistema.
- Pode comprobar que o grupo foi creado correctamente ingresando iam-grouplistbypath no símbolo do sistema. Se só creara este grupo, a saída sería algo así como "arn: aws: iam :: 123456789012: group / awesomeusers", onde o número é o seu número de conta AWS.
Dálle acceso ao grupo a S3 Bucket e CloudFront
As políticas controlan o que o seu grupo pode facer en S3 ou CloudFront. Por defecto, o teu grupo non tería acceso a nada en AWS. Atopei a documentación sobre as políticas para que estivesen ben pero ao crear un puñado de políticas, fixen un pouco de ensaio e erro para que as cousas funcionen do xeito que quería que funcionasen.
Ten un par de opcións para crear políticas.
Unha opción é que pode inserir directamente no símbolo do sistema. Xa que podería estar creando unha política e axustala, para min parecía máis fácil engadir a política a un ficheiro de texto e logo cargar o ficheiro de texto como parámetro co comando iam-groupuploadpolicy. Aquí tes o proceso usando un ficheiro de texto e subir a IAM.
- Utilice algo así como o Bloc de notas e introduza o seguinte texto e garde o ficheiro:
{
"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": "*"
}
]
} - Hai 3 seccións para esta política. O efecto úsase para permitir ou denegar algún tipo de acceso. A acción son as cousas específicas que o grupo pode facer. O recurso serviríase para dar acceso a cubos individuais.
- Pode limitar as accións individualmente. Neste exemplo, "Acción": ["s3: GetObject", "s3: ListBucket", "s3: GetObjectVersion"], o grupo podería enumerar os contidos dun balde e descargar obxectos.
- A primeira sección "Permite" ao grupo realizar todas as accións S3 para o cubo "BUCKETNAME".
- A segunda sección "Permite" ao grupo para listar todos os cubos en S3. Precisa isto para que realmente poida ver a lista de baldes se usa algo como a consola AWS.
- A terceira sección ofrece ao grupo un acceso total a CloudFront.
Hai moitas opcións nas políticas de IAM. Amazon ten unha ferramenta moi legal dispoñible chamada AWS Policy Generator. Esta ferramenta fornece unha GUI onde pode crear as súas políticas e xerar o código que precisa para implementar a política. Tamén pode consultar a sección de Idioma de política de acceso da documentación en liña de uso da documentación de Identidade e Gestión de Acceso AWS.
Crea usuario e engade ao grupo
O proceso de crear un novo usuario e engadir a un grupo para proporcionarlles acceso implica un par de pasos.
- A sintaxe para crear un usuario é iam-usercreate -u USERNAME [-p PATH] [-g GRUPOS ...] [-k] [-v] onde as -p, -g, -k e -v son opcións. A documentación completa sobre a interface da liña de comandos está dispoñible nos documentos de AWS.
- Se quería crear un usuario "bob", ingresaría, iam-usercreate -u bob -g awesomeusers no símbolo do sistema.
- Podes comprobar que o usuario foi creado correctamente ingresando iam-grouplistusers -g awesomeusers no símbolo do sistema. Se só creara este usuario, a saída sería algo así como "arn: aws: iam :: 123456789012: user / bob", onde o número é o número de conta AWS.
Crear perfil de inicio de sesión e crear teclas
Neste punto, creaches un usuario pero debes proporcionarlles unha forma de engadir e eliminar obxectos de S3.
Hai dúas opcións dispoñibles para proporcionar aos seus usuarios acceso a S3 usando IAM. Podes crear un perfil de acceso e proporcionarlle aos usuarios unha contrasinal. Poden usar as súas credenciais para iniciar sesión na Amazon AWS Console. A outra opción é dar aos usuarios unha clave de acceso e unha chave secreta. Poden usar estas claves en ferramentas de terceiros como S3 Fox, CloudBerry S3 Explorer ou S3 Browser.
Crear perfil de inicio de sesión
A creación dun perfil de inicio de sesión para os seus usuarios de S3 ofrécelos un nome de usuario e unha contraseña que poden usar para iniciar sesión na consola Amazon AWS.
- A sintaxe para crear un perfil de inicio de sesión é iam-useraddloginprofile -u USERNAME -p PASSWORD. A documentación completa sobre a interface da liña de comandos está dispoñible nos documentos de AWS.
- Se quería crear un perfil de inicio de sesión para o usuario "bob", ingresaría, iam-useraddloginprofile -u bob -p PASSWORD no símbolo do sistema.
- Podes comprobar que o perfil de inicio de sesión foi creado correctamente ingresando iam-usergetloginprofile -eu bob no símbolo do sistema. Se creara un perfil de inicio de sesión para bob, a saída sería algo así como "Perfil de inicio de sesión para usuario bob".
Crear teclas
A creación dunha clave de acceso secreto AWS e a identificación de clave de acceso AWS correspondente permitirá aos usuarios utilizar software de terceiros como os mencionados anteriormente. Teña en conta que, como medida de seguridade, só pode obter estas claves durante o proceso de engadir o perfil de usuario. Asegúrese de copiar e pegar a saída do símbolo do sistema e gardar nun ficheiro de texto. Pode enviar o ficheiro ao seu usuario.
- A sintaxe para engadir claves para un usuario é iam-useraddkey [-u USERNAME]. A documentación completa sobre a interface da liña de comandos está dispoñible nos documentos de AWS.
- Se quería crear chaves para o usuario "bob", ingresaría iam-useraddkey -eu bob no símbolo do sistema.
- O comando mostrará as teclas que parecen así:
AKIACOOB5BQVEXAMPLE
BvQW1IpqVzRdbwPUirD3pK6L8ngoX4PTEXAMPLE
A primeira liña é a ID de clave de acceso e a segunda liña é a clave de acceso secreto. Necesitas tanto para o software de terceiros.
Proba de acceso
Agora que creou grupos / usuarios de IAM e dado o acceso de grupos a través de políticas, cómpre probar o acceso.
Acceso á consola
Os seus usuarios poden usar o seu nome de usuario e contrasinal para iniciar sesión na consola AWS. Non obstante, esta non é a páxina de inicio da consola habitual que se usa para a conta AWS principal.
Existe unha URL especial que pode usar que só proporcionará un formulario de inicio de sesión para a súa conta de Amazon AWS. Aquí tes a URL para iniciar sesión en S3 para os teus usuarios de IAM.
https://AWS-ACCOUNT-NUMBER.signin.aws.amazon.com/console/s3
O AWS-ACCOUNT-NUMBER é o teu número de conta AWS regular. Podes facelo entrando no formulario de inicio de sesión de servizos web de Amazon. Inicie sesión e faga clic en Conta | Actividade da conta. O número da túa conta está na esquina superior dereita. Asegúrate de eliminar os guións. O URL veríase como https://123456789012.signin.aws.amazon.com/console/s3.
Usando teclas de acceso
Pode descargar e instalar calquera das ferramentas de terceiros xa mencionadas neste artigo. Introduce o teu ID de clave de acceso e a clave de acceso secreto pola documentación da ferramenta de terceiros.
Recomendo encarecidamente que cree un usuario inicial e que o usuario proba completamente que poden facer todo o que precisan facer en S3. Despois de verificar un dos seus usuarios, pode continuar coa configuración de todos os seus usuarios de S3.
Recursos
Aquí tes algúns recursos para darlle unha mellor comprensión da Identity & Access Management (IAM).
- Comezando co IAM
- IAM Command Line Toolkit
- Amazon AWS Console
- Xerador de políticas AWS
- Usando AWS Identity e Access Management
- Notas de lanzamento do IAM
- Foros de discusión IAM
- Preguntas frecuentes sobre IAM