Conexión a repositorios de AWS CodeCommit con credenciales rotatorias - AWS CodeCommit

AWS CodeCommit ya no está disponible para los nuevos clientes. Los clientes existentes de AWS CodeCommit pueden seguir utilizando el servicio con normalidad. Más información"

Conexión a repositorios de AWS CodeCommit con credenciales rotatorias

Puede conceder a los usuarios acceso a sus repositorios de AWS CodeCommit sin configurar usuarios de IAM para ellos ni utilizar una clave de acceso y clave secreta. Para asignar permisos a identidades federadas, debe crear un rol y definir permisos para este. Cuando se autentica una identidad federada, se asocia la identidad al rol y se le conceden los permisos define el rol. Para obtener información acerca de roles de federación, consulte Crear un rol para un proveedor de identidad de terceros (federación) en la Guía de usuario de IAM. Si utiliza el IAM Identity Center, debe configurar un conjunto de permisos. IAM Identity Center correlaciona el conjunto de permisos con un rol en IAM para controlar a qué pueden acceder las identidades después de autenticarse. Para obtener información acerca de los conjuntos de permisos, consulta Conjuntos de permisos en la Guía del usuario de AWS IAM Identity Center. También puede configurar el acceso basado en roles para que los usuarios de IAM accedan a repositorios de CodeCommit en cuentas de Amazon Web Services distintas (una técnica que recibe el nombre de acceso entre cuentas). Para obtener un tutorial de configuración del acceso entre cuentas en un repositorio, consulte Configuración del acceso entre cuentas a un repositorio de AWS CodeCommit mediante roles.

También puede configurar el acceso para los usuarios que desean o deben autenticarse a través de métodos como:

  • Lenguaje de marcado para confirmaciones de seguridad (SAML)

  • Autenticación multifactor (MFA)

  • Federación

  • Login with Amazon

  • Amazon Cognito

  • Facebook

  • Google

  • Proveedor de identidad compatible con OpenID Connect (OIDC)

nota

Esta información solo se aplica si se utiliza git-remote-codecommit o la aplicación de ayudante de credenciales de la AWS CLI para conectarse a los repositorios de CodeCommit. Dado que el enfoque recomendado para el acceso temporal o federado a CodeCommit es configurar git-remote-codecommit, en este tema se proporcionan ejemplos que utilizan esa utilidad. Para obtener más información, consulte Pasos de configuración para conexiones HTTPS a AWS CodeCommit con git-remote-codecommit.

No puede utilizar SSH ni las credenciales de Git y HTTPS para conectarse a los repositorios de CodeCommit con credenciales rotativas o de acceso temporal.

No es necesario que realice estos pasos si se cumplen todos los requisitos siguientes:

Las instancias de Amazon EC2 que cumplen los requisitos anteriores ya están configuradas para comunicar las credenciales de acceso temporal a CodeCommit en su nombre.

nota

Puede configurar y utilizar git-remote-codecommit en instancias de EC2.

Para proporcionar a los usuarios un acceso temporal a los repositorios de CodeCommit, siga los pasos que se describen a continuación.

Paso 1: completar los requisitos previos

Complete los pasos de configuración para proporcionar a un usuario acceso a sus repositorios de CodeCommit mediante credenciales rotativas:

Use la información de Autenticación y control de acceso para AWS CodeCommit para especificar los permisos de CodeCommit que desea conceder al usuario.

Paso 2: Obtener el nombre de rol o las credenciales de acceso

Si desea que los usuarios accedan a los repositorios asumiendo un rol, proporcione a los usuarios el nombre de recurso de Amazon (ARN) de ese rol. De lo contrario, dependiendo de la forma en que configure el acceso, el usuario puede obtener credenciales rotativas de una de las siguientes maneras:

Paso 3: Instale git-remote-codecommit y configure la AWS CLI

