

# Permissões do bucket do Amazon S3 para logs de fluxo
<a name="flow-logs-s3-permissions"></a>

Por padrão, os buckets do Amazon S3 e os objetos que eles contêm são privados. Somente o proprietário do bucket pode acessá-los. No entanto, o proprietário do bucket pode conceder acesso a outros recursos e usuários por meio da criação de uma política de acesso.

Se o usuário que cria um log de fluxo for proprietário do bucket e tiver as permissões `PutBucketPolicy` e `GetBucketPolicy` para este bucket, as políticas a seguir serão automaticamente anexadas. Esta política substitui qualquer política existente anexada ao bucket.

Caso contrário, o proprietário do bucket deve adicionar essa política ao bucket, especificando o ID da conta da AWS do criador de log de fluxo ou falha na criação do log de fluxo. Para obter mais informações, consulte [Uso de políticas de bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-policies.html) no *Guia do usuário do Amazon Simple Storage Service*.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AWSLogDeliveryWrite",
            "Effect": "Allow",
            "Principal": {
                "Service": "delivery.logs.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012",
                    "s3:x-amz-acl": "bucket-owner-full-control"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:logs:us-east-1:123456789012:*"
                }
            }
        },
        {
            "Sid": "AWSLogDeliveryAclCheck",
            "Effect": "Allow",
            "Principal": {
                "Service": "delivery.logs.amazonaws.com"
            },
            "Action": "s3:GetBucketAcl",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:logs:us-east-1:123456789012:*"
                }
            }
        }
    ]
}
```

------

O ARN especificado para *my-s3-arn* depende do uso ou não de prefixos S3 compatíveis com Hive.
+ Prefixos padrão

  ```
  arn:aws:s3:::bucket_name/optional_folder/AWSLogs/account_id/*
  ```
+ Prefixos S3 compatíveis com Hive

  ```
  arn:aws:s3:::bucket_name/optional_folder/AWSLogs/aws-account-id=account_id/*
  ```

É uma prática recomendada conceder essas permissões à entidade principal do serviço de entrega de logs em vez de concedê-las a ARNs individuais da Conta da AWS. Outra prática recomendada é o uso das chaves de condição `aws:SourceAccount` e `aws:SourceArn` para se proteger contra [O problema do agente confuso](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html). A conta de origem é o proprietário do log de fluxo e o ARN de origem é o ARN curinga (\$1) do serviço de logs.

Vale ressaltar que o serviço de entrega de logs realiza a ação `HeadBucket` da API do Amazon S3 para verificar a existência e a localização do bucket do S3. Não é necessário conceder permissão ao serviço de entrega de logs para executar essa ação; ele continuará a entregar os logs de fluxo da VPC mesmo que não consiga confirmar a existência do bucket do S3 e a localização. Entretanto, haverá um erro `AccessDenied` na chamada para `HeadBucket` nos logs do CloudTrail.