Identity and Access Management y Amazon CodeCatalyst - Amazon CodeCatalyst

Identity and Access Management y Amazon CodeCatalyst

En Amazon CodeCatalyst, se crea y utiliza un ID de creador de AWS para iniciar sesión y acceder a espacios y proyectos. Un ID de creador de AWS no es una identidad en AWS Identity and Access Management (IAM) ni existe en una Cuenta de AWS. Sin embargo, CodeCatalyst se integra con IAM cuando verifica un espacio con fines de facturación y cuando se conecta a una Cuenta de AWS para crear y usar recursos en esa Cuenta de AWS.

AWS Identity and Access Management (IAM) es un Servicio de AWS que ayuda a los administradores a controlar de forma segura el acceso a los recursos de AWS. Los administradores de IAM controlan quién puede estar autenticado (ha iniciado sesión) y autorizado (tiene permisos) para utilizar recursos. IAM es un Servicio de AWS que se puede utilizar sin cargo adicional.

Al crear un espacio en Amazon CodeCatalyst, debe conectar una Cuenta de AWS como cuenta de facturación del espacio. Debe tener permisos de administrador en la Cuenta de AWS para verificar el espacio de CodeCatalyst o tener el permiso específico. También tiene la opción de añadir al espacio un rol de IAM que CodeCatalyst pueda utilizar para crear recursos y acceder a ellos en esa Cuenta de AWS conectada. Esto se denomina rol de servicio. Puede optar por crear conexiones con más de una Cuenta de AWS y crear roles de servicio para CodeCatalyst en cada una de esas cuentas.

nota

La facturación de CodeCatalyst se realiza en la Cuenta de AWS designada como cuenta de facturación. Sin embargo, si crea un rol de servicio de CodeCatalyst en esa Cuenta de AWS o en cualquier otra Cuenta de AWS conectada, los recursos creados y utilizados por el rol de servicio de CodeCatalyst se facturarán en esa Cuenta de AWS conectada. Para obtener más información, consulte Managing billing en la Guía del administrador de Amazon CodeCatalyst.

Políticas basadas en identidad en IAM

Las políticas basadas en identidad son documentos de políticas de permisos JSON que puede asociar a una identidad. Esa identidad puede ser un usuario, un grupo de usuarios o un rol. Estas políticas controlan qué acciones pueden realizar los usuarios y los roles, en qué recursos y en qué condiciones. Para obtener más información sobre cómo crear una política basada en identidad, consulte Creación de políticas de IAM en la Guía del usuario de IAM.

Con las políticas basadas en identidades de IAM, puede especificar las acciones y los recursos permitidos o denegados, así como las condiciones en las que se permiten o deniegan las acciones. No es posible especificar la entidad principal en una política basada en identidad porque se aplica al usuario o rol al que está adjunto. Para obtener más información sobre los elementos que puede utilizar en una política de JSON, consulte Referencia de los elementos de las políticas de JSON de IAM en la Guía del usuario de IAM.

Ejemplos de políticas basadas en identidades para CodeCatalyst

Para ver ejemplos de políticas basadas en identidad de CodeCatalyst, consulte Ejemplos de políticas basadas en identidades para conexiones de CodeCatalyst.

Acciones de políticas en IAM

Los administradores pueden utilizar las políticas JSON de AWS para especificar quién tiene acceso a qué. Es decir, qué acciones puede realizar cada entidad principal en qué recursos y en qué condiciones.

El elemento Action de una política JSON describe las acciones que puede utilizar para conceder o denegar el acceso en una política. Las acciones de la política generalmente tienen el mismo nombre que la operación de API de AWS asociada. Hay algunas excepciones, como acciones de solo permiso que no tienen una operación de API coincidente. También hay algunas operaciones que requieren varias acciones en una política. Estas acciones adicionales se denominan acciones dependientes.

Para especificar varias acciones en una única instrucción, sepárelas con comas.

"Action": [ "prefix:action1", "prefix:action2" ]

Recursos de políticas en IAM

Los administradores pueden utilizar las políticas JSON de AWS para especificar quién tiene acceso a qué. Es decir, qué acciones puede realizar cada entidad principal en qué recursos y en qué condiciones.

El elemento Resource de la política JSON especifica el objeto u objetos a los que se aplica la acción. Las instrucciones deben contener un elemento Resource o NotResource. Como práctica recomendada, especifique un recurso utilizando el Nombre de recurso de Amazon (ARN). Puede hacerlo para acciones que admitan un tipo de recurso específico, conocido como permisos de nivel de recurso.

