View a markdown version of this page

Cross-origin suporte ao compartilhamento de recursos e Amazon EC2 - Amazon Elastic Compute Cloud

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

Solicitações simples

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, outext/plain.

  • As solicitações não definem cabeçalhos personalizados, comoX-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 (ondeXMLHttpRequest.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 comoAccess-Control-Allow-Credentials: false.

Solicitações de pré-voo

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 ouPOST. 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, outext/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 comoAccess-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 POSTOPTIONS,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.