

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

# Como gravar dados em um bucket do Amazon S3 que não é de sua propriedade com o Amazon EMR
<a name="emr-s3-acls"></a>

 Ao gravar um arquivo em um bucket do Amazon Simple Storage Service (Amazon S3), por padrão, você é o único usuário capaz de ler esse arquivo. A suposição é a de que você gravará arquivos em seus próprio buckets, e essa configuração padrão protege a privacidade desses arquivos. 

 No entanto, se você estiver executando um cluster e quiser que a saída seja gravada no bucket Amazon S3 de outro AWS usuário e quiser que esse outro AWS usuário possa ler essa saída, você deve fazer duas coisas: 
+  Faça com que o outro AWS usuário conceda a você permissões de gravação para o bucket do Amazon S3. O cluster que você executa é executado sob suas AWS credenciais, portanto, qualquer cluster que você iniciar também poderá gravar no bucket desse outro AWS usuário. 
+  Defina permissões de leitura para o outro AWS usuário nos arquivos que você ou o cluster gravam no bucket do Amazon S3. A maneira mais fácil de definir essas permissões de leitura é usar listas de controle de acesso (ACLs) pré-configuradas, um conjunto predefinido de políticas de acesso definidas pelo Amazon S3. 

 Para obter informações sobre como o outro AWS usuário pode conceder a você permissões para gravar arquivos no bucket do Amazon S3 do outro usuário, consulte [Editando permissões do bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/EditingBucketPermissions.html) no Guia *do usuário do Amazon Simple Storage Service*. 

 Para o seu cluster usar ACLs pré-configuradas ao gravar arquivos no Amazon S3, defina a opção de configuração de cluster `fs.s3.canned.acl` para a ACL pré-configurada usar. A tabela a seguir lista as ACLs pré-configuradas atualmente definidas. 


| ACL pré-configurada | Description | 
| --- | --- | 
| AuthenticatedRead | Especifica que o proprietário recebe Permission.FullControl e o favorecido do grupo GroupGrantee.AuthenticatedUsers recebe o acesso Permission.Read. | 
| BucketOwnerFullControl | Especifica que o proprietário do bucket recebe Permission.FullControl. O proprietário do bucket não é necessariamente o proprietário do objeto. | 
| BucketOwnerRead | Especifica que o proprietário do bucket recebe Permission.Read. O proprietário do bucket não é necessariamente o proprietário do objeto. | 
| LogDeliveryWrite | Especifica que o proprietário recebe Permission.FullControl e o favorecido do grupo GroupGrantee.LogDelivery recebe o acesso Permission.Write, permitindo que logs de acesso sejam fornecidos. | 
| Private | Especifica que o proprietário recebe Permission.FullControl. | 
| PublicRead | Especifica que o proprietário recebe Permission.FullControl e o favorecido do grupo GroupGrantee.AllUsers recebe o acesso Permission.Read. | 
| PublicReadWrite | Especifica que o proprietário recebe Permission.FullControl e o favorecido do grupo GroupGrantee.AllUsers recebe os acessos Permission.Read e Permission.Write. | 

 Há muitas maneiras de definir opções de configuração do cluster, dependendo do tipo de cluster que você está executando. Os procedimentos a seguir mostram como definir a opção para casos comuns. 

**Para gravar arquivos usando ACLs pré-configuradas no Hive**
+  No prompt de comando do Hive, defina a opção de configuração `fs.s3.canned.acl` como a ACL pré-configurada desejada na qual você deseja que o cluster defina os arquivos que ele grava no Amazon S3. Para acessar o prompt de comando do Hive, conecte-se ao nó principal usando o SSH e digite Hive no prompt de comando do Hadoop. Para obter mais informações, consulte [Como se conectar ao nó primário do cluster do Amazon EMR usando SSH](emr-connect-master-node-ssh.md). 

   O exemplo a seguir define a configuração de opção `fs.s3.canned.acl` como `BucketOwnerFullControl`, que dá ao proprietário do bucket do Amazon S3 controle total sobre o arquivo. Observe que o comando definido faz distinção entre maiúsculas e minúsculas e não contém aspas ou espaços. 

  ```
  hive> set fs.s3.canned.acl=BucketOwnerFullControl;   
  create table acl (n int) location 's3://amzn-s3-demo-bucket/acl/'; 
  insert overwrite table acl select count(*) from acl;
  ```

   As duas últimas linhas do exemplo criam uma tabela que é armazenada no Amazon S3 e gravam dados nessa tabela. 

**Para gravar arquivos usando ACLs pré-configuradas no Pig**
+  No prompt de comando do Pig, defina a opção de configuração `fs.s3.canned.acl` como a ACL pré-configurada na qual você deseja que o cluster defina os arquivos que gravará no Amazon S3. Para acessar o prompt de comando do Pig, conecte-se ao nó principal usando o SSH e digite Pig no prompt de comando do Hadoop. Para obter mais informações, consulte [Como se conectar ao nó primário do cluster do Amazon EMR usando SSH](emr-connect-master-node-ssh.md). 

   O exemplo a seguir define a opção de `fs.s3.canned.acl` configuração como BucketOwnerFullControl, o que dá ao proprietário do bucket do Amazon S3 controle total sobre o arquivo. Observe que o comando definido inclui um espaço antes do nome da ACL pré-configurada e não contém aspas. 

  ```
  pig> set fs.s3.canned.acl BucketOwnerFullControl; 
  store some data into 's3://amzn-s3-demo-bucket/pig/acl';
  ```

**Para gravar arquivos usando ACLs pré-configuradas em um JAR personalizado**
+  Defina a opção de configuração `fs.s3.canned.acl` usando o Hadoop com o sinalizador -D. Isso é mostrado no exemplo a seguir. 

  ```
  hadoop jar hadoop-examples.jar wordcount 
  -Dfs.s3.canned.acl=BucketOwnerFullControl s3://amzn-s3-demo-bucket/input s3://amzn-s3-demo-bucket/output
  ```