Para las acciones que no admiten permisos de nivel de recurso, como las operaciones de descripción, utilice un carácter comodín (*) para indicar que la instrucción se aplica a todos los recursos.

"Resource": "*"

Claves de condición de política en IAM

Los administradores pueden utilizar las políticas JSON de AWS para especificar quién tiene acceso a qué. Es decir, qué acciones puede realizar cada entidad principal en qué recursos y en qué condiciones.

El elemento Condition (o bloque de Condition) permite especificar condiciones en las que entra en vigor una instrucción. El elemento Condition es opcional. Puede crear expresiones condicionales que utilicen operadores de condición, tales como igual o menor que, para que la condición de la política coincida con los valores de la solicitud.

Si especifica varios elementos de Condition en una instrucción o varias claves en un único elemento de Condition, AWS las evalúa mediante una operación AND lógica. Si especifica varios valores para una única clave de condición, AWS evalúa la condición con una operación lógica OR. Se deben cumplir todas las condiciones antes de que se concedan los permisos de la instrucción.

También puede utilizar variables de marcador de posición al especificar condiciones. Para obtener más información, consulte Elementos de la política de IAM: variables y etiquetas en la Guía del usuario de IAM.

AWS admite claves de condición globales y claves de condición específicas del servicio. Para ver todas las claves de condición globales de AWS, consulte Claves de contexto de condición globales de AWSen la Guía del usuario de IAM.

Ejemplos de políticas basadas en identidades para conexiones de CodeCatalyst

En CodeCatalyst, son necesarias las Cuentas de AWS para administrar la facturación de un espacio y acceder a los recursos de los flujos de trabajo de proyecto. La conexión de una cuenta se utiliza para autorizar la adición de Cuentas de AWS en un espacio. Las políticas basadas en identidad se usan en las Cuentas de AWS conectadas.

De forma predeterminada, los usuarios y roles no tienen permiso para crear ni modificar recursos de CodeCatalyst. Tampoco pueden realizar tareas mediante la AWS Management Console, la AWS Command Line Interface (AWS CLI) o la API de AWS. Un administrador de IAM debe crear políticas de IAM que concedan a los usuarios y a los roles permiso para realizar acciones en los recursos que necesitan. El administrador debe asociar esas políticas a los usuarios que las necesiten.

Las siguientes políticas de IAM de ejemplo conceden permisos para llevar a cabo acciones relacionadas con las conexiones de cuentas. Puede usarlas para limitar el acceso de cuentas conectadas en CodeCatalyst.

Ejemplo 1: Permisos a un usuario para aceptar solicitudes de conexión en una única Región de AWS

La siguiente política de permisos solo permite a los usuarios ver y aceptar solicitudes de conexiones entre CodeCatalyst y Cuentas de AWS. Además, la política utiliza una condición para permitir solo las acciones en la región us-west-2 y no desde otras Regiones de AWS. Para ver y aprobar la solicitud, el usuario inicia sesión en la AWS Management Console con la misma cuenta que se ha especificado en la solicitud.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codecatalyst:AcceptConnection", "codecatalyst:GetPendingConnection" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestedRegion": "us-west-2" } } } ] }

Ejemplo 2: Permisos para administrar las conexiones en la consola para una sola Región de AWS

La siguiente política de permisos permite a los usuarios administrar las conexiones entre CodeCatalyst y las Cuentas de AWS en una sola región. La política utiliza una condición para permitir solo las acciones en la región us-west-2 y no desde otras Regiones de AWS. Tras crear una conexión, puede crear el rol CodeCatalystWorkflowDevelopmentRole-spaceName seleccionando la opción en la AWS Management Console. En la política de ejemplo, la condición para la acción iam:PassRole incluye las entidades principales de servicio de CodeCatalyst. Solo se crearán en la AWS Management Console los roles con ese acceso.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codecatalyst:*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestedRegion": "us-west-2" } } }, { "Effect": "Allow", "Action": [ "iam:CreateRole", "iam:CreatePolicy", "iam:AttachRolePolicy", "iam:ListRoles" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": [ "codecatalyst.amazonaws.com", "codecatalyst-runner.amazonaws.com" ] } } } ] }

Ejemplo 3: Denegación de la administración de conexiones

