

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: Aplicación de WorkSpaces aplicaciones: política de bucket de Amazon S3, prevención indirecta confusa entre servicios
<a name="example-s3-bucket"></a>

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:
+ O `aws:SourceAccount` con tu ID de AWS cuenta
+ La clave de contexto de condición global `aws:SourceArn`

WorkSpaces Actualmente, Applications no admite la prevención confusa de los íconos 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 el acceso a los recursos de la flota de WorkSpaces Applications Elastic de la cuenta del propietario`ELASTIC_FLEET_EXAMPLE_BUCKET`.

------
#### [ JSON ]

****  

```
{
    "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.

------
#### [ JSON ]

****  

```
{
    "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:appstream:{{us-east-1}}:{{111122223333}}: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.

------
#### [ JSON ]

****  

```
{
    "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:appstream:{{us-east-1}}:{{111122223333}}: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/*"
        }
    ]
}
```

------