Debe configurar el equipo local para que utilice las credenciales de acceso instalando git-remote-codecommit y configurando un perfil en la AWS CLI.

  1. Siga las instrucciones que se detallan en Configuración para configurar la AWS CLI. Utilice el comando aws configure para configurar uno o varios perfiles. Considere la posibilidad de crear un perfil con nombre para utilizarlo cuando se conecte a repositorios de CodeCommit mediante credenciales rotativas.

  2. Puede asociar las credenciales con el perfil con nombre de la AWS CLI del usuario de una de las siguientes formas.

    • Si asume un rol para tener acceso a CodeCommit, configure un perfil con nombre con la información necesaria para asumir ese rol. Por ejemplo, si desea asumir un rol denominado CodeCommitAccess en la cuenta de Amazon Web Services 111111111111, puede configurar un perfil predeterminado para utilizarlo cuando trabaje con otros recursos de AWS y un perfil con nombre para utilizarlo cuando asuma ese rol. Los siguientes comandos crean un perfil con nombre denominado CodeAccess que asume un rol denominado CodeCommitAccess. El nombre de usuario Maria_Garcia está asociado a la sesión y el perfil predeterminado se establece como el origen de sus credenciales de AWS:

      aws configure set role_arn arn:aws:iam::111111111111:role/CodeCommitAccess --profile CodeAccess aws configure set source_profile default --profile CodeAccess aws configure set role_session_name "Maria_Garcia" --profile CodeAccess

      Si desea verificar los cambios, consulte o edite manualmente el archivo ~/.aws/config (para Linux) o el archivo %UserProfile%.aws\config (para Windows) y revise la información bajo el perfil con nombre. Por ejemplo, el archivo podría tener un aspecto similar al siguiente:

      [default] region = us-east-1 output = json [profile CodeAccess] source_profile = default role_session_name = Maria_Garcia role_arn = arn:aws:iam::111111111111:role/CodeCommitAccess

      Después de configurar el perfil con nombre, puede clonar repositorios de CodeCommit con la utilidad git-remote-codecommit utilizando el perfil con nombre. Por ejemplo, para clonar un repositorio denominado MyDemoRepo:

      git clone codecommit://CodeAccess@MyDemoRepo
    • Si utiliza la federación de identidades web y OpenID Connect (OIDC), configure un perfil con nombre que llame a la API de AssumeRoleWithWebIdentity AWS Security Token Service(AWS STS) en su nombre para actualizar las credenciales temporales. Utilice el comando aws configure set o edite manualmente el archivo ~/.aws/credentials (para Linux) o el archivo %UserProfile%.aws\credentials (para Windows) para agregar un perfil con nombre de la AWS CLI con los valores de configuración necesarios. Por ejemplo, para crear un perfil que asuma el rol CodeCommitAccess y utilice un archivo de token de identidad web ~/my-credentials/my-token-file:

      [CodeCommitWebIdentity] role_arn = arn:aws:iam::111111111111:role/CodeCommitAccess web_identity_token_file=~/my-credentials/my-token-file role_session_name = Maria_Garcia

    Para obtener más información, consulte Configuración de AWS Command Line Interface y Uso de un rol de IAM en la AWS CLI en la Guía del usuario de AWS Command Line Interface.

Paso 4: Acceder a los repositorios de CodeCommit

Supongamos que su usuario ha seguido las instrucciones que se detallan en Conectarse a un repositoriopara conectarse a los repositorios de CodeCommit. A continuación, el usuario utiliza la funcionalidad extendida proporcionada por git-remote-codecommit y Git para llamar a git clone, git push y git pull para clonar, enviar y extraer datos de los repositorios de CodeCommit a los que puede obtener acceso. Por ejemplo, para clonar un repositorio:

git clone codecommit://CodeAccess@MyDemoRepo

Los comandos commit, push y pull de Git usan la sintaxis normal de Git.

Cuando el usuario utiliza la AWS CLI y especifica el perfil con nombre de la AWS CLI asociado a las credenciales de acceso rotativas, se devuelven los resultados relacionados con dicho perfil.