Ejemplo: prevención del suplente confuso entre servicios de política de bucket de Amazon S3 de aplicación de AppStream 2.0 - Amazon AppStream 2.0

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Ejemplo: prevención del suplente confuso entre servicios de política de bucket de Amazon S3 de aplicación de AppStream 2.0

Al guardar datos en un bucket de Amazon S3, el bucket puede verse expuesto a problemas suplentes confusos. Esto puede hacer que datos como las flotas elásticas, los bloques de aplicaciones, los scripts de configuración, los iconos de las aplicaciones y los scripts de sesión sean vulnerables a agentes malintencionados.

Para evitar problemas de suplentes confusos, puede especificar la condición aws:SourceAccount o la condición aws:SourceArn en la política del bucket de Amazon S3 para ELASTIC-FLEET-EXAMPLE-BUCKET.

Las siguientes políticas de recursos muestran cómo evitar el problema de suplente confuso mediante una de las siguientes opciones:

  • La aws:SourceAccount con su ID de cuenta de AWS

  • La clave de contexto de condición global aws:SourceArn

Actualmente, AppStream 2.0 no admite la prevención del suplente confuso para los iconos de las aplicaciones. El servicio solo admite archivos VHD y scripts de configuración. Si intenta añadir condiciones adicionales para los iconos de las aplicaciones, no se mostrarán los iconos a los usuarios finales.

En el siguiente ejemplo, la política de bucket solo permite que los recursos de la flota elástica de AppStream 2.0 de la cuenta del propietario accedan a 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 Cuenta de AWS ID" } } }, { "Sid": "AllowRetrievalPermissionsToS3AppIconsForAppStream", "Effect": "Allow", "Principal": { "Service": "appstream.amazonaws.com" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/app-icons/*" } ] }

También puede usar la condición aws:SourceArn para limitar el acceso a recursos específicos.

nota

Si no conoce el ARN completo de un recurso, o si desea especificar varios recursos, utilice la clave de condición de contexto global aws:SourceArn con comodines (*) para las partes desconocidas del 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/*" } ] }

Puede usar las condiciones aws:SourceArn y aws:SourceAccount para limitar el acceso a los recursos para recursos y cuentas específicos.

nota

Si no conoce el ARN completo de un recurso, o si desea especificar varios recursos, utilice la clave de condición de contexto global aws:SourceArn con comodines (*) para las partes desconocidas del 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/*" } ] }