Solução de problemas de implantações do CDK da AWS - AWS Kit de desenvolvimento em nuvem (AWS CDK) v2

Este é o Guia do desenvolvedor do AWS CDK v2. O CDK v1 antigo entrou em manutenção em 1º de junho de 2022 e encerrou o suporte em 1º de junho de 2023.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Solução de problemas de implantações do CDK da AWS

Solucione problemas comuns ao implantar aplicações do kit de desenvolvimento em nuvem da AWS (CDK da AWS).

As entidades principais de serviço incorretas estão sendo criadas na implantação

Ao implantar aplicações do CDK que contenham perfis do AWS Identity and Access Management (IAM) com entidades principais de serviço, você descobre que domínios incorretos para as entidades principais de serviço estão sendo criadas.

A seguir está um exemplo básico da criação de um perfil do IAM que pode ser assumido pelo Amazon CloudWatch Logs usando sua entidade principal de serviço:

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 } }

Quando você implanta essa pilha, uma entidade principal de serviço chamada logs.amazonaws.com deve ser criada. Na maioria dos casos, os serviços da AWS usam a nomenclatura a seguir para entidades principais de serviço: <service>.amazonaws.com.

Causas comuns

Se você estiver usando uma versão do AWS CDK anterior à v2.150.0, poderá encontrar esse bug. Nas versões mais antigas do AWS CDK, a nomenclatura das entidades principais de serviço não era padronizada, o que poderia levar à criação de entidades principais de serviço com domínios incorretos.

No AWS CDK v2.51.0, uma correção foi implementada padronizando todas as entidades principais de serviço criadas automaticamente para usar <service>.amazonaws.com quando possível. Essa correção estava disponível ao permitir o sinalizador de atributo de @aws-cdk/aws-iam:standardizedServicePrincipals.

A partir do AWS CDK v2.150.0, esse se tornou o comportamento padrão.

Resolução

Atualize para o AWS CDK v2.150.0 ou mais recente.

Se você não conseguir atualizar para o AWS CDK v2.150.0 ou mais recente, deverá atualizar para pelo menos v2.51.0 ou mais recente. Em seguida, permita o seguinte sinalizador de atributo em seu arquivo cdk.json: @aws-cdk/aws-iam:standardizedServicePrincipals.