Esempio: policy sui bucket di Amazon S3 AppStream 2.0, prevenzione della confusione tra diversi servizi - Amazon AppStream 2.0

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esempio: policy sui bucket di Amazon S3 AppStream 2.0, prevenzione della confusione tra diversi servizi

Quando si archiviano i dati in un bucket S3, è possibile che il bucket sia esposto a problemi "confused deputy". Ciò può lasciare dati come i parchi istanze elastici, i blocchi app, gli script di configurazione, le icone delle applicazioni e gli script di sessione vulnerabili a operazioni da parte di utenti malintenzionati.

Per evitare problemi "confused deputy", puoi specificare la condizione aws:SourceAccount o aws:SourceArn nella policy del bucket di Amazon S3 per. ELASTIC-FLEET-EXAMPLE-BUCKET

Le policy delle risorse riportate di seguito mostrano come evitare problemi "confused deputy" con una delle seguenti soluzioni:

  • Poi aws:SourceAccount con l'ID del tuo account AWS

  • La chiave di contesto delle condizioni globali aws:SourceArn

AppStream La versione 2.0 attualmente non supporta la prevenzione confusa delle icone delle applicazioni. Il servizio supporta solo VHD file e script di installazione. Se tenti di aggiungere ulteriori condizioni per le icone delle applicazioni, queste non verranno visualizzate dagli utenti finali.

Nell'esempio seguente, la policy bucket consente l'accesso solo alle risorse Elastic Fleet AppStream 2.0 presenti nell'account del proprietario. ELASTIC_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 Account AWS ID" } } }, { "Sid": "AllowRetrievalPermissionsToS3AppIconsForAppStream", "Effect": "Allow", "Principal": { "Service": "appstream.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/app-icons/*" } ] }

È inoltre possibile utilizzare la condizione aws:SourceArn per limitare l'accesso alle risorse per risorse specifiche.

Nota

Se non conosci la dimensione completa ARN di una risorsa o desideri specificare più risorse, usa la chiave aws:SourceArn global context condition con wildcards (*) per le parti sconosciute di. 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/*" } ] }

Puoi utilizzare le condizioni aws:SourceArn e aws:SourceAccount per limitare l'accesso alle risorse per risorse specifiche.

Nota

Se non conosci la quantità completa ARN di una risorsa o se desideri specificare più risorse, usa la chiave aws:SourceArn global context condition con wildcards (*) per le parti sconosciute di. 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/*" } ] }