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 a AWS CodeCommit requiere credenciales. Esas credenciales deben tener permisos para acceder a AWS los recursos, como los CodeCommit repositorios, y a tu IAM usuario, que utilizas para gestionar tus credenciales de Git o la clave SSH pública que utilizas para realizar las conexiones de Git. En las siguientes secciones, se proporciona información sobre cómo puedes usar AWS Identity and Access Management (IAM) y cómo ayudarte 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 IAM usuario 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:

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

    Puedes generar credenciales de Git o asociar claves SSH públicas a tu IAM usuario, o puedes instalarlas y configurarlasgit-remote-codecommit. Estas son las formas más sencillas de configurar Git para que funcione con tus CodeCommit repositorios. Con las credenciales de Git, generas un nombre de usuario y una contraseña estáticos enIAM. Luego, usa estas credenciales para las HTTPS conexiones con Git y cualquier herramienta de terceros que admita la autenticación de nombre de usuario y contraseña de Git. Con SSH las conexiones, creas archivos de claves públicas y privadas en tu máquina local que Git CodeCommit usa para la SSH autenticación. Asocias la clave pública a tu IAM usuario y guardas la clave privada en tu máquina local. git-remote-codecommitamplía el propio Git y no requiere configurar las 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 Interface ()AWS CLI. Las CLI herramientas SDK y utilizan las claves de acceso para firmar criptográficamente sus 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 entrantesAPI. 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 puedes usar credenciales de Git ni pares de claves SSH público-privadas con el usuario de tu cuenta raíz. Por estas razones, no recomendamos usar el usuario de tu cuenta raíz cuando interactúes con CodeCommit él.

    importante

    Por motivos de seguridad, te recomendamos que utilices las credenciales raíz únicamente para crear un usuario administrador, es decir, un IAMusuario con todos los permisos de acceso a tu AWS cuenta. A continuación, puede usar este usuario administrador para crear otros IAM usuarios y roles con permisos limitados. Para obtener más información, consulte Prácticas IAM recomendadas y Creación de un usuario y un grupo de administradores en la Guía del IAM usuario.

  • IAMIdentity Center y los usuarios en 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 se recomienda como práctica recomendada para la mayoría de los usuarios que trabajan con AWSél, IAM Identity Center actualmente no proporciona mecanismos para las credenciales o los pares de SSH claves de Git. 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, incluidos los que requieren acceso de administrador, 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 de usuarios de su empresa, un proveedor de identidades web AWS Directory Service, el directorio del Centro de Identidad o cualquier usuario al que acceda Servicios de AWS mediante las credenciales proporcionadas a través de una fuente de identidad. Cuando las identidades federadas acceden Cuentas de AWS, asumen funciones y las funciones proporcionan credenciales temporales.

    Para una administración de acceso centralizada, le recomendamos que utiliza AWS IAM Identity Center. Puede crear usuarios y grupos en IAM Identity Center, o puede conectarse y sincronizarse con un conjunto de usuarios y grupos de su propia fuente de identidad para usarlos en todas sus aplicaciones Cuentas de AWS . Para obtener información sobre IAM Identity Center, consulte ¿Qué es IAM Identity Center? en la Guía AWS IAM Identity Center del usuario.

  • IAMrol: al igual que un IAM usuario, un IAMrol es una IAM identidad que puedes crear en tu cuenta para conceder permisos específicos.

    Un IAMrol es una identidad dentro de ti Cuenta de AWS que tiene permisos específicos. Es similar a un IAM usuario, pero no está asociado a una persona específica. Para asumir temporalmente un IAM rol en la AWS Management Console, puede cambiar de un IAM rol de usuario a uno (consola). Puede asumir un rol llamando a una AWS API operación AWS CLI o o utilizando una operación personalizadaURL. Para obtener más información sobre los métodos de uso de los roles, consulte Métodos para asumir un rol en la Guía del IAM usuario.

    IAMlos roles con credenciales temporales son útiles en las siguientes situaciones:

    • Acceso de usuario federado: para asignar permisos a una identidad federada, puedes crear un rol y definir sus permisos. 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 sobre los roles para la federación, consulte Crear un rol para un proveedor de identidades externo (federación) en la Guía del IAM usuario. Si usa IAM Identity Center, configura un conjunto de permisos. Para controlar a qué pueden acceder sus identidades después de autenticarse, IAM Identity Center correlaciona el conjunto de permisos con un rol en. IAM 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 .

    • Permisos IAM de usuario temporales: un IAM usuario o rol puede asumir un IAM rol para asumir temporalmente diferentes permisos para una tarea específica.

    • Acceso multicuenta: puedes usar un IAM rol para permitir que alguien (un responsable de confianza) de una cuenta diferente acceda a los recursos de tu cuenta. Los roles son la forma principal de conceder acceso entre cuentas. Sin embargo, con algunos Servicios de AWS, puedes adjuntar una política directamente a un recurso (en lugar de usar un rol como proxy). Para conocer la diferencia entre las funciones y las políticas basadas en recursos para el acceso multicuenta, consulta el tema sobre el acceso a los recursos entre cuentas IAM en la Guía del IAM usuario.

    • Acceso entre servicios: algunos Servicios de AWS utilizan funciones en otros. Servicios de AWS Por ejemplo, cuando realizas una llamada en un servicio, es habitual que ese servicio ejecute aplicaciones en Amazon EC2 o almacene objetos en Amazon S3. Es posible que un servicio haga esto usando los permisos de la entidad principal, usando un rol de servicio o usando un rol vinculado al servicio.

      • Sesiones de acceso directo (FAS): cuando utilizas un IAM usuario o un rol para realizar acciones en AWS ellas, se te considera director. Cuando utiliza algunos servicios, es posible que realice una acción que desencadene otra acción en un servicio diferente. FASutiliza los permisos del principal que llama a an Servicio de AWS, junto con los que solicitan, Servicio de AWS para realizar solicitudes a los servicios descendentes. FASlas solicitudes solo se realizan cuando un servicio recibe una solicitud que requiere interacciones con otros Servicios de AWS recursos para completarse. En este caso, debe tener permisos para realizar ambas acciones. Para obtener información detallada sobre la política a la hora de realizar FAS solicitudes, consulte Reenviar las sesiones de acceso.

      • Función de servicio: una función de servicio es una IAMfunción que un servicio asume para realizar acciones en su nombre. Un IAM administrador puede crear, modificar y eliminar un rol de servicio desde dentroIAM. Para obtener más información, consulte Crear un rol para delegar permisos a un Servicio de AWS en la Guía del IAM usuario.

      • Función vinculada a un servicio: una función vinculada a un servicio es un tipo de función de servicio que está vinculada a un. Servicio de AWS El servicio puedes asumir el rol para realizar una acción en su nombre. Los roles vinculados al servicio aparecen en usted Cuenta de AWS y son propiedad del servicio. Un IAM administrador puede ver los permisos de los roles vinculados al servicio, pero no editarlos.

    • Aplicaciones que se ejecutan en Amazon EC2: puedes usar un IAM rol para administrar las credenciales temporales de las aplicaciones que se ejecutan en una EC2 instancia y que realizan AWS CLI o AWS API solicitan. Esto es preferible a almacenar las claves de acceso en la EC2 instancia. Para asignar un AWS rol a una EC2 instancia y ponerlo a disposición de todas sus aplicaciones, debe crear un perfil de instancia adjunto a la instancia. Un perfil de instancia contiene el rol y permite que los programas que se ejecutan en la EC2 instancia obtengan credenciales temporales. Para obtener más información, consulta Usar un IAM rol para conceder permisos a las aplicaciones que se ejecutan en EC2 instancias de Amazon en la Guía del IAM usuario.

    nota

    No puedes usar credenciales de Git ni pares de claves SSH público-privadas 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 HTTPS las conexiones 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 pertenece a 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 adjuntar políticas de permisos a IAM las identidades (es decir, usuarios, grupos y roles). 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 las prácticas IAM recomendadas en la Guía del IAM usuario.

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 un Amazon Resource Names (ARN) único asociado. En una política, se utiliza un nombre de recurso de Amazon (ARN) para identificar el recurso al que se aplica la política. Para obtener más información sobreARNs, 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 ARNFormato
Repositorio

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

