Solución de problemas de implementaciones de AWS CDK - AWS Kit Cloud Development Kit (AWS CDK) v2

Esta es la guía para desarrolladores de AWS CDK v2. La primera versión del CDK pasó a la etapa de mantenimiento el 1.° de junio de 2022 y no cuenta con soporte desde el 1.° de junio de 2023.

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.

Solución de problemas de implementaciones de AWS CDK

Solucione problemas comunes al implementar aplicaciones del AWS Cloud Development Kit (AWS CDK).

Creación de entidades principales incorrectas al momento de la implementación

Cuando se implementan aplicaciones de CDK que contienen roles de AWS Identity and Access Management (IAM) con entidades principales de servicio, se descubre que se están creando dominios incorrectos para las entidades principales de servicio.

El siguiente es un ejemplo básico de creación de un rol de IAM que puede asumir Registros de Amazon CloudWatch al usar su entidad principal de servicio:

import * as cdk from 'aws-cdk-lib'; import * as iam from 'aws-cdk-lib/aws-iam'; import { Construct } from 'constructs'; export class MyCdkProjectStack extends cdk.Stack { constructor(scope: Construct, id: string, props?: cdk.StackProps) { super(scope, id, props); // Create an IAM role for CloudWatch Logs to assume const cloudWatchLogsRole = new iam.Role(this, 'CloudWatchLogsRole', { assumedBy: new iam.ServicePrincipal('logs.amazonaws.com'), // This is for CloudWatch Logs managedPolicies: [ iam.ManagedPolicy.fromAwsManagedPolicyName('service-role/AWSCloudWatchLogsFullAccess') ] }); // You can then use this role in other constructs or configurations where CloudWatch Logs needs to assume a role } }

Al implementar esta pila, debe crearse una entidad principal de servicio denominada logs.amazonaws.com. En la mayoría de los casos, los servicios de AWS utilizan la siguiente denominación para las entidades principales de servicio: <service>.amazonaws.com.

Causas habituales

Si está utilizando una versión de AWS CDK anterior a la versión 2.150.0, es posible que encuentre este error. En versiones anteriores de AWS CDK, la nomenclatura de las entidades principales de servicio no estaba estandarizada, lo que podía provocar la creación de entidades principales de servicio con dominios incorrectos.

En la versión 2.51.0 de AWS CDK, se implementó una corrección mediante la estandarización de todas las entidades principales de servicio creadas de manera automática para usar <service>.amazonaws.com siempre que sea posible. Esta solución estaba disponible al permitir la marca de característica @aws-cdk/aws-iam:standardizedServicePrincipals.

A partir de la versión 2.150.0 de AWS CDK, este se convirtió en el comportamiento predeterminado.

Resolución

Actualice a la versión 2.150.0 de AWS CDK o más reciente.

Si no puede actualizar AWS CDK a la versión 2.150.0 o más reciente, debe actualizar al menos a la versión 2.51.0 o posterior. Luego, habilite la siguiente marca de característica en su archivo cdk.json: @aws-cdk/aws-iam:standardizedServicePrincipals.