Autenticación y control de acceso de AWS CodeCommit - AWS CodeCommit

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

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 control de acceso de AWS CodeCommit

El acceso AWS CodeCommit requiere credenciales. Esas credenciales deben tener permisos para acceder a AWS los recursos, como los CodeCommit repositorios, y a tu usuario de IAM, que utilizas para gestionar tus credenciales de Git o la clave pública de SSH que utilizas para realizar las conexiones de Git. En las siguientes secciones se proporciona información detallada sobre cómo puedes usar AWS Identity and Access Management (IAM) y cómo ayudar CodeCommit a proteger el acceso a tus recursos:

Autenticación

Como CodeCommit los repositorios están basados en Git y admiten las funciones básicas de Git, incluidas las credenciales de Git, te recomendamos que utilices un usuario de IAM cuando trabajes con ellos. CodeCommit Puedes acceder CodeCommit con otros tipos de identidad, pero los demás tipos de identidad están sujetos a limitaciones, tal y como se describe a continuación.

Tipos de identidades:

  • Usuario de IAM: un usuario de IAM es simplemente una identidad en su Amazon Web Services que tiene permisos personalizados específicos. Por ejemplo, un usuario de IAM puede tener permisos para crear y gestionar las credenciales de Git para acceder a los CodeCommit repositorios. Este es el tipo de usuario con el que se recomienda trabajar. CodeCommit Puede utilizar un nombre de usuario y una contraseña de IAM para iniciar sesión en AWS páginas web seguras Consola de administración de AWS, como los foros de AWS debate o el AWS Support Centro.

    Puede generar credenciales de Git o asociar claves SSH públicas a su usuario de IAM o puede instalar y configurar git-remote-codecommit. Estas son las formas más sencillas de configurar Git para que funcione con tus CodeCommit repositorios. Con las credenciales de Git, puede generar un nombre de usuario y contraseña estáticos en IAM. Seguidamente, puede utilizar estas credenciales para las conexiones HTTPS con Git y cualquier herramienta de terceros que admita la autenticación con nombre de usuario y contraseña de Git. Con las conexiones SSH, creas archivos de claves públicas y privadas en tu máquina local que Git CodeCommit usa para la autenticación SSH. Asocie la clave pública con el usuario de IAM y almacene la clave privada en el equipo local. git-remote-codecommit amplía la funcionalidad de Git y no requiere la configuración de credenciales de Git para el usuario.

    Además, puede generar claves de acceso para cada usuario. Usa las claves de acceso cuando accedas a AWS los servicios mediante programación, ya sea a través de una de ellas AWS SDKs o mediante la tecla ().AWS Command Line InterfaceAWS CLI El SDK y las herramientas de CLI usan claves de acceso para firmar criptográficamente las solicitudes. Si no usa las AWS herramientas, debe firmar las solicitudes usted mismo. CodeCommit es compatible con la versión 4 de Signature, un protocolo para autenticar las solicitudes de API entrantes. Para obtener más información acerca de la autenticación de solicitudes, consulte Proceso de firma Signature Version 4 en la Referencia general de AWS.

  • Usuario raíz de la cuenta de Amazon Web Services: al registrarse AWS, proporciona una dirección de correo electrónico y una contraseña asociadas a su cuenta de Amazon Web Services. Estas son las credenciales raíz y proporcionan acceso completo a todos los recursos de AWS . Algunas CodeCommit funciones no están disponibles para los usuarios de la cuenta raíz. Además, la única forma de usar Git con tu cuenta raíz es instalar y configurar git-remote-codecommit (recomendado) o configurar el asistente de AWS credenciales, que se incluye con la. AWS CLI No puede utilizar las credenciales de Git o pares de claves públicas y privadas SSH con su usuario de la cuenta raíz. Por estos motivos, no recomendamos utilizar el usuario de la cuenta raíz cuando interactúes con él. CodeCommit

    importante

    Por motivos de seguridad, le recomendamos que utilice las credenciales raíz solo para crear un usuario administrador, que es un usuario de IAM con permiso total para administrar su cuenta de AWS . A continuación, puede utilizar este usuario administrador para crear otros usuarios y roles de IAM; con permisos limitados. Para obtener más información, consulte Prácticas recomendadas de IAM y Creación de un grupo y usuario administrador en la Guía del usuario de IAM.

  • IAM Identity Center y los usuarios del IAM Identity Center: AWS IAM Identity Center amplían las capacidades AWS Identity and Access Management para proporcionar un lugar central que reúna la administración de los usuarios y su acceso a las aplicaciones en la nube Cuentas de AWS y a las aplicaciones en la nube. Si bien es una práctica recomendada para la mayoría de los usuarios que trabajan con AWS, IAM Identity Center actualmente no proporciona mecanismos para las credenciales de Git o los pares de claves SSH. Estos usuarios pueden instalarlos y configurarlos git-remote-codecommit para clonar CodeCommit repositorios de forma local, pero no todos los entornos de desarrollo integrados (IDEs) admiten la clonación, la inserción o la extracción. git-remote-codecommit

    Como práctica recomendada, exija a los usuarios humanos que utilicen la federación con un proveedor de identidades para acceder Servicios de AWS mediante credenciales temporales.

    Una identidad federada es un usuario del directorio empresarial, del proveedor de identidades web o al Directory Service que se accede Servicios de AWS mediante credenciales de una fuente de identidad. Las identidades federadas asumen funciones que proporcionan credenciales temporales.

    Para una administración de acceso centralizada, se recomienda AWS IAM Identity Center. Para obtener más información, consulte ¿Qué es el Centro de identidades de IAM? en la Guía del usuario de AWS IAM Identity Center .

  • Rol de IAM: al igual que un usuario de IAM, un rol de IAM es una identidad de IAM que puede crear en la cuenta para conceder permisos específicos.

    Un rol de IAM es una identidad con permisos específicos que proporciona credenciales temporales. Puede asumir un rol cambiando de un rol de usuario a un rol de IAM (consola) o llamando a una AWS CLI operación de AWS API. Para obtener más información, consulte Métodos para asumir un rol en la Guía del usuario de IAM.

    Las funciones de IAM son útiles para el acceso de usuarios federados, los permisos de usuario de IAM temporales, el acceso entre cuentas, el acceso entre servicios y las aplicaciones que se ejecutan en Amazon. EC2 Para obtener más información, consulte Acceso a recursos entre cuentas en IAM en la Guía del usuario de IAM.

    nota

    No puede utilizar las credenciales de Git o pares de claves públicas y privadas SSH con usuarios federados. Además, las preferencias del usuario no están disponibles para los usuarios federados. Para obtener información acerca de cómo configurar conexiones mediante el acceso federado, consulte Pasos de configuración para las conexiones HTTPS a AWS CodeCommit con git-remote-codecommit.

