Configuración de la autenticación de IAM Identity Center con la AWS CLI
En este tema se proporcionan instrucciones sobre cómo configurar laAWS CLI con AWS IAM Identity Center (IAM Identity Center) para recuperar las credenciales que permiten ejecutar comandos de la AWS CLI. Existen principalmente dos formas de autenticar a los usuarios con IAM Identity Center para que obtengan las credenciales que permiten ejecutar los comandos de AWS CLI a través del archivo config
:
-
(Recomendada) Configuración del proveedor de token de SSO.
-
Configuración heredada no actualizable.
Para obtener información sobre el uso de autenticación de portador, que no utiliza ID de cuenta ni rol, consulte Configuración para utilizar la AWS CLI con CodeCatalyst en la Guía del usuario de Amazon CodeCatalyst.
nota
Para ver un proceso guiado sobre el uso de IAM Identity Center con los comandos de la AWS CLI, consulte Tutorial: uso de IAM Identity Center para ejecutar comandos de Amazon S3 en la AWS CLI.
Temas
Requisitos previos
-
Instale la AWS CLI. Para obtener más información, consulte Instalación o actualización de la versión más reciente de AWS CLI.
-
Primero debe tener acceso a la autenticación de SSO en el Centro de identidades de IAM. Elija uno de los siguientes métodos para acceder a las credenciales de AWS.
Siga las instrucciones en Introducción en la Guía del usuario de AWS IAM Identity Center. Este proceso activa IAM Identity Center, crea un usuario administrativo y agrega un conjunto apropiado de permisos de privilegio mínimo.
nota
Cree un conjunto de permisos que aplique los permisos de privilegio mínimo. Le recomendamos que utilice el conjunto de permisos predefinido PowerUserAccess
, a menos que su empleador haya creado un conjunto de permisos personalizado para este fin.
Salga del portal e inicie sesión de nuevo para ver las Cuentas de AWS, los detalles sobre el acceso programático y las opciones para Administrator
o PowerUserAccess
. Seleccione PowerUserAccess
cuando trabaje con el SDK.
Inicie sesión en AWS a través del portal de su proveedor de identidades. Si su administrador de la nube le ha concedido permisos PowerUserAccess
(desarrollador), verá las Cuentas de AWS a las que tiene acceso y su conjunto de permisos. Junto al nombre de su conjunto de permisos, verá las opciones para acceder a las cuentas de forma manual o programática mediante ese conjunto de permisos.
Las implementaciones personalizadas pueden dar lugar a experiencias diferentes, como distintos nombres de conjuntos de permisos. Si no está seguro de qué configuración de permisos debe utilizar, contacte con su equipo de TI para obtener ayuda.
Inicie sesión en AWS a través del portal de acceso de AWS. Si su administrador de la nube le ha concedido permisos PowerUserAccess
(desarrollador), verá las Cuentas de AWS a las que tiene acceso y su conjunto de permisos. Junto al nombre de su conjunto de permisos, verá las opciones para acceder a las cuentas de forma manual o programática mediante ese conjunto de permisos.
Contacte con su equipo de TI para obtener ayuda.
Tras acceder a IAM Identity Center, recopile la información de IAM Identity Center realizando lo siguiente:
-
En el portal de acceso de AWS, seleccione el conjunto de permisos que utiliza para el desarrollo y seleccione el enlace Claves de acceso.
-
En el cuadro de diálogo Obtener credenciales, elija la pestaña que coincida con su sistema operativo.
-
Elija el método de credenciales del centro de identidades de IAM para obtener los valores
SSO Start URL
ySSO Region
que necesita para ejecutaraws configure sso
. Para obtener información sobre qué ámbitos se deben registrar, consulte Ámbitos de acceso de OAuth 2.0 en la Guía del usuario del IAM Identity Center.
Configurar el perfil con el asistente de aws
configure sso
Para configurar un perfil de IAM Identity Center en la AWS CLI:
-
En el terminal que prefiera, ejecute el comando
aws configure sso
. -
La AWS CLI intenta abrir su navegador predeterminado para el proceso de inicio de sesión de su cuenta de IAM Identity Center. El proceso puede pedirle que permita que la AWS CLI acceda a los datos. Dado que la AWS CLI se ha creado con el SDK para Python, los mensajes de permiso pueden contener variaciones del nombre
botocore
.Si la AWS CLI no puede abrir el navegador, se muestran las instrucciones para iniciar manualmente el proceso de inicio de sesión.
If the browser does not open or you wish to use a different device to authorize this request, open the following URL:
https://device.sso.us-west-2.amazonaws.com/
Then enter the code:QCFK-N451
-
Seleccione la cuenta de AWS que desee utilizar de la lista que aparece. Si solo tiene autorización para usar una única cuenta, la AWS CLI selecciona esa cuenta automáticamente y omite la petición.
There are 2 AWS accounts available to you. > DeveloperAccount, developer-account-admin@example.com (
123456789011
) ProductionAccount, production-account-admin@example.com (123456789022
) -
Seleccione el rol de IAM que desee utilizar en la lista que aparece. Si solo hay un rol disponible, la AWS CLI selecciona automáticamente ese rol y omite la petición.
Using the account ID
123456789011
There are 2 roles available to you. > ReadOnly FullAccess -
Especifique el formato de salida predeterminado, la Región de AWS predeterminada a la que se enviarán los comandos y un nombre para el perfil. Si especifica
default
como nombre de perfil, este perfil pasa a ser el perfil predeterminado. En el ejemplo siguiente, el usuario introduce una región predeterminada, un formato de salida predeterminado y el nombre del perfil.CLI default client Region [None]:
us-west-2
<ENTER>CLI default output format [None]:
json
<ENTER>CLI profile name [123456789011_ReadOnly]:
my-dev-profile
<ENTER> -
Un mensaje final describe la configuración del perfil completada. Ahora puede utilizar este perfil para solicitar credenciales. Utilice el comando
aws sso login
para solicitar y recuperar realmente las credenciales necesarias para ejecutar comandos. Para obtener instrucciones, consulte Inicio de sesión en IAM Identity Center.
Estos pasos dan como resultado la creación de una sección sso-session
y un perfil con un nombre en el archivo config
similar al siguiente:
Configurar solo la sección sso-session
con el asistente de aws configure sso-session
nota
Esta configuración no es compatible con IAM Identity Center heredado.
El comando aws configure sso-session
solo actualiza las secciones sso-session
del archivo ~/.aws/config
. Ejecute el comando aws configure sso-session
y proporcione su URL de inicio de IAM Identity Center y la región de AWS que aloja el directorio del Identity Center.
$
aws configure sso-session
SSO session name:
my-sso
SSO start URL [None]:
https://my-sso-portal.awsapps.com/start
SSO region [None]:
us-east-1
SSO registration scopes [None]:
sso:account:access
Configuración manual mediante el archivo config
La información de configuración de IAM Identity Center se almacena en el archivo config
y se puede editar con un editor de texto. Para añadir manualmente compatibilidad con IAM Identity Center a un perfil con nombre, debe añadir claves y valores al archivo config
.
La sección sso-session
del archivo config
se usa para agrupar las variables de configuración para adquirir los tokens de acceso SSO, que luego se pueden usar para adquirir credenciales de AWS. Se utilizan las siguientes configuraciones:
-
(Obligatorio)
sso_start_url
-
(Obligatorio)
sso_region
Defina una sección sso-session
y asóciela a un perfil. Los ajustes de sso_start_url
y sso_region
se deben definir dentro de la sección sso-session
. Normalmente, sso_account_id
y sso_role_name
deben establecerse en la sección profile
para que el SDK pueda solicitar las credenciales de SSO.
En el siguiente ejemplo se configura el SDK para que solicite credenciales de SSO y admita la actualización automática de tokens:
[profile
dev
] sso_session =my-sso
sso_account_id =111122223333
sso_role_name =SampleRole
[sso-sessionmy-sso
] sso_region =us-east-1
sso_start_url =https://my-sso-portal.awsapps.com/start
Esto también permite reutilizar las configuraciones de sso-session
en varios perfiles:
[profile
dev
] sso_session =my-sso
sso_account_id =111122223333
sso_role_name =SampleRole
[profileprod
] sso_session =my-sso
sso_account_id =111122223333
sso_role_name =SampleRole2
[sso-sessionmy-sso
] sso_region =us-east-1
sso_start_url =https://my-sso-portal.awsapps.com/start
No obstante, sso_account_id
y sso_role_name
no son necesarios para todos los escenarios de configuración de token de SSO. Si su aplicación solo utiliza servicios de AWS que admiten la autenticación de portador, no son necesarias las credenciales de AWS tradicionales. La autenticación de portador es un esquema de autenticación HTTP que utiliza tokens de seguridad denominados tokens de portador. En este escenario, no se necesitan sso_account_id
ni sso_role_name
. Consulte la guía individual de su servicio de AWS para determinar si admite la autorización de token de portador.
Además, los ámbitos de registro pueden configurarse como parte de sso-session
. El alcance es un mecanismo de OAuth 2.0 para limitar el acceso de una aplicación a la cuenta de un usuario. Una solicitud puede pedir uno o varios ámbitos y el token de acceso emitido a la solicitud se limitará a los ámbitos concedidos. Estos ámbitos definen los permisos cuya autorización se solicita para el cliente OIDC registrado y los tokens de acceso recuperados por el cliente. El siguiente ejemplo establece sso_registration_scopes
para proporcionar acceso para enumerar cuentas/roles:
[sso-session
my-sso
] sso_region =us-east-1
sso_start_url =https://my-sso-portal.awsapps.com/start
sso_registration_scopes =sso:account:access
El token de autenticación se almacena en caché en el disco en el directorio sso/cache
con un nombre de archivo basado en el nombre de la sesión.
nota
La actualización automática de tokens no se admite con la configuración no actualizable heredada. Le recomendamos que utilice la configuración del token de SSO.
Para agregar manualmente compatibilidad con IAM Identity Center a un perfil con nombre, debe agregar las siguientes claves y valores a la definición del perfil en el archivo config
.
Puede incluir otras claves y valores válidos en el archivo .aws/config
. A continuación, se muestra un ejemplo de perfil de IAM Identity Center:
[profile
my-sso-profile
] sso_start_url =https://my-sso-portal.awsapps.com/start
sso_region =us-west-2
sso_account_id =111122223333
sso_role_name =SSOReadOnlyRole
region =us-west-2
output =json
Para ejecutar comandos, primero debe utilizar Inicio de sesión en IAM Identity Center para solicitar y recuperar las credenciales temporales.
Para obtener más información sobre los archivos de config
y credentials
, consulte Opciones de los archivos de configuración y credenciales en la AWS CLI.
Inicio de sesión en IAM Identity Center
nota
El proceso de inicio de sesión puede pedirle que permita que la AWS CLI acceda a sus datos. Dado que la AWS CLI se ha creado con el SDK para Python, los mensajes de permiso pueden contener variaciones del nombre botocore
.
Para recuperar y almacenar en caché un conjunto de credenciales de IAM Identity Center, ejecute el siguiente comando de la AWS CLI para abrir su navegador predeterminado y comprobar que ha iniciado sesión en IAM Identity Center.
$
aws sso login --profile my-dev-profile
SSO authorization page has automatically been opened in your default browser.
Follow the instructions in the browser to complete this authorization request.
Successfully logged into Start URL: https://my-sso-portal.awsapps.com/start
Sus credenciales de IAM Identity Center se guardan en la caché y la AWS CLI las utiliza para recuperar de forma segura las credenciales de AWS del rol de IAM especificado en el perfil.
Si la AWS CLI no puede abrir el navegador, se le pedirá que lo abra usted y que introduzca el código especificado.
$
aws sso login --profile
my-dev-profile
Using a browser, open the following URL:
https://device.sso.us-west-2.amazonaws.com/
and enter the following code:QCFK-N451
También puede especificar qué perfil de sso-session
utilizar al iniciar la sesión utilizando el parámetro --sso-session
del comando aws sso login
. La opción sso-session
no está disponible para IAM Identity Center heredado.
$
aws sso login --sso-session
my-dev-session
El token de autenticación se almacena en caché en el disco en el directorio ~/.aws/sso/cache
con un nombre de archivo basado en la sso_start_url
.
Ejecución de un comando con el perfil de IAM Identity Center
Una vez que haya iniciado sesión, puede utilizar estas credenciales para invocar comandos de la AWS CLI con el perfil con nombre asociado. En el ejemplo siguiente se muestra un comando que usa un perfil:
$
aws sts get-caller-identity --profile
my-dev-profile
Mientras haya iniciado sesión en IAM Identity Center y esas credenciales almacenadas en caché no hayan caducado, la AWS CLI renovará automáticamente las credenciales de AWS caducadas cuando sea necesario. Sin embargo, si sus credenciales de IAM Identity Center caducan, debe renovarlas explícitamente iniciando sesión de nuevo en la cuenta de IAM Identity Center.
Cierre de sesiones de IAM Identity Center
Cuando haya terminado de utilizar su perfil de IAM Identity Center, puede dejar que las credenciales caduquen o ejecutar el siguiente comando para eliminar las credenciales almacenadas en caché.
$
aws sso logout
Successfully signed out of all SSO profiles.
Resolución de problemas
Si tiene problemas con la AWS CLI, consulte Solución de errores para la AWS CLI para ver los pasos de solución de problemas.
Recursos relacionados
Los recursos adicionales son los siguientes.
-
Tutorial: uso de IAM Identity Center para ejecutar comandos de Amazon S3 en la AWS CLI
-
Instalación o actualización de la versión más reciente de AWS CLI
-
Opciones de los archivos de configuración y credenciales en la AWS CLI
-
aws configure sso
en la AWS CLI version 2 Reference -
aws configure sso-session
en la AWS CLI version 2 Reference -
aws sso login
en la AWS CLI version 2 Reference -
aws sso logout
en la AWS CLI version 2 Reference -
Setting up to use the AWS CLI with CodeCatalyst en la Guía del usuario de Amazon CodeCatalyst
-
Ámbitos de acceso de OAuth 2.0 en la Guía del usuario del IAM Identity Center
-
Tutoriales de introducción en la Guía del usuario del IAM Identity Center