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:
-
Ha iniciado sesión en una instancia de Amazon EC2.
-
Utiliza Git y HTTPS con la aplicación de ayudante de credenciales de la AWS CLI para conectarse desde la instancia de Amazon EC2 a los repositorios de CodeCommit.
-
La instancia de EC2 tiene asociado un perfil de instancia de IAM que contiene los permisos de acceso definidos en Para conexiones HTTPS en Linux, macOS o Unix con la aplicación de ayudante de credenciales de AWS CLI o Para conexiones HTTPS en Windows con el ayudante de credenciales de la AWS CLI.
-
Ha instalado y configurado la aplicación de ayudante de credenciales de Git en la instancia de EC2 tal como se describe en Para conexiones HTTPS en Linux, macOS o Unix con la aplicación de ayudante de credenciales de AWS CLI o Para conexiones HTTPS en Windows con el ayudante de credenciales de la AWS CLI.
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:
-
Para obtener más información sobre el acceso entre cuentas, consulte Tutorial: Delegación del acceso entre cuentas de Amazon Web Services mediante roles de IAM y Configuración del acceso entre cuentas a un repositorio de AWS CodeCommit mediante roles.
-
Para obtener más información sobre SAML y la federación, consulte Uso del sistema de autenticación de su organización para conceder acceso a los recursos de AWSy Acerca de la federación basada en SAML 2.0 de AWS STS.
-
Para obtener más información sobre MFA, consulte Uso de dispositivos con autenticación multifactor (MFA) con AWS y Creación de credenciales de seguridad temporales para permitir el acceso a los usuarios de IAM.
-
Para obtener más información sobre Login with Amazon, Amazon Cognito, Facebook, Google o cualquier proveedor de identidad compatible con OIDC, consulte Acerca de la federación de identidades web de AWS STS.
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:
-
Para el acceso entre cuentas, llamar al comando assume-role de la AWS CLI o llamar a la API AssumeRole de la AWS STS.
-
Para el SAML, llamar al comando assume-role-with-saml de la AWS CLI o llamar a la API AssumeRoleWithSAML de la AWS STS.
-
Para la federación, llamar al comando assume-role o get-federation-token de la AWS CLI o llamar a la API AssumeRole o GetFederationToken de la AWS STS.
-
Para la MFA, llamar al comando get-session-token de la AWS CLI o llamar a la API GetSessionToken de la AWS STS.
-
Para el inicio de sesión con Amazon, Amazon Cognito, Facebook, Google o cualquier proveedor de identidad compatible con OIDC, llamar al comando assume-role-with-web-identity de la AWS CLI o llamar a la API AssumeRoleWithWebIdentity de AWS STS.
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
-
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.
-
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
CodeCommitAccessen 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 denominadoCodeAccessque asume un rol denominadoCodeCommitAccess. El nombre de usuarioMaria_Garciaestá 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--profileCodeAccessaws configure set source_profile default --profileCodeAccessaws configure set role_session_name "Maria_Garcia" --profileCodeAccessSi 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/CodeCommitAccessDespué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
AssumeRoleWithWebIdentityAWS 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 rolCodeCommitAccessy utilice un archivo de token de identidad web ~/my-credentials/my-token-file:[CodeCommitWebIdentity] role_arn = arn:aws:iam::111111111111:role/CodeCommitAccessweb_identity_token_file=~/role_session_name = Maria_Garciamy-credentials/my-token-file
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.