Acceso al repositorio entre cuentas: acciones del usuario del repositorio de CuentaB - AWS CodeCommit

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Acceso al repositorio entre cuentas: acciones del usuario del repositorio de CuentaB

Para obtener acceso al repositorio en CuentaA, los usuarios del grupo de Cuenta B deben configurar sus equipos locales para obtener acceso al repositorio. En las siguientes secciones se proporcionan pasos y ejemplos.

Paso 1: Configurar AWS CLI y Git para que un usuario de AccountB acceda al repositorio en AccountA

No puede utilizar las claves SSH ni las credenciales de Git para obtener acceso a los repositorios de otra cuenta de Amazon Web Services. Los usuarios de AccountB deben configurar sus computadoras para usar git-remote-codecommit (recomendado) o el asistente de credenciales para acceder al repositorio CodeCommit compartido de AccountA. Sin embargo, puede continuar usando las claves SSH o las credenciales de Git al obtener acceso a los repositorios en CuentaB.

Siga estos pasos para configurar el acceso mediante git-remote-codecommit. Si aún no ha instalado git-remote-codecommit, descárguelo desde git-remote-codecommit en el sitio web de Python Package Index.

Para configurar Git AWS CLI y Git para el acceso entre cuentas
  1. Instálelo AWS CLI en el equipo local. Consulte las instrucciones del sistema operativo en Instalación de la AWS CLI.

  2. Instale Git en el equipo local. Para instalar Git, le recomendamos sitios web como Git Downloads o Git for Windows.

    nota

    CodeCommit es compatible con las versiones 1.7.9 y posteriores de Git. La versión 2.28 de Git admite la configuración del nombre de la ramificación para las confirmaciones iniciales. Recomendamos usar una versión reciente de Git. Git es una plataforma en evolución que se actualiza periódicamente. Ocasionalmente, un cambio en una función puede afectar a su forma de trabajar con CodeCommit ella. Si tienes problemas con una versión específica de Git CodeCommit, consulta la información enSolución de problemas.

  3. En el terminal o la línea de comandos, en la ubicación del directorio donde desea clonar el repositorio, ejecute los comandos git config --local user.name y git config --local user.emailpara establecer el nombre de usuario y el correo electrónico de las confirmaciones que va a realizar en el repositorio. Por ejemplo:

    git config --local user.name "Saanvi Sarkar" git config --local user.email saanvi_sarkar@example.com

    Estos comandos no devuelven nada, pero el correo electrónico y el nombre de usuario que especifique se asocian a las confirmaciones que realice en el repositorio en CuentaA.

  4. Ejecute el comando aws configure --profile para configurar un perfil predeterminado que se utiliza para conectar a los recursos en CuentaB. Cuando se le pida, proporcione la clave de acceso y la clave secreta para su usuario de IAM.

    nota

    Si ya has instalado el perfil AWS CLI y lo has configurado, puedes saltarte este paso.

    Por ejemplo, ejecuta el siguiente comando para crear un AWS CLI perfil predeterminado que utilices para acceder a AWS los recursos de AccountB en el este de EE. UU. (Ohio) (us-east-2):

    aws configure

    Cuando se le pida, proporcione la siguiente información:

    AWS Access Key ID [None]: Your-IAM-User-Access-Key AWS Secret Access Key ID [None]: Your-IAM-User-Secret-Access-Key Default region name ID [None]: us-east-2 Default output format [None]: json
  5. Vuelva a ejecutar el comando aws configure --profile para configurar un perfil con nombre que utilizar al conectarse al repositorio en CuentaA. Cuando se le pida, proporcione la clave de acceso y la clave secreta para su usuario de IAM. Por ejemplo, ejecuta el siguiente comando para crear un nombre de AWS CLI perfil MyCrossAccountAccessProfileque utilices para acceder a un repositorio en AccountA en el este de EE. UU. (Ohio) (us-east-2):

    aws configure --profile MyCrossAccountAccessProfile

    Cuando se le pida, proporcione la siguiente información:

    AWS Access Key ID [None]: Your-IAM-User-Access-Key AWS Secret Access Key ID [None]: Your-IAM-User-Secret-Access-Key Default region name ID [None]: us-east-2 Default output format [None]: json
  6. En un editor de texto sin formato, abra el archivo config, también conocido como el archivo de configuración de AWS CLI . Según su sistema operativo, este archivo podría encontrarse en ~/.aws/config en Linux, macOS, o Unix, o bien en drive:\Users\USERNAME\.aws\config en Windows.

  7. En el archivo, busque la entrada que corresponda al perfil predeterminado configurado para acceder a repositorios de la cuenta B. Debería parecerse a lo que sigue:

    [default] region = us-east-2 output = json

    Agregue account a la configuración del perfil. Proporcione el ID de cuenta de AWS de la cuenta B. Por ejemplo:

    [default] account = 888888888888 region = us-east-2 output = json
  8. En el archivo, busca la entrada que corresponda al MyCrossAccountAccessProfileperfil que acabas de crear. Debería parecerse a lo que sigue:

    [profile MyCrossAccountAccessProfile] region = us-east-2 output = json

    Agregue account, role_arn y source_profile a la configuración del perfil. Proporcione el ID de la cuenta de Amazon Web Services de la cuenta A, el ARN del rol de la cuenta A que asume para obtener acceso al repositorio en la otra cuenta, así como el nombre de su perfil predeterminado de la AWS CLI en la cuenta B. Por ejemplo:

    [profile MyCrossAccountAccessProfile] region = us-east-2 account = 111122223333 role_arn = arn:aws:iam::111122223333:role/MyCrossAccountRepositoryContributorRole source_profile = default output = json

    Guarde sus cambios y cierre el editor de texto sin formato.