La siguiente política de permisos deniega a los usuarios la capacidad de administrar las conexiones entre CodeCatalyst y Cuentas de AWS.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "codecatalyst:*" ], "Resource": "*" } ] }

Referencia de permisos de CodeCatalyst

Esta sección proporciona una referencia de permisos para aquellas acciones utilizadas con el recurso de conexión de la Cuentas de AWS que estén conectadas a CodeCatalyst. En la siguiente sección, se describen las acciones que solo pueden llevarse a cabo con permisos y que están relacionadas con la conexión de cuentas.

Permisos necesarios para las conexiones de cuentas

Los siguientes permisos son necesarios para trabajar con conexiones de cuentas.

Permisos de CodeCatalyst para conexiones de cuentas Permisos necesarios Recursos
AcceptConnection Necesario para aceptar una solicitud para conectar esta cuenta a un espacio de CodeCatalyst. Se trata únicamente de un permiso de política de IAM, no de una acción de API.

Solo admite un carácter comodín (*) en el elemento Resource de la política.

AssociateIamRoleToConnection Necesario para asociar un rol de IAM a una conexión de cuenta. Se trata únicamente de un permiso de política de IAM, no de una acción de API. arn:aws:codecatalyst:region:account_ID:/connections/connection_ID
DeleteConnection Necesario para eliminar una conexión de cuenta. Se trata únicamente de un permiso de política de IAM, no de una acción de API. arn:aws:codecatalyst:region:account_ID:/connections/connection_ID
DisassociateIamRoleFromConnection Necesario para desasociar un rol de IAM de una conexión de cuenta. Se trata únicamente de un permiso de política de IAM, no de una acción de API. arn:aws:codecatalyst:region:account_ID:/connections/connection_ID
GetBillingAuthorization Necesario para describir la autorización de facturación de una conexión de cuenta. Se trata únicamente de un permiso de política de IAM, no de una acción de API. arn:aws:codecatalyst:region:account_ID:/connections/connection_ID
GetConnection Necesario para obtener una conexión de cuenta. Se trata únicamente de un permiso de política de IAM, no de una acción de API. arn:aws:codecatalyst:region:account_ID:/connections/connection_ID
GetPendingConnection Necesario para obtener una solicitud pendiente para conectar esta cuenta a un espacio de CodeCatalyst. Se trata únicamente de un permiso de política de IAM, no de una acción de API.

Solo admite un carácter comodín (*) en el elemento Resource de la política.

ListConnections Necesario para enumerar las conexiones de cuentas que no estén pendientes. Se trata únicamente de un permiso de política de IAM, no de una acción de API.

Solo admite un carácter comodín (*) en el elemento Resource de la política.

ListIamRolesForConnection Necesario para enumerar los roles de IAM asociados con una conexión de cuenta. Se trata únicamente de un permiso de política de IAM, no de una acción de API. arn:aws:codecatalyst:region:account_ID:/connections/connection_ID
ListTagsForResource Necesario para enumerar las etiquetas asociadas con una conexión de cuenta. Se trata únicamente de un permiso de política de IAM, no de una acción de API. arn:aws:codecatalyst:region:account_ID:/connections/connection_ID
PutBillingAuthorization Necesario para crear o actualizar la autorización de facturación de una conexión de cuenta. Se trata únicamente de un permiso de política de IAM, no de una acción de API. arn:aws:codecatalyst:region:account_ID:/connections/connection_ID
RejectConnection Necesario para rechazar una solicitud para conectar esta cuenta a un espacio de CodeCatalyst. Se trata únicamente de un permiso de política de IAM, no de una acción de API.

Solo admite un carácter comodín (*) en el elemento Resource de la política.

TagResource Necesario para crear o editar las etiquetas asociadas con una conexión de cuenta. Se trata únicamente de un permiso de política de IAM, no de una acción de API. arn:aws:codecatalyst:region:account_ID:/connections/connection_ID
UntagResource Necesario para eliminar las etiquetas asociadas con una conexión de cuenta. Se trata únicamente de un permiso de política de IAM, no de una acción de API. arn:aws:codecatalyst:region:account_ID:/connections/connection_ID

Permisos necesarios para las aplicaciones de IAM Identity Center

Se requieren los siguientes permisos para trabajar con aplicaciones de IAM Identity Center.

