Autenticación y tokens de AWS CodeArtifact - CodeArtifact

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.

Autenticación y tokens de AWS CodeArtifact

CodeArtifact requiere que los usuarios se autentiquen en el servicio para poder publicar o consumir versiones de paquetes. Debe autenticarse en el servicio CodeArtifact creando un token de autorización con sus credenciales de AWS. Para crear un token de autorización, debe contar con los permisos correctos. Para conocer los permisos necesarios para crear un token de autorización, consulte la entrada GetAuthorizationToken enAWS CodeArtifact referencia de permisos. Para obtener más información general sobre los permisos de CodeArtifact, consulte ¿Cómo AWS CodeArtifact funciona con IAM.

Para obtener un token de autorización de CodeArtifact, debe llamar a la API GetAuthorizationToken. Con la AWS CLI, puede llamar a GetAuthorizationToken con el comando login o get-authorization-token.

nota

Los usuarios raíz no pueden llamar a GetAuthorizationToken.

  • aws codeartifact login: este comando facilita la configuración de los administradores de paquetes comunes para usar CodeArtifact en un solo paso. Al llamar a login, se obtiene un token con GetAuthorizationToken y se configura el administrador de paquetes con el token y el punto de conexión del repositorio de CodeArtifact correcto. Los siguientes administradores de paquetes son compatibles:

    • dotnet

    • npm

    • NuGet

    • pip

    • swift

    • twine

  • aws codeartifact get-authorization-token: en el caso de los administradores de paquetes que no sean compatibles con login, puede llamar a get-authorization-token directamente y, a continuación, configurar su administrador de paquetes con el token según sea necesario; por ejemplo, añadiéndolo a un archivo de configuración o almacenándolo en una variable de entorno.

Los tokens de autorización de CodeArtifact son válidos durante un período predeterminado de 12 horas. Los tokens se pueden configurar con una vida útil de entre 15 minutos y 12 horas. Cuando caduque la vida útil, debe buscar otro token. La vida útil del token comienza después de que se cancele login o get-authorization-token.

Si se llama a login o get-authorization-token mientras se asume un rol, puede configurar la duración del token para que sea igual al tiempo restante de la duración de la sesión del rol estableciendo el valor de --duration-seconds en 0. De lo contrario, la duración del token es independiente de la duración máxima de la sesión del rol. Por ejemplo, supongamos que llama a sts assume-role y especifica una duración de sesión de 15 minutos y, a continuación, llama a login para obtener un token de autorización de CodeArtifact. En este caso, el token es válido durante todo el período de 12 horas, aunque sea superior a los 15 minutos de duración de la sesión. Para obtener información sobre cómo controlar la duración de la sesión, consulte Uso de roles de IAM en la Guía del usuario de IAM.

Tokens creados con el comando login

El comando aws codeartifact login buscará un token GetAuthorizationToken y configurará su administrador de paquetes con el token y el punto de conexión correcto del repositorio de CodeArtifact.

En la siguiente tabla se describen los parámetros del comando login.

Parámetro Obligatorio Descripción

--tool

El administrador de paquetes en el que autenticarse. Los valores posibles son dotnet, npm, nuget, pip, swift y twine.

--domain

El nombre de dominio al que pertenece el repositorio.

--domain-owner

No

El ID del propietario del dominio. Este parámetro es obligatorio si se accede a un dominio que es propiedad de una cuenta de AWS en la que no está autenticado. Para obtener más información, consulte Dominios entre cuentas.

--repository

El nombre del repositorio en el que se va a autenticar.

--duration-seconds

No

Período en segundos, durante el que es válida la información de inicio de sesión. El valor mínimo es 900* y el valor máximo es 43200.

--namespace

No

Asocia un espacio de nombres a la herramienta de repositorio.

--dry-run

No

Imprima únicamente los comandos que se ejecutarían para conectar la herramienta con el repositorio sin realizar ningún cambio en la configuración.

*El valor 0 también es válido cuando se llama a login mientras se asume un rol. Al llamar a login con --duration-seconds 0, se crea un token con una duración igual al tiempo restante de la sesión de un rol asumido.

En el siguiente ejemplo se muestra cómo obtener un token de autorización con el comando login.

aws codeartifact login \ --tool dotnet | npm | nuget | pip | swift | twine \ --domain my_domain \ --domain-owner 111122223333 \ --repository my_repo

