

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: WorkSpaces aplicativos, aplicativo, política de bucket do Amazon S3, serviços cruzados, prevenção delegada confusa
<a name="example-s3-bucket"></a>

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`

WorkSpaces Atualmente, os aplicativos não oferecem suporte à prevenção delegada confusa para ícones de aplicativos. O serviço só oferece suporte a arquivos VHD 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 da frota WorkSpaces Applications Elastic na conta do proprietário`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 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 o ARN completo do recurso ou se quiser especificar vários recursos, use a chave global de contexto de condição `aws:SourceArn` com curingas (\*) para as partes desconhecidas do 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/*"
        }
    ]
}
```

------

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 o ARN completo dos recursos ou se quiser especificar vários recursos, use a chave global de contexto de condição `aws:SourceArn` com curingas (\*) para as partes desconhecidas do 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/*"
        }
    ]
}
```

------