Dies ist der AWS CDK v2-Entwicklerhandbuch. Das ältere CDK v1 wurde am 1. Juni 2022 in die Wartung aufgenommen und der Support wurde am 1. Juni 2023 eingestellt.
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Beheben Sie häufig auftretende Probleme bei der Bereitstellung von AWS Cloud Development Kit (AWS CDK) Anwendungen.
Bei der Bereitstellung werden falsche Dienstprinzipale erstellt
Bei der Bereitstellung von CDK-Anwendungen, die AWS Identity and Access Management (IAM-) Rollen mit Dienstprinzipalen enthalten, stellen Sie fest, dass falsche Domänen für die Dienstprinzipale erstellt werden.
Im Folgenden finden Sie ein grundlegendes Beispiel für die Erstellung einer IAM-Rolle, die von Amazon CloudWatch Logs mithilfe ihres Service-Principals übernommen werden kann:
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
}
}
Wenn Sie diesen Stack bereitstellen, logs.amazonaws.com
sollte ein Dienstprinzipal mit dem Namen erstellt werden. AWS-Services Verwenden Sie in den meisten Fällen die folgende Benennung für Dienstprinzipale:
.service
.amazonaws.com
Häufige Ursachen
Wenn Sie eine AWS CDK ältere Version als v2.150.0 verwenden, kann dieser Fehler auftreten. In älteren AWS CDK Versionen war die Benennung von Service Principals nicht standardisiert, was zur Erstellung von Service Principals mit falschen Domänen führen konnte.
In AWS CDK Version 2.51.0 wurde ein Fix implementiert, bei dem alle automatisch erstellten Dienstprinzipale standardisiert wurden, sodass sie nach Möglichkeit verwendet werden konnten.
Dieser Fix war verfügbar, indem das Feature-Flag zugelassen wurde. service
.amazonaws.com@aws-cdk/aws-iam:standardizedServicePrincipals
Ab Version AWS CDK 2.150.0 wurde dies zum Standardverhalten.
Auflösung
Führen Sie ein Upgrade auf AWS CDK v2.150.0 oder neuer durch.
Wenn Sie kein Upgrade auf Version AWS CDK 2.150.0 oder neuer durchführen können, müssen Sie ein Upgrade auf mindestens Version 2.51.0 oder neuer durchführen. Lassen Sie dann das folgende Feature-Flag in Ihrer Datei zu:. cdk.json
@aws-cdk/aws-iam:standardizedServicePrincipals