View a markdown version of this page

Cross-service verwirrter Abgeordneter, Prävention - AWS CodeDeploy

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.

Cross-service verwirrter Abgeordneter, Prävention

Das Problem des verwirrten Stellvertreters ist ein Sicherheitsproblem, bei dem eine Entität, die keine Berechtigung zur Durchführung einer Aktion hat, eine privilegiertere Entität zur Durchführung der Aktion zwingen kann. Im AWS Fall eines dienststellenübergreifenden Identitätswechsels kann es zu einem Problem mit verwirrten Stellvertretern kommen. Cross-service Ein Identitätswechsel kann auftreten, wenn ein Dienst (der anrufende Dienst) einen anderen Dienst (den angerufenen Dienst) aufruft. Der Anruf-Dienst kann so manipuliert werden, dass er seine Berechtigungen verwendet, um auf die Ressourcen eines anderen Kunden zu reagieren, auf die er sonst nicht zugreifen dürfte. Um dies zu verhindern, werden Tools AWS bereitgestellt, mit denen Sie Ihre Daten für alle Dienste mit Dienstprinzipalen schützen können, denen Zugriff auf Ressourcen in Ihrem Konto gewährt wurde.

Wir empfehlen die Verwendung der SourceAccount globalen Bedingungsschlüssel aws: SourceArn und aws: in Ressourcenrichtlinien, um die Berechtigungen einzuschränken, die CodeDeploy der Ressource einen anderen Dienst gewähren. Wenn Sie beide globale Bedingungskontextschlüssel verwenden und der aws:SourceArn-Wert die Konto-ID enthält, müssen der aws:SourceAccount-Wert und das Konto im aws:SourceArn-Wert dieselbe Konto-ID verwenden, wenn sie in der gleichen Richtlinienanweisung verwendet wird. Verwenden Sie aws:SourceArn, wenn Sie nur eine Ressource mit dem betriebsübergreifenden Zugriff verknüpfen möchten. Verwenden Sie diese Option, aws:SourceAccount wenn Sie möchten, dass Ressourcen in diesem Konto mit der dienstübergreifenden Nutzung verknüpft werden.

Bei EC2/On-Premises AWS Lambda- und regulären Amazon ECS-Bereitstellungen aws:SourceArn sollte der Wert von den ARN der CodeDeploy Bereitstellungsgruppe enthalten, mit der die CodeDeploy IAM-Rolle übernommen werden darf.

Bei Amazon blue/green ECS-Bereitstellungen, die durch erstellt wurden CloudFormation, aws:SourceArn sollte der Wert von den CloudFormation Stack-ARN enthalten, mit dem die CodeDeploy IAM-Rolle übernommen werden darf.

Der effektivste Weg, sich vor dem Problem des verwirrten Stellvertreters zu schützen, besteht darin, den aws:SourceArn Schlüssel mit dem vollständigen ARN der Ressource zu verwenden. Wenn Sie den vollständigen ARN nicht kennen oder wenn Sie mehrere Ressourcen angeben, verwenden Sie Platzhalterzeichen (*) für die unbekannten Teile.

Sie könnten beispielsweise die folgende Vertrauensrichtlinie bei einer EC2/On-Premises AWS Lambda- oder regulären Amazon ECS-Bereitstellung verwenden:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "codedeploy.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:codedeploy:us-east-1:111122223333:deploymentgroup:myApplication/*" } } } ] }

Für eine Amazon blue/green ECS-Bereitstellung CloudFormation, die über erstellt wurde, können Sie Folgendes verwenden:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "codedeploy.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:cloudformation:us-east-1:111122223333:stack/MyCloudFormationStackName/*" } } } ] }