Para obtener instrucciones específicas sobre cómo usar el comando login con npm, consulte Configurar y usar npm con CodeArtifact. Para Python, consulte Uso de CodeArtifact con Python.

Se requieren permisos para llamar a la API GetAuthorizationToken.

Se requieren los permisos sts:GetServiceBearerToken y codeartifact:GetAuthorizationToken para llamar a la API GetAuthorizationToken de CodeArtifact.

Para usar un administrador de paquetes con un repositorio de CodeArtifact, su usuario o rol de IAM debe permitir sts:GetServiceBearerToken. Si bien sts:GetServiceBearerToken se puede añadir a una política de recursos de dominio de CodeArtifact, el permiso no tendrá ningún efecto en dicha política.

Tokens creados con la API GetAuthorizationToken

Puede llamar a get-authorization-token para obtener un token de autorización de CodeArtifact.

aws codeartifact get-authorization-token \ --domain my_domain \ --domain-owner 111122223333 \ --query authorizationToken \ --output text

Puede cambiar el tiempo de validez de un token usando el argumento --duration-seconds. El valor mínimo es 900 y el máximo, 43200. En el siguiente ejemplo se crea un token que durará 1 hora (3600 segundos).

aws codeartifact get-authorization-token \ --domain my_domain \ --domain-owner 111122223333 \ --query authorizationToken \ --output text \ --duration-seconds 3600

Si se llama a get-authorization-token mientras se asume un rol, la duración del token es independiente de la duración máxima de la sesión del rol. Puede configurar el token para que caduque cuando venza la duración de la sesión del rol asumido configurando --duration-seconds en 0.

aws codeartifact get-authorization-token \ --domain my_domain \ --domain-owner 111122223333 \ --query authorizationToken \ --output text \ --duration-seconds 0

Para obtener más información, consulte la documentación siguiente:

Pasar un token de autenticación mediante una variable de entorno

AWS CodeArtifact utiliza tokens de autorización proporcionados por la API GetAuthorizationToken para autenticar y autorizar solicitudes de herramientas de compilación como Maven y Gradle. Para obtener más información sobre estos tokens de autenticación, consulte Tokens creados con la API GetAuthorizationToken.

Puede almacenar estos tokens de autenticación en una variable de entorno que pueda leer una herramienta de compilación para obtener el token que necesita para obtener paquetes de un repositorio de CodeArtifact o publicar paquetes en él.

Por motivos de seguridad, este enfoque es preferible a almacenar el token en un archivo donde puedan leerlo otros usuarios o procesos, o bien introducirlo accidentalmente en el control de código fuente.

  1. Configure sus credenciales de AWS, tal y como se describe en Instale o actualice y, a continuación, configure la AWS CLI.

  2. Establezca la variable de entorno CODEARTIFACT_AUTH_TOKEN:

    nota

    En algunos casos, no es necesario incluir el argumento --domain-owner. Para obtener más información, consulte Dominios entre cuentas.

    • macOS o Linux:

      export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text`
    • Windows (mediante el intérprete de comandos predeterminado):

      for /f %i in ('aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text') do set CODEARTIFACT_AUTH_TOKEN=%i
    • Windows PowerShell:

      $env:CODEARTIFACT_AUTH_TOKEN = aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text

Revocación de los tokens de autorización de CodeArtifact

Cuando un usuario autenticado crea un token para acceder a los recursos de CodeArtifact, ese token dura hasta que finalice su período de acceso personalizable. El período de acceso predeterminado es de 12 horas. En algunos casos, es posible que le sea útil revocar el acceso a un token antes de que el período de acceso haya expirado. Puede revocar el acceso a los recursos de CodeArtifact siguiendo estas instrucciones.

Si creó el token de acceso con credenciales de seguridad temporales, como roles asumidos o acceso de usuarios federados, puede revocar el acceso actualizando una política de IAM para denegar el acceso. Para obtener información, consulte Deshabilitar permisos para credenciales de seguridad temporales en la Guía del usuario de IAM.

Si ha utilizado credenciales de usuario de IAM de larga duración para crear el token de acceso, debe modificar la política del usuario para denegar el acceso o eliminar al usuario de IAM. Para obtener más información, consulte Cambiar permisos para un usuario de IAM o Eliminar un usuario de IAM.