Todos los repositorios CodeCommit

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 tratan los dos puntos (:)) o una barra inclinada (/) 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 ARN caracteres correctos para que coincidan con la ARN sintaxis del recurso.

Por ejemplo, puede indicar un repositorio específico (MyDemoRepo) en su declaración utilizando ARN lo siguiente:

"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 API acción específica no es compatibleARNs, utilice 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, ARN a continuación se 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 del recurso es la cuenta de Amazon Web Services de la entidad principal (es decir, la cuenta raíz, un IAM usuario o un IAM rol) que autentica la solicitud de creación del recurso. Los siguientes ejemplos ilustran cómo funciona:

  • Si crea un IAM usuario 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 IAM rol 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 de

Para administrar el acceso a AWS los recursos, utilice 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 IAM en el contexto de CodeCommit. No proporciona información detallada sobre el IAM servicio. Para obtener más informaciónIAM, consulte ¿Qué esIAM? en la Guía IAM del usuario. Para obtener información sobre IAM la sintaxis y las descripciones de las IAMpolíticas, consulte la referencia de políticas en la Guía del IAM usuario.

Las políticas de permisos asociadas a una IAM identidad se denominan políticas basadas en la identidad (IAMpolíticas). 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). IAM

Políticas basadas en la identidad (políticas) IAM

