

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á.

# Cross-origin suporte ao compartilhamento de recursos e Amazon EC2
<a name="cors-support"></a>

A API do Amazon EC2 oferece suporte ao compartilhamento de recursos de origem cruzada (CORS). O CORS define uma forma de os aplicativos web do cliente carregados em um domínio interagirem com recursos em um domínio diferente. Para obter mais informações, acesse a Recomendação do [W3C sobre compartilhamento de Cross-Origin recursos](http://www.w3.org/TR/cors/). Com o suporte do CORS para o Amazon EC2, você pode criar aplicativos web avançados do lado do cliente que usam a API do Amazon EC2. Por exemplo, suponha que você esteja hospedando um site e queira usá-lo JavaScript em suas páginas da web para fazer solicitações à API do Amazon EC2. `mywebsite.example.com` Normalmente, um navegador JavaScript impede que essas solicitações sejam permitidas, mas com o CORS, você pode fazer chamadas de API do Amazon EC2 de origem cruzada a partir de. `mywebsite.example.com`

O CORS já está habilitado para a API do Amazon EC2 e está pronto para ser usado. Você não precisa executar nenhuma etapa adicional de configuração para começar a usar esse recurso. Não há alteração na forma como você faz chamadas para a API do Amazon EC2; elas ainda devem ser assinadas com AWS credenciais válidas para garantir AWS a autenticação do solicitante. Para obter mais informações, consulte [Solicitações de AWS API de assinatura](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html) no *Guia do usuário do IAM*.

A implementação do CORS na API do Amazon EC2 é padronizada. Seu aplicativo pode enviar uma solicitação simples para a API do Amazon EC2 ou, dependendo do conteúdo da solicitação, uma solicitação de preflight seguida por uma solicitação real. O Amazon EC2 permite a solicitação de qualquer origem

Para obter mais informações sobre o CORS e exemplos de como ele funciona, consulte o seguinte artigo na Mozilla Developer Network: [controle de acesso HTTP (CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS)).

## Solicitações simples
<a name="cors-simple"></a>

A seguir estão os critérios que definem uma solicitação simples ou real:
+ As solicitações usam somente os métodos `GET` ou `POST` HTTP. Se o `POST` método for usado, só `Content-Type` poderá ser um dos seguintes:`application/x-www-form-urlencoded`,`multipart/form-data`, ou`text/plain`.
+ As solicitações não definem cabeçalhos personalizados, como`X-Other-Header`.

O Amazon EC2 permite a solicitação de qualquer origem. Qualquer `POST` solicitação `GET` ou solicitação que tente usar as credenciais do navegador definindo o `Access-Control-Allow-Credentials` valor como `true` (onde`XMLHttpRequest.withCredentials = true`) falhará. 

As informações a seguir descrevem os cabeçalhos de solicitação para o Amazon EC2:

**Valores de cabeçalho de solicitação simples**
+ `Origin`: especifica o domínio que gostaria de acessar o recurso (nesse caso, o recurso é o Amazon EC2). Isso é inserido pelo navegador em uma solicitação de origem cruzada.

As informações a seguir descrevem os cabeçalhos de resposta que o Amazon EC2 retorna (ou não retorna) após uma solicitação simples ou real:

**Valores de cabeçalho de resposta simples**
+ `Access-Control-Allow-Origin`: especifica o domínio que pode acessar o recurso (nesse caso, o recurso é o Amazon EC2). Isso sempre é retornado com um valor \*. Portanto, o Amazon EC2 permite qualquer origem entre domínios e nunca permite credenciais de navegador, como cookies. 
+ `Access-Control-Allow-Credentials`: indica se as credenciais do navegador podem ser usadas para fazer a solicitação real. Isso nunca é devolvido. Portanto, o navegador deve interpretar o valor como`Access-Control-Allow-Credentials: false`.

## Solicitações de pré-voo
<a name="cors-preflight"></a>

Se o conteúdo da sua solicitação atender aos critérios abaixo, sua solicitação será verificada para verificar se a solicitação real deve ser enviada. Uma solicitação de preflight primeiro envia uma solicitação HTTP para o recurso (nesse caso, Amazon EC2) usando o `OPTIONS` método. 

A seguir estão os critérios que definem uma solicitação de pré-voo:
+ As solicitações usam métodos HTTP diferentes de `GET` ou`POST`. No entanto, se o `POST` método for usado, não `Content-Type` será um dos seguintes:`application/x-www-form-urlencoded`,`multipart/form-data`, ou`text/plain`.
+ As solicitações definem cabeçalhos personalizados; por exemplo,`X-Other-Header`.

A implementação do Amazon EC2 CORS permite qualquer cabeçalho e permite qualquer origem na solicitação real. 

As informações a seguir descrevem os cabeçalhos da solicitação de preflight para o Amazon EC2:

**Valores do cabeçalho da solicitação Preflight**
+ `Origin`: especifica o domínio que gostaria de acessar o recurso (nesse caso, o recurso é o Amazon EC2). Isso é inserido pelo navegador em uma solicitação de origem cruzada.
+ `Access-Control-Request-Method`: o método HTTP a ser usado na solicitação real do navegador.
+ `Access-Control-Request-Headers`: os cabeçalhos personalizados a serem enviados na solicitação real de origem cruzada.

As informações a seguir são sobre os cabeçalhos de resposta que o Amazon EC2 retorna (ou não retorna) após uma solicitação de pré-voo:

**Valores do cabeçalho de resposta do Preflight**
+ `Access-Control-Allow-Origin`: especifica o domínio que pode acessar o recurso (nesse caso, o recurso é o Amazon EC2). Isso sempre é retornado com um valor \*. Portanto, o Amazon EC2 permite qualquer origem entre domínios e nunca permite credenciais de navegador, como cookies. 
+ `Access-Control-Allow-Credentials`: indica se as credenciais do navegador podem ser usadas para fazer a solicitação real. Isso nunca é devolvido pelo Amazon EC2. Portanto, o navegador deve interpretar o valor como`Access-Control-Allow-Credentials: false`. 
+ `Access-Control-Expose-Headers`: permite que os cabeçalhos sejam expostos ao navegador. Isso nunca é devolvido pelo Amazon EC2. Portanto, nenhum cabeçalho de retorno do Amazon EC2 pode ser lido pelo domínio solicitante. 
+ `Access-Control-Max-Age`: especifica por quanto tempo os resultados da solicitação de preflight podem ser armazenados em cache. O valor é definido para 1800 segundos (30 minutos).
+ `Access-Control-Allow-Methods`: indica quais métodos são permitidos ao fazer uma solicitação real. Os seguintes métodos são permitidos: `GET` `POST``OPTIONS`,`DELETE`,, `PUT` e. Isso também depende de como você está chamando a API do Amazon EC2; por exemplo, usando a API de consulta ou usando REST.
+ `Access-Control-Allow-Headers`: indica quais cabeçalhos podem ser usados na solicitação real. O Amazon EC2 aceita qualquer cabeçalho em solicitações de pré-voo. Se os cabeçalhos HTTP não forem relevantes na solicitação real, eles serão ignorados.