Exemple : AppStream 2.0 Politique de compartiment Amazon S3 d'une application, interservices, prévention de la confusion par les adjoints - Amazon AppStream 2.0

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Exemple : AppStream 2.0 Politique de compartiment Amazon S3 d'une application, interservices, prévention de la confusion par les adjoints

Lorsque vous stockez des données dans un compartiment Amazon S3, le compartiment peut être exposé à des problèmes de député confus. Cela peut rendre les données telles que les flottes Elastic, les blocs d’applications, les scripts de configuration, les icônes d’applications et les scripts de session vulnérables aux acteurs malveillants.

Pour éviter les problèmes de député confus, vous pouvez spécifier la condition aws:SourceAccount ou aws:SourceArn dans la politique de compartiment Amazon S3 pour ELASTIC-FLEET-EXAMPLE-BUCKET.

Les politiques de ressources ci-dessous montrent comment éviter le problème de député confus avec l’une des solutions suivantes :

  • Le aws:SourceAccount avec votre identifiant AWS de compte

  • La clé de contexte de condition globale aws:SourceArn

AppStream La version 2.0 ne prend actuellement pas en charge la prévention de la confusion des adjoints pour les icônes des applications. Le service ne prend en charge que les fichiers VHD et les scripts de configuration. Si vous essayez d’ajouter des conditions supplémentaires pour les icônes d’applications, celles-ci ne seront pas affichées aux utilisateurs finaux.

Dans l'exemple suivant, la politique des compartiments autorise uniquement l'accès aux ressources de la flotte Elastic AppStream 2.0 du compte du propriétaireELASTIC_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 Compte AWS ID" } } }, { "Sid": "AllowRetrievalPermissionsToS3AppIconsForAppStream", "Effect": "Allow", "Principal": { "Service": "appstream.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/app-icons/*" } ] }

Vous pouvez également utiliser la condition aws:SourceArn pour limiter l’accès aux ressources pour des ressources spécifiques.

Note

Si vous ne connaissez pas l’ARN complet d’une ressource ou si vous voulez spécifier plusieurs ressources, utilisez la clé de contexte de condition globale aws:SourceArn avec des caractères génériques (*) pour les parties inconnues de l’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/*" } ] }

Vous pouvez utiliser les conditions aws:SourceArn et aws:SourceAccount pour limiter l’accès aux ressources pour des ressources et des comptes spécifiques.

Note

Si vous ne connaissez pas l’ARN complet d’une ressource ou si vous voulez spécifier plusieurs ressources, utilisez la clé de contexte de condition globale aws:SourceArn avec des caractères génériques (*) pour les parties inconnues de l’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/*" } ] }