Anotações sobre o AWS S3 Bucket Policies para ajudar na preparação das certificações AWS.
Até o momento as anotações são para as certificações abaixo:
Anotações gerais
- Suporta bucket policies maior que 20 kb
 - Deny explicito SEMPRE substitui um Allow
 - Aplicado a nível de Bucket
 - AWS Policy Generator
 - Liberar acesso a Internet, IP, VPC
 - Sempre HTTPS
 - x-amz-region - Não é uma 
conditionvalida 
Elementos básicos de uma Policy
Resource:
- Ex: 
"Resource":["arn:aws:s3:::demo-bucket/*"] - Buckets, objetos, pontos de acesso e trabalhos são os recursos do Amazon S3 para os quais você pode permitir ou negar permissões.
 - Em uma Policy, você usa o ARN para identificar o recurso.
 
Actions:
- Ex: 
"Action":["s3:GetObject"] - Para cada recurso, o Amazon S3 oferece suporte a um conjunto de operações.
 - Você identifica as operações de recursos que permitirão (ou negarão) usando palavras-chave de ação.
 - Por exemplo, a permissão s3:ListBucket autoriza o usuário a empregar a operação GET Bucket (List Objects) do Amazon S3.
 
Effect:
- Ex: 
"Effect":"Allow" - Qual será o efeito quando o usuário solicitar a ação específica - pode ser permitir ou negar.
 - Se você não conceder (permitir) explicitamente acesso a um recurso, o acesso estará implicitamente negado.
 - Você também pode negar acesso explicitamente a um recurso.
 - Você poderia fazer isso para garantir que um usuário não possa acessar o recurso, mesmo se uma Policy diferente conceder acesso.
 
Principal:
- Ex: 
"Principal": "*" - A conta ou usuário que tem permissão de acesso a ações e recursos na instrução.
 - Em uma Policy de bucket, o principal é o usuário, a conta, o serviço ou outra entidade que receba essa permissão.
 
Condition:
- Condições para quando uma 
Policyestá em vigor. - Você pode usar chaves de toda a AWS e chaves específicas do Amazon S3 para especificar 
Conditionsem umaPolicyde acesso do Amazon S3. - Ex:
 
Bucket Policy para liberar somente HTTPS
- "aws:SecureTransport": "true"
 
{
  "Id": "ExamplePolicy",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowSSLRequestsOnly",
      "Action": "s3:*",
      "Effect": "Deny",
      "Resource": [
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET",
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
      ],
    **  "Condition": {
        "Bool": {
          "aws:SecureTransport": "true"
        }**
      },
      "Principal": "*"
    }
  ]
}
Exemplo de bucket policy
{
  "Id": "ExamplePolicy",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowSSLRequests",
      "Action": "s3:GetObject",
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::mykplabs-policy/*"
      ],
      "Condition": {
        "Bool": {
          "aws:SecureTransport": "true"
        }
      },
      "Principal": "*"
    }
  ]
}
Restringir o acesso a um indicador HTTP específico
Um site com nome de domínio (www.example.com ou example.com) com links para fotos e vídeos armazenados no bucket do Amazon S3, DOC-EXAMPLE-BUCKET. Por padrão, todos os recursos do Amazon S3 são privados e, portanto, somente a Conta da AWS que criou os recursos pode acessá-lo
Para permitir acesso de leitura a esses objetos em seu site, você pode adicionar uma política de bucket que conceda a permissão s3:GetObject com uma condição, usando a chave aws:Referer
- use 
aws:Referer 
Exemplo
{
  "Version":"2012-10-17",
  "Id":"HTTP referer policy example",
  "Statement":[
    {
      "Sid":"Allow GET requests originating from www.example.com and example.com.",
      "Effect":"Allow",
      "Principal":"*",
      "Action":["s3:GetObject","s3:GetObjectVersion"],
      "Resource":"arn:aws:s3:::DOC-EXAMPLE-BUCKET/*",
      "Condition":{
        "StringLike":{"aws:Referer":["http://www.example.com/*","http://example.com/*"]}
      }
    }
  ]
}


    
Top comments (0)