Control de acceso

Puede tener credenciales válidas para autenticar sus solicitudes, pero a menos que tenga permisos, no podrá crear CodeCommit recursos ni acceder a ellos. Por ejemplo, debe disponer de permisos para ver repositorios, enviar código, crear y administrar credenciales de Git, etc.

En las siguientes secciones se describe cómo administrar los permisos para CodeCommit. Recomendamos que lea primero la información general.

Descripción general de la administración de los permisos de acceso a sus CodeCommit recursos

Cada AWS recurso es propiedad de una cuenta de Amazon Web Services. Los permisos de creación o acceso a un recurso se rigen por políticas de permisos. Un administrador de cuentas puede asociar políticas de permisos a identidades de IAM (es decir, usuarios, grupos y funciones). Algunos servicios, por ejemplo AWS Lambda, también permiten adjuntar políticas de permisos a los recursos.

nota

Un administrador de cuentas (o usuario administrador) es un usuario que tiene privilegios de administrador. Para obtener más información, consulte Prácticas recomendadas de IAM en la Guía del usuario de IAM.

Al conceder permisos, usted decide quién obtiene los permisos, para qué recursos se obtienen permisos y qué acciones específicas desea permitir en esos recursos.

CodeCommit recursos y operaciones

En CodeCommit, el recurso principal es un repositorio. Cada recurso tiene asociado un nombre de recurso de Amazon (ARN) único. En las políticas se emplean nombres de recurso de Amazon (ARN) para identificar los recursos a los que se aplican las políticas. Para obtener más información ARNs, consulte Amazon Resource Names (ARN) y AWS Service Namespaces en. Referencia general de Amazon Web Services CodeCommit actualmente no admite otros tipos de recursos, que se denominan subrecursos.

