Este artículo le mostrará cómo puede conectarse y comprometerse con varios repositorios de CodeCommit en diferentes cuentas de AWS desde la misma máquina de manera fácil y cómoda utilizando perfiles de AWS, asistente de credenciales y HTTPS (GRC).
Requisitos
- Uno o más repositorios de CodeCommit.
- awscli herramienta instalada.
- git herramienta instalada.
- Está utilizando Linux o OS X.
Configurar credenciales de AWS
En primer lugar, debemos configurar un perfil para awscli
utilidad para cada cuenta de AWS para cada organización
vim ~/.aws/credentials
Esta es la estructura de ejemplo para crear perfiles my_organization_account_1
y my_organization_account_2
para sus cuentas:
[my_organization_account_1]
region = us-east-2
aws_access_key_id = YOUR_AWS_ACCESS_KEY_FOR_ACCOUNT_1
aws_secret_access_key = YOUR_AWS_SECRET_ACCESS_KEY_FOR_ACCOUNT_1
[my_organization_account_2]
region = us-east-1
aws_access_key_id = YOUR_AWS_ACCESS_KEY_FOR_ACCOUNT_2
aws_secret_access_key = YOUR_AWS_SECRET_ACCESS_KEY_FOR_ACCOUNT_2
Aquí hay una forma alternativa y más segura de administrar el acceso a varias cuentas de AWS:Cómo usar aws-vault para acceder de forma segura a varias cuentas de AWS.
Conéctese al repositorio de CodeCommit mediante el asistente de credenciales
Una vez configurados los perfiles, podemos conectarnos y clonar repositorios de CodeCommit. Supongamos que el repositorio repo_1
pertenece al perfil descrito en la primera cuenta my_organization_account_1
.
Cree un directorio vacío para este repositorio:
cd folder/with/projects
mkdir repo_1
Ahora, podemos usar aws codecommit credential-helper
a con --profile
argumento para dejar git
conéctese al repositorio de CodeCommit en su primera cuenta. Y estamos usando git config --local
para especificar la configuración solo para repo_1
repositorio git en la primera cuenta.
cd repo_1
git init
git config --local credential.helper \
'!aws codecommit credential-helper \
--profile my_organization_account_1 $@'
git config --local credential.UseHttpPath true
Y, por último, todo lo que tenemos que hacer es agregar una ubicación remota de repositorio de CodeCommit (copiar su URL desde la consola web de CodeCommit) y clonar nuestro proyecto
git remote add origin \
https://git-codecommit.us-east-2.amazonaws.com/v1/repos/my_repository
git pull origin master
Conéctese al repositorio de CodeCommit mediante HTTPS (GRC)
HTTPS (GRC) es el protocolo que se usa con git-remote-codecommit (GRC). Esta utilidad proporciona un método simple para insertar y extraer código de los repositorios de CodeCommit mediante la extensión de Git.
Este es el método recomendado por AWS para admitir conexiones realizadas con acceso federado, proveedores de identidad y credenciales temporales.
Primero, debe instalar git-remote-codecommit:
pip install git-remote-codecommit
Ahora puedes clonar el repositorio usando el siguiente comando:
git clone codecommit::us-east-2://demo-repository
Si necesita usar el mismo repositorio de AWS CodeCommit en diferentes cuentas, puede agregar controles remotos de Git adicionales adjuntos a los perfiles de AWS:
git remote add \
my_organization_account_1 \
codecommit::us-east-2://my_organization_account_1@demo-repositorySummary
Resumen
En este artículo, demostramos cómo conectarse y comprometerse con varios repositorios de CodeCommit en diferentes cuentas de AWS de manera fácil y cómoda mediante los perfiles de AWS, el asistente de credenciales y HTTPS (GRC).