Beispiel: AppStream 2.0 Anwendung Amazon S3 Bucket Policy Cross-Service Confused Deputy Prevention - Amazon AppStream 2.0

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.

Beispiel: AppStream 2.0 Anwendung Amazon S3 Bucket Policy Cross-Service Confused Deputy Prevention

Wenn Sie Daten in einem Amazon-S3-Bucket speichern, ist der Bucket möglicherweise dem Problem des verwirrten Stellvertreters ausgesetzt. Dadurch können Daten wie Elastic-Flotten, Anwendungsblocks, Setup-Skripts, Anwendungssymbole und Sitzungsskripts anfällig für böswillige Akteure werden.

Um Probleme mit verwirrten Stellvertretern zu vermeiden, können Sie die aws:SourceAccount-Bedingung oder die aws:SourceArn-Bedingung in der Amazon-S3-Bucket-Richtlinie für ELASTIC-FLEET-EXAMPLE-BUCKET angeben.

Die folgenden Ressourcenrichtlinien zeigen, wie Sie das Problem des verwirrten Stellvertreters auf eine der folgenden Weisen vermeiden können:

  • Das aws:SourceAccount mit deiner AWS Konto-ID

  • Der globale Bedingungskontextschlüssel aws:SourceArn

AppStream 2.0 unterstützt derzeit nicht die Verhinderung verwirrter Stellvertreter für Anwendungssymbole. Der Service unterstützt nur VHD-Dateien und Setup-Skripts. Wenn Sie versuchen, zusätzliche Bedingungen für Anwendungssymbole hinzuzufügen, werden die Symbole den Endbenutzern nicht angezeigt.

Im folgenden Beispiel erlaubt die Bucket-Richtlinie nur den Zugriff auf AppStream 2.0-Elastic-Flottenressourcen im Konto des BesitzersELASTIC_FLEET_EXAMPLE_BUCKET.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": "appstream.amazonaws.com" }, "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/vhd-folder/*", "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/scripts/*" ], "Condition": { "StringEquals": { "aws:SourceAccount": "your AWS-Konto ID" } } }, { "Sid": "AllowRetrievalPermissionsToS3AppIconsForAppStream", "Effect": "Allow", "Principal": { "Service": "appstream.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/app-icons/*" } ] }

Sie können die aws:SourceArn-Bedingung auch verwenden, um den Ressourcenzugriff für bestimmte Ressourcen zu beschränken.

Anmerkung

Wenn Sie den vollständigen ARN der Ressource nicht kennen oder wenn Sie mehrere Ressourcen angeben, verwenden Sie den globalen Bedingungskontextschlüssel aws:SourceArn mit Platzhaltern (*) für die unbekannten Teile des ARN.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": "appstream.amazonaws.com" }, "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/vhd-folder/*", "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/scripts/*" ], "Condition": { "ArnLike": { "aws:SourceArn": "arn:{aws-partition}:appstream:{your region name}:{your AWS account ID}:app-block/*" } } }, { "Sid": "AllowRetrievalPermissionsToS3AppIconsForAppStream", "Effect": "Allow", "Principal": { "Service": "appstream.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/app-icons/*" } ] }

Sie können die aws:SourceArn- und aws:SourceAccount-Bedingungen verwenden, um den Ressourcenzugriff für bestimmte Ressourcen und Konten zu beschränken.

Anmerkung

Wenn Sie den vollständigen ARN der Ressource nicht kennen oder wenn Sie mehrere Ressourcen angeben, verwenden Sie den globalen Bedingungskontextschlüssel aws:SourceArn mit Platzhaltern (*) für die unbekannten Teile des ARN.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": "appstream.amazonaws.com" }, "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/vhd-folder/*", "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/scripts/*" ], "Condition": { "ArnLike": { "aws:SourceArn": "arn:{aws partition}:appstream:{your region name}:{your AWS account ID}:app-block/*" }, "StringEquals": { "aws:SourceAccount": "your AWS account ID" } } }, { "Sid": "AllowRetrievalPermissionsToS3AppIconsForAppStream", "Effect": "Allow", "Principal": { "Service": "appstream.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/app-icons/*" } ] }