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 da solicitação deve corresponder a um elemento AllowedOrigin.

  • O método de solicitação (por exemplo, GET ou PUT) ou o cabeçalho Access-Control-Request-Method no caso de uma solicitação de simulação OPTIONS deve ser um dos elementos AllowedMethod.

  • Cada cabeçalho listado no cabeçalho Access-Control-Request-Headers da solicitação de simulação deve corresponder a um elemento AllowedHeader.

nota

As ACLs e políticas continuam sendo aplicadas quando você ativa 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.