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.
Temas
- Políticas basadas en identidad en IAM
- Acciones de políticas en IAM
- Recursos de políticas en IAM
- Claves de condición de política en IAM
- Ejemplos de políticas basadas en identidades para conexiones de CodeCatalyst
- Uso de etiquetas para controlar el acceso a recursos de conexión de cuenta
- Referencia de permisos de CodeCatalyst
- Uso de roles vinculados a servicios para CodeCatalyst
- Políticas administradas de AWS para Amazon CodeCatalyst
- Concesión de acceso a los recursos de AWS de proyectos con roles de IAM
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 |
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: |
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: |
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: |
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: |
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: |
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 |
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 |
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: |
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: |
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: |
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 |
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: |
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: |
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: |
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: |
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: |
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: |
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: |
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: |
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: |
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: |
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: |
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: |
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 |
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: |
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: |
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: |
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: |