Exemplo: aplicativo AppStream 2.0: política de bucket do Amazon S3, multisserviços, prevenção delegada confusa - Amazon AppStream 2.0

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Exemplo: aplicativo AppStream 2.0: política de bucket do Amazon S3, multisserviços, prevenção delegada confusa

Quando você armazena dados em um bucket do Amazon S3, o bucket pode ser exposto a problemas de “confused deputy”. Isso pode deixar dados, como frotas elásticas, blocos de aplicações, scripts de configuração, ícones de aplicações e scripts de sessão, vulneráveis a agentes mal-intencionados.

Para evitar problemas de “confused deputy”, você pode especificar a condição aws:SourceAccount ou a condição aws:SourceArn na política de bucket do Amazon S3 para ELASTIC-FLEET-EXAMPLE-BUCKET.

As políticas de recursos a seguir mostram como evitar o problema de “confused deputy” com uma das seguintes opções:

  • O aws:SourceAccount com o ID AWS da sua conta

  • A chave global de contexto de condição aws:SourceArn

AppStream Atualmente, o 2.0 não oferece suporte à prevenção delegada confusa para ícones de aplicativos. O serviço só oferece suporte a VHD arquivos e scripts de configuração. Se você tentar incluir condições adicionais para os ícones de aplicação, os ícones não serão exibidos para os usuários finais.

No exemplo a seguir, a política de bucket só permite o acesso aos recursos AppStream 2.0 da frota Elastic na conta do proprietárioELASTIC_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 Conta da AWS ID" } } }, { "Sid": "AllowRetrievalPermissionsToS3AppIconsForAppStream", "Effect": "Allow", "Principal": { "Service": "appstream.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/app-icons/*" } ] }

Você também pode usar a condição aws:SourceArn para limitar o acesso a recursos específicos.

nota

Se você não souber a totalidade ARN de um recurso ou quiser especificar vários recursos, use a chave de condição de contexto aws:SourceArn global com curingas (*) para as partes desconhecidas doARN.

{ "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/*" } ] }

Você também pode usar as condições aws:SourceArn e aws:SourceAccount para limitar o acesso a contas e recursos específicos.

nota

Se você não souber a totalidade ARN de um recurso ou se quiser especificar vários recursos, use a chave de condição de contexto aws:SourceArn global com curingas (*) para as partes desconhecidas doARN.

{ "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/*" } ] }