Paso 2: Clona y accede al CodeCommit repositorio en AccountA

Ejecute y git clonegit push, git pull para clonar, inserte y extraiga información del repositorio multicuenta CodeCommit. También puede iniciar sesión en la consola AWS de administración, cambiar de rol y usar la CodeCommit consola para interactuar con el repositorio de la otra cuenta.

nota

En función de cómo esté configurada la función de IAM, es posible que puedas ver los repositorios en la página predeterminada de. CodeCommit Si no puede ver los repositorios, pida al administrador del repositorio que le envíe por correo electrónico un enlace URL a la página de códigos del repositorio compartido en la consola. CodeCommit La URL es similar a la siguiente:

https://console.aws.amazon.com/codecommit/home?region=us-east-2#/repository/MySharedDemoRepo/browse/HEAD/--/
Para clonar el repositorio entre cuentas en su equipo local
  1. En el terminal o la línea de comandos, en el directorio donde desea clonar el repositorio, ejecute el comando git clone con la URL de clonación HTTPS (GRC). Por ejemplo:

    git clone codecommit://MyCrossAccountAccessProfile@MySharedDemoRepo

    A menos que especifique lo contrario, el repositorio se clona en un subdirectorio con el mismo nombre que el repositorio.

  2. Cambie los directorios al repositorio clonado y añada o realice un cambio en un archivo. Por ejemplo, puedes añadir un archivo llamado NewFile.txt.

  3. Agrega el archivo al registro de cambios del repositorio local, confirma el cambio y envía el archivo al CodeCommit repositorio. Por ejemplo:

    git add NewFile.txt git commit -m "Added a file to test cross-account access to this repository" git push

    Para obtener más información, consulte Introducción a Git y AWS CodeCommit.

Ahora que has añadido un archivo, ve a la CodeCommit consola para ver tu confirmación, revisar los cambios de otros usuarios en el repositorio, participar en las solicitudes de cambios y mucho más.

Para acceder al repositorio multicuenta de la consola CodeCommit
  1. Inicie sesión AWS Management Console en AccountB (888888888888) como el usuario de IAM al que se le ha concedido acceso multicuenta al repositorio de AccountA.

  2. Elija su nombre de usuario en la barra de navegación y, en la lista desplegable, elija Switch Role (Cambiar función).

    nota

    Si esta es la primera vez que ha seleccionado esta opción, revise la información de la página y, a continuación, vuelva a elegir Switch Role (Cambiar función).

  3. En la página Switch Role (Cambiar función), haga lo siguiente:

    • En Cuenta, introduzca el ID de cuenta para CuentaA (por ejemplo, 111122223333).

    • En Rol, ingresa el nombre del rol que deseas asumir para acceder al repositorio en AccountA (por ejemplo, MyCrossAccountRepositoryContributorRole).

    • En Display Name (Nombre que mostrar), introduzca un nombre fácil de recordar para este rol. Este nombre aparecerá en la consola al desempeñar esta función. También aparecerá en la lista de funciones desempeñadas la próxima vez que desee cambiar funciones en la consola.

    • (Opcional) En Color (Color), elija una etiqueta de color para el nombre de visualización.

    • Elija Switch Role.

    Para obtener más información, consulte Cambiar de función (AWS Management Console).

  4. Abre la CodeCommit consola en https://console.aws.amazon.com/codesuite/codecommit/home.

    Si la función desempeñada tiene permiso para ver los nombres de los repositorios en CuentaA, verá una lista de repositorios y un mensaje de error informándole de que no tiene permisos para ver su estado. Este es el comportamiento esperado. Elija el nombre del repositorio compartido de la lista.

    Si la función desempeñada no tiene permiso para ver los nombres de los repositorios en CuentaA, verá un mensaje de error y una lista en blanco sin repositorios. Pegue el enlace de URL en el repositorio o modifique el enlace de la consola y cambie /list por el nombre del repositorio compartido (por ejemplo, /MySharedDemoRepo).

  5. En Code (Código), busque el nombre del archivo que añadió desde su equipo local. Elíjalo para examinar el código en el archivo y, a continuación, examine el resto del repositorio y comience a usar sus características.

    Para obtener más información, consulte Empezar con AWS CodeCommit.