En la siguiente tabla se describe cómo especificar CodeCommit los recursos.

Tipo de recurso Formato de ARN
Repositorio

arn:aws:codecommit::: region account-id repository-name

Todos los CodeCommit repositorios

arn:aws:codecommit:*

Todos los CodeCommit repositorios pertenecen a la cuenta especificada en la especificada Región de AWS

arn:aws:codecommit::: * region account-id

nota

La mayoría de AWS los servicios utilizan dos puntos (:)) o una barra diagonal (/) como el mismo carácter. ARNs Sin embargo, CodeCommit requiere una coincidencia exacta en los patrones y reglas de los recursos. Al crear patrones de eventos, asegúrese de utilizar los caracteres de ARN correctos para que coincidan con la sintaxis de ARN en el recurso.

Por ejemplo, puede indicar un repositorio específico (MyDemoRepo) en la instrucción usando su ARN de este modo:

"Resource": "arn:aws:codecommit:us-west-2:111111111111:MyDemoRepo"

Para especificar todos los repositorios que pertenecen a una cuenta específica, use el carácter comodín (*) del modo siguiente:

"Resource": "arn:aws:codecommit:us-west-2:111111111111:*"

Para especificar todos los recursos, o si una acción específica de la API no es compatible ARNs, utiliza el carácter comodín (*) en el Resource elemento de la siguiente manera:

"Resource": "*"

También puede utilizar el carácter comodín (*) para especificar todos los recursos que coinciden con parte de un nombre de repositorio. Por ejemplo, el siguiente ARN especifica cualquier CodeCommit repositorio que comience por el nombre MyDemo y que esté registrado en la cuenta de Amazon Web Services 111111111111 en: us-east-2 Región de AWS

arn:aws:codecommit:us-east-2:111111111111:MyDemo*

Para obtener una lista de las operaciones disponibles que funcionan con los CodeCommit recursos, consulteReferencia de permisos de CodeCommit.

Titularidad de los recursos

La cuenta de Amazon Web Services es la propietaria de los recursos que se crean en la cuenta, independientemente de quién los haya creado. En concreto, el propietario de los recursos es la cuenta de Amazon Web Services es la entidad principal (es decir, la cuenta raíz, un usuario de IAM o un rol de IAM) que autentica la solicitud de creación de recursos. Los siguientes ejemplos ilustran cómo funciona:

  • Si crea un usuario de IAM en su cuenta de Amazon Web Services y concede permisos para crear CodeCommit recursos a ese usuario, el usuario podrá crear CodeCommit recursos. Sin embargo, su cuenta de Amazon Web Services, a la que pertenece el usuario, es propietaria de los CodeCommit recursos.

  • Si utiliza las credenciales de la cuenta raíz de su cuenta de Amazon Web Services para crear una regla, su cuenta de Amazon Web Services es la propietaria del CodeCommit recurso.

  • Si crea un rol de IAM en su cuenta de Amazon Web Services con permisos para crear CodeCommit recursos, cualquier persona que pueda asumir el rol podrá crear CodeCommit recursos. Su cuenta de Amazon Web Services, a la que pertenece el rol, es propietaria de los CodeCommit recursos.

Administración del acceso a los recursos