Para administrar el acceso a AWS los recursos, debe adjuntar políticas de permisos a IAM las identidades. En CodeCommit, utilizas 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 IAMTérminos y conceptos.

    Para conceder permisos entre cuentas, adjunta a un rol una política de permisos basada en la identidad. 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 cuenta A crea un IAM rol y adjunta una política de permisos al rol que otorga permisos sobre los recursos de la cuenta A.

    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. A continuación, 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 asumir el rol, el principal de la política de confianza también puede ser un director de AWS servicio. Para obtener más información, consulte La delegación en IAMtérminos y conceptos.

    Para obtener más información sobre cómo IAM delegar permisos, consulte Administración de acceso en la Guía del IAM usuario.

El siguiente ejemplo de política permite a un usuario crear una rama en un repositorio denominado MyDemoRepo:

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

Para restringir las llamadas y los recursos a los que tienen acceso los usuarios de tu cuenta, crea IAM políticas específicas y, a continuación, adjunta esas políticas a IAM los usuarios. Para obtener más información sobre cómo crear IAM funciones y explorar ejemplos de declaraciones de IAM políticas CodeCommit, consulteEjemplos 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 administrar los permisos de acceso a ese bucket. CodeCommit no admite políticas basadas en recursos, pero puede usar etiquetas para identificar los recursos, que luego puede usar en las políticas. IAM Para ver un ejemplo de una política basada en etiquetas, consulte Políticas basadas en la identidad (políticas) 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 API operaciones 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 llamándolas directamenteAPIs. Para conceder permisos para estas API operaciones, CodeCommit define un conjunto de acciones que puede especificar en una política.

Algunas API operaciones pueden requerir permisos para más de una acción. Para obtener más información sobre los recursos y API las operaciones, consulte CodeCommit recursos y operaciones yReferencia 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, utiliza 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, lo que obtiene 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 (IAMpolíticas), el único tipo de políticas que CodeCommit admite, el usuario al que está vinculada la política, es el principal implícito.

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

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

Especificación de las condiciones de una política

Al conceder permisos, se utiliza el lenguaje de la política de acceso IAM para especificar las condiciones en las que debe entrar en vigor 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 las condiciones en el lenguaje de una política, consulte la gramática sobre condiciones y políticas en la Guía del IAM usuario.

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 IAMusuario.