Permisos de CodeCatalyst para las aplicaciones de IAM Identity Center Permisos necesarios Recursos
AssociateIdentityCenterApplicationToSpace Necesario para asociar una aplicación de IAM Identity Center a un espacio de CodeCatalyst. Se trata únicamente de un permiso de política de IAM, no de una acción de API. arn:aws:codecatalyst:region:account_ID:/identity-center-applications/identity-center-application_ID
AssociateIdentityToIdentityCenterApplication Necesario para asociar una identidad con una aplicación de IAM Identity Center a un espacio de CodeCatalyst. Se trata únicamente de un permiso de política de IAM, no de una acción de API. arn:aws:codecatalyst:region:account_ID:/identity-center-applications/identity-center-application_ID
BatchAssociateIdentitiesToIdentityCenterApplication Necesario para asociar varias identidades con una aplicación de IAM Identity Center a un espacio de CodeCatalyst. Se trata únicamente de un permiso de política de IAM, no de una acción de API. arn:aws:codecatalyst:region:account_ID:/identity-center-applications/identity-center-application_ID
BatchDisassociateIdentitiesFromIdentityCenterApplication Necesario para desasociar varias identidades desde una aplicación de IAM Identity Center a un espacio de CodeCatalyst. Se trata únicamente de un permiso de política de IAM, no de una acción de API. arn:aws:codecatalyst:region:account_ID:/identity-center-applications/identity-center-application_ID
CreateIdentityCenterApplication Necesario para crear una aplicación de IAM Identity Center. Se trata únicamente de un permiso de política de IAM, no de una acción de API. arn:aws:codecatalyst:region:account_ID:/identity-center-applications/identity-center-application_ID
CreateSpaceAdminRoleAssignment Necesario para crear una asignación de roles de administrador para un espacio de CodeCatalyst y una aplicación del IAM Identity Center determinados. Se trata únicamente de un permiso de política de IAM, no de una acción de API. arn:aws:codecatalyst:region:account_ID:/identity-center-applications/identity-center-application_ID
DeleteIdentityCenterApplication Necesario para eliminar una aplicación de IAM Identity Center. Se trata únicamente de un permiso de política de IAM, no de una acción de API. arn:aws:codecatalyst:region:account_ID:/identity-center-applications/identity-center-application_ID
DisassociateIdentityCenterApplicationFromSpace Necesario para desasociar una aplicación de IAM Identity Center de un espacio de CodeCatalyst. Se trata únicamente de un permiso de política de IAM, no de una acción de API. arn:aws:codecatalyst:region:account_ID:/identity-center-applications/identity-center-application_ID
DisassociateIdentityFromIdentityCenterApplication Necesario para desasociar una identidad de una aplicación de IAM Identity Center para un espacio de CodeCatalyst. Se trata únicamente de un permiso de política de IAM, no de una acción de API. arn:aws:codecatalyst:region:account_ID:/identity-center-applications/identity-center-application_ID
GetIdentityCenterApplication Necesario para obtener más información sobre una aplicación de IAM Identity Center. Se trata únicamente de un permiso de política de IAM, no de una acción de API. arn:aws:codecatalyst:region:account_ID:/identity-center-applications/identity-center-application_ID
ListIdentityCenterApplications Necesario para ver una lista de todas las aplicaciones de IAM Identity Center de la cuenta. Se trata únicamente de un permiso de política de IAM, no de una acción de API.

Solo admite un carácter comodín (*) en el elemento Resource de la política.

ListIdentityCenterApplicationsForSpace Necesario para ver una lista de aplicaciones de IAM Identity Center por espacio de CodeCatalyst. Se trata únicamente de un permiso de política de IAM, no de una acción de API. arn:aws:codecatalyst:region:account_ID:/identity-center-applications/identity-center-application_ID
ListSpacesForIdentityCenterApplication Necesario para ver una lista de espacios de CodeCatalyst por aplicación de IAM Identity Center. Se trata únicamente de un permiso de política de IAM, no de una acción de API. arn:aws:codecatalyst:region:account_ID:/identity-center-applications/identity-center-application_ID
SynchronizeIdentityCenterApplication Necesario para sincronizar una aplicación de IAM Identity Center con el almacén de identidades de respaldo. Se trata únicamente de un permiso de política de IAM, no de una acción de API. arn:aws:codecatalyst:region:account_ID:/identity-center-applications/identity-center-application_ID
UpdateIdentityCenterApplication Necesario para actualizar una aplicación de IAM Identity Center. Se trata únicamente de un permiso de política de IAM, no de una acción de API. arn:aws:codecatalyst:region:account_ID:/identity-center-applications/identity-center-application_ID