Para administrar el acceso a AWS los recursos, se utilizan las políticas de permisos. Una política de permisos describe quién tiene acceso a qué. En la siguiente sección se explican las opciones para crear políticas de permisos.

nota

En esta sección se analiza el uso de la IAM en el contexto de CodeCommit. No se proporciona información detallada sobre el servicio de IAM. Para obtener más información acerca de IAM, consulte ¿Qué es IAM? en la Guía del usuario de IAM. Para obtener más información acerca de la sintaxis y las descripciones de las políticas del IAM, consulte Referencia de políticas de IAM de en la Guía del usuario de IAM.

Las políticas de permisos que se asocian a una identidad de IAM se denominan políticas basadas en la identidad (políticas de IAM). Las políticas de permisos que se asocian a un recurso se denominan políticas basadas en recursos. Actualmente, solo CodeCommit admite políticas basadas en la identidad (políticas de IAM).

Políticas basadas en identidades (políticas de IAM)

Para administrar el acceso a AWS los recursos, debe adjuntar políticas de permisos a las identidades de IAM. En CodeCommit, se utilizan políticas basadas en la identidad para controlar el acceso a los repositorios. Por ejemplo, puede hacer lo siguiente:

  • Adjunta una política de permisos a un usuario o grupo de tu cuenta: para conceder a un usuario permisos para ver los CodeCommit recursos de la CodeCommit consola, adjunta una política de permisos basada en la identidad al usuario o grupo al que pertenezca el usuario.

  • Asociar una política de permisos a un rol (para conceder permisos entre cuentas): la delegación como, por ejemplo, cuando se desea conceder acceso entre cuentas, implica el establecimiento de una relación de confianza entre la cuenta que posee el recurso (la cuenta que confía) y la cuenta que contiene los usuarios que necesitan acceder al recurso (la cuenta en la que se confía). Una política de permisos concede al usuario del rol los permisos necesarios para realizar las tareas previstas en el recurso. Una política de confianza especifica las cuentas de confianza que pueden conceder permisos a sus usuarios para asumir el rol. Para obtener más información, consulte Términos y conceptos sobre IAM.

    Para conceder permisos entre cuentas, asocie una política de permisos basada en identidad a un rol de IAM. Por ejemplo, el administrador de la cuenta A puede crear un rol para conceder permisos multicuenta a otra cuenta de Amazon Web Services (por ejemplo, la cuenta B) o a un AWS servicio de la siguiente manera:

    1. El administrador de la CuentaA crea un rol de IAM y asocia una política de permisos a dicho rol, que concede permisos sobre los recursos de la CuentaA.

    2. El administrador de la CuentaA asocia una política de confianza al rol que identifica la Cuenta B como la entidad principal que puede asumir el rol.

    3. De este modo, el administrador de la cuenta B puede delegar los permisos para que asuman el rol en cualquier usuario de la cuenta B. De este modo, los usuarios de la cuenta B pueden crear recursos de la cuenta A. Si desea conceder un permiso de AWS servicio para que asuma el rol, el principal de la política de confianza también puede ser el principal de AWS servicio. Para obtener más información, consulte Delegación en Términos y conceptos sobre IAM.

    Para obtener más información sobre el uso de IAM para delegar permisos, consulte Administración de accesos en la Guía del usuario de IAM.

La siguiente política de ejemplo permite a un usuario crear una ramificación en un repositorio denominado MyDemoRepo:

JSON
{ "Version":"2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "codecommit:CreateBranch" ], "Resource" : "arn:aws:codecommit:us-east-2:111122223333:MyDemoRepo" } ] }

Para restringir las llamadas y los recursos a los que los usuarios de su cuenta tienen acceso, cree políticas específicas de IAM y, a continuación, asocie esas políticas a usuarios de IAM. Para obtener más información sobre cómo crear funciones de IAM y explorar ejemplos de declaraciones de política de IAM CodeCommit, consulte. Ejemplos de políticas de identidad administradas por los clientes

Políticas basadas en recursos

Algunos servicios, como Amazon S3, también admiten políticas de permisos basadas en recursos. Por ejemplo, puede adjuntar una política basada en recursos a un bucket de S3 para gestionar los permisos de acceso a ese bucket. CodeCommit no admite políticas basadas en recursos, pero puedes usar etiquetas para identificar los recursos, que luego puedes usar en las políticas de IAM. Para ver un ejemplo de una política basada en etiquetas, consulte Políticas basadas en identidades (políticas de IAM).

El alcance de los recursos en CodeCommit

En CodeCommit, puede establecer el alcance de las políticas y los permisos basados en la identidad para los recursos, tal y como se describe en. CodeCommit recursos y operaciones Sin embargo, no puede definir el ámbito del permiso ListRepositories para un recurso. En su lugar, debe definir el ámbito para todos los recursos (utilizando el comodín *). De no hacerlo, la acción dará error.

Todos los demás CodeCommit permisos se pueden limitar a los recursos.

Especificar elementos de políticas: recursos, acciones, efectos y entidades principales

Puede crear políticas para permitir o denegar a los usuarios el acceso a los recursos, o permitir o denegar a los usuarios que realicen acciones específicas en esos recursos. CodeCommit define un conjunto de operaciones de API públicas que definen la forma en que los usuarios trabajan con el servicio, ya sea a través de la CodeCommit consola SDKs AWS CLI, la consola o mediante una llamada directa a ellas APIs. Para conceder permisos para estas operaciones de la API, CodeCommit define un conjunto de acciones que puedes especificar en una política.

Algunas operaciones API pueden requerir permisos para realizar más de una acción. Para obtener más información sobre los recursos y las operaciones de API, consulte CodeCommit recursos y operaciones y Referencia de permisos de CodeCommit.

A continuación se indican los elementos básicos de una política:

  • Recurso: para identificar el recurso al que se aplica la política, use un nombre de recurso de Amazon (ARN). Para obtener más información, consulte CodeCommit recursos y operaciones.

  • Acción: para identificar las operaciones del recurso que desea permitir o denegar, utilice palabras de clave de acción. Por ejemplo, según lo especificadoEffect, el codecommit:GetBranch permiso permite o deniega al usuario realizar la GetBranch operación, con lo que se obtienen detalles sobre una rama de un CodeCommit repositorio.

  • Efecto: especifique el efecto que se producirá cuando el usuario solicite la acción específica, ya sea permitir o denegar. Si no concede acceso de forma explícita (permitir) a un recurso, el acceso se deniega implícitamente. También puede denegar explícitamente el acceso a un recurso para asegurarse de que un usuario no pueda obtener acceso a él, aunque otra política le conceda acceso.

  • Principal: en las políticas basadas en la identidad (políticas de IAM), el único tipo de políticas que CodeCommit admite, es el usuario al que está vinculada la política, es el principal implícito.

Para obtener más información sobre la sintaxis de las políticas de IAM consulte la Referencia sobre la política de IAM en la Guía del usuario de IAM.

Para ver una tabla que muestra todas las acciones de la CodeCommit API y los recursos a los que se aplican, consulte. Referencia de permisos de CodeCommit

Especificación de las condiciones de una política

Al conceder permisos, puede utilizar el lenguaje de la política de acceso de IAM para especificar las condiciones en las que se debe aplicar una política. Por ejemplo, es posible que desee que solo se aplique una política después de una fecha específica. Para obtener más información sobre cómo especificar condiciones en un lenguaje de política, consulte Condición y Gramática de políticas en la Guía de usuario de IAM.

Cómo expresar condiciones, se usan claves de condición predefinidas. No hay claves de condición específicas para CodeCommit. Sin embargo, hay claves AWS de condición generales que puede utilizar según convenga. Para obtener una lista completa de las claves AWS de ancho, consulte las claves disponibles para las condiciones en la Guía del usuario de IAM.