Usar o compartilhamento de recursos de origem cruzada (CORS) - Amazon Simple Storage Service

Usar o compartilhamento de recursos de origem cruzada (CORS)

O compartilhamento de recursos de origem cruzada (CORS) define uma maneira de os aplicativos web clientes carregados em um domínio interagirem com recursos em outro domínio. Com o suporte do CORS, você pode criar aplicações web no lado do cliente com o Amazon S3 e permitir seletivamente o acesso de origem cruzada aos seus recursos do Amazon S3.

Esta seção fornece uma visão geral do CORS. Os subtópicos descrevem como você pode ativar o CORS usando o console do Amazon S3 ou, programaticamente, usando a API REST do Amazon S3 e os AWS SDKs.

Compartilhamento de recursos de origem cruzada: cenários de caso de uso

Veja a seguir exemplos de cenário de uso do CORS:

Cenário 1

Suponha que você esteja hospedando um site em um bucket do Amazon S3 chamado website como descrito em Hospedagem de um site estático usando o Amazon S3. Os usuários carregam o endpoint de site.

http://website.s3-website.us-east-1.amazonaws.com

Agora você quer usar JavaScript nas páginas da web armazenadas nesse bucket para fazer solicitações GET e PUT autenticadas no mesmo bucket usando o endpoint da API do Amazon S3 para o bucket website.s3.us-east-1.amazonaws.com. Um navegador normalmente impediria que o JavaScript permitisse essas solicitações. No entanto, com CORS, é possível configurar seu bucket para permitir explicitamente solicitações de origem cruzada de website.s3-website.us-east-1.amazonaws.com.

Cenário 2

Suponha que você queira hospedar uma fonte web de seu bucket do S3. Mais uma vez, os navegadores exigem uma verificação de CORS (também chamada de verificação de simulação) para carregar fontes web. Assim, é preciso configurar o bucket que está hospedando a fonte web para permitir que qualquer origem faça essas solicitações.

Como o Amazon S3 avalia a configuração de CORS em um bucket?

Quando o Amazon S3 recebe uma solicitação de simulação de um navegador, ele avalia a configuração de CORS para o bucket e usa a primeira regra CORSRule que corresponde à solicitação de entrada do navegador para permitir uma solicitação de origem cruzada. Para que uma regra seja correspondente, as seguintes condições devem ser satisfeitas:

  • O cabeçalho Origin em uma solicitação do CORS para seu bucket deve corresponder às origens do elemento AllowedOrigins na configuração do CORS.

  • Os métodos HTTP especificados no Access-Control-Request-Method em uma solicitação de CORS para o bucket devem corresponder ao método ou aos métodos listados no elemento AllowedMethods na configuração de CORS.

  • Os cabeçalhos listados no cabeçalho Access-Control-Request-Headers em uma solicitação de pré-processamento devem corresponder aos cabeçalhos no elemento AllowedHeaders na configuração do CORS.

nota

As ACLs e as políticas continuam sendo aplicadas quando você habilita o CORS no bucket.

Como o ponto de acesso do Object Lambda é compatível com o CORS

Ao receber uma solicitação de um navegador ou quando a solicitação inclui um cabeçalho Origin, o S3 Object Lambda sempre adiciona um campo de cabeçalho “AllowedOrigins":"*".

Para obter mais informações sobre como usar o CORS, consulte os tópicos a seguir.