elastic cloud storage (ecs) · 2020. 3. 16. · elastic cloud storage (ecs) versão 3.0 guia de...

220
Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Upload: others

Post on 15-Sep-2020

17 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Elastic Cloud Storage (ECS)Versão 3.0

Guia de acesso a dados302-003-221

04

Page 2: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Copyright © 2013-2017 EMC Corporation Todos os direitos reservados.

Publicado em Janeiro 2017

A Dell assegura que as informações apresentadas neste documento estão corretas na data da publicação. As informações estão sujeitas a

alterações sem prévio aviso.

AS INFORMAÇÕES CONTIDAS NESTA PUBLICAÇÃO SÃO FORNECIDAS “NO ESTADO EM QUE SE ENCONTRAM”. A DELL NÃO GARANTE

NENHUM TIPO DE INFORMAÇÃO CONTIDA NESTA PUBLICAÇÃO, ASSIM COMO SE ISENTA DE GARANTIAS DE COMERCIALIZAÇÃO OU

ADEQUAÇÃO DE UM PRODUTO A UM PROPÓSITO ESPECÍFICO. O USO, A CÓPIA E A DISTRIBUIÇÃO DE QUALQUER SOFTWARE DA DELL

DESCRITO NESTA PUBLICAÇÃO EXIGE UMA LICENÇA DE SOFTWARE.

Dell, EMC e outras marcas comerciais são marcas comerciais da Dell Inc. ou de suas subsidiárias. Outras marcas comerciais aqui mencionadas

pertencem a seus respectivos proprietários. Publicado no Brasil.

EMC BrasilRua Verbo Divino, 1.488 – 4º andar São Paulo – SP – 04719-002 0800-553622Tel.: (11) 5185-8800 Fax: (11) 5185-8999www.DellEMC.com/pt-br/index.htm

2 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 3: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

9

11

S3 13

Introdução ao suporte a Amazon S3 do ECS 15Suporte à API Amazon S3 no ECS...............................................................16

Recursos compatíveis do S3 17Recursos compatíveis e não compatíveis da API do S3............................... 18

Extensões S3 21Extensões S3..............................................................................................22Extensões de intervalo de bytes................................................................. 22

Atualizando um intervalo de bytes em um objeto........................... 22Sobregravação de parte de um objeto........................................... 23Acrescentando dados a um objeto................................................. 24Lendo vários intervalos de byte em um objeto............................... 25

Retenção....................................................................................................26Ciclo de vida (expiração) e retenção..............................................27

File system habilitado................................................................................. 27

Extensão de pesquisa de metadados S3 29Use a pesquisa de metadados.....................................................................30Atribuir valores de índice de metadados a um bucket................................. 30Atribuir metadados aos objetos usando o protocolo S3.............................. 33Usar consultas de pesquisa de metadados..................................................34Usando a pesquisa de metadados do ECS Java SDK ..................................39Metadados de sistema do ECS e atributos opcionais..................................40

Criar e gerenciar chaves secretas 41Criar e gerenciar chaves secretas...............................................................42Criar uma chave para um usuário de objeto................................................ 42

Gerar uma chave secreta no portal do ECS................................... 42Criar uma chave secreta S3 usando a API REST de gerenciamentodo ECS.......................................................................................... 42

Criar uma chave secreta do S3: autoatendimento...................................... 43Trabalhando com chaves de autoatendimento............................... 44

Autenticação com o serviço do S3 47Autenticação com o serviço do S3..............................................................48

Acesso ao client Java 51

Figuras

Tabelas

Parte 1

Capítulo 1

Capítulo 2

Capítulo 3

Capítulo 4

Capítulo 5

Capítulo 6

Capítulo 7

CONTEÚDO

Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados 3

Page 4: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Use SDKs para acessar o serviço do S3......................................................52Usando o SDK do Java Amazon..................................................... 52SDK Java client para ECS..............................................................54

OpenStack Swift 57

Introdução ao suporte a OpenStack Swift do ECS 59Suporte à API do OpenStack Swift no ECS................................................ 60

Recursos compatíveis do Swift 61Operações compatíveis com o OpenStack Swift........................................ 62

Extensões Swift 65Extensões da API do SWIFT....................................................................... 66Atualizando um intervalo de bytes em um objeto........................................66Sobregravação de parte de um objeto........................................................ 67Acrescentando dados a um objeto..............................................................68Lendo vários intervalos de byte em um objeto............................................ 69

Autenticação 71Autenticação do OpenStack Swift.............................................................. 72

Criar usuários Swift no Portal do ECS............................................72Autenticação do OpenStack Versão 1 ........................................................ 73Autenticação do OpenStack Versão 2.........................................................75Autenticação usando a integração do ECS Keystone V3............................. 77

Configurar o ECS para autenticar usuários do keystone................ 78

Autorização 79Autorização de recipiente...........................................................................80

EMC Atmos 83

Introdução ao suporte a EMC Atmos do ECS 85Suporte à API do EMC Atmos no ECS........................................................ 86

Recursos compatíveis do Atmos 87Chamadas API REST compatíveis do EMC Atmos...................................... 88Chamadas API REST incompatíveis do EMC Atmos................................... 89Suporte a sub-tenants nas chamadas API REST do EMC Atmos................ 90

Extensões da API do Atmos 93Extensões da API........................................................................................94

Acrescentando dados a um objeto................................................. 94

CAS 97

Configurando o suporte a CAS no ECS 99

Parte 2

Capítulo 8

Capítulo 9

Capítulo 10

Capítulo 11

Capítulo 12

Parte 3

Capítulo 13

Capítulo 14

Capítulo 15

Parte 4

Capítulo 16

CONTEÚDO

4 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 5: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Configurando o suporte a CAS no ECS..................................................... 100Armazenamento estático.......................................................................... 100Conformidade............................................................................................ 101

Fortalecimento de plataforma e conformidade............................. 102Política de conformidade e retenção............................................ 102Agente de conformidade.............................................................. 104

Retenção do CAS no ECS......................................................................... 104Retenção avançada para os aplicativos do CAS: retenção baseada emevento, retenção legal e administrador mín./máx...................................... 107Configurar as políticas de retenção de namespace.................................... 113Criar e configurar um bucket para um usuário do CAS............................... 114Configurar um usuário de objeto do CAS................................................... 115Configurar ACLs do bucket para o CAS..................................................... 116APIs de gerenciamento ECS que dão suporte a usuários do CAS...............118Suporte à API do SDK CAS (Content-Addressed Storage, armazenamentode conteúdo endereçável)......................................................................... 119

API ECS Management 121

Introdução à API REST ECS Management 123API REST de gerenciamento do ECS.........................................................124

Autenticação com o serviço de gerenciamento do ECS 125Autenticar-se com o API REST de gerenciamento do ECS........................126

Autenticar-se com AUTH-TOKEN ............................................... 126Autenticar com cookies................................................................ 127Fazer log-out................................................................................128Whoami........................................................................................ 128

Resumo da API REST ECS Management 131Resumo da API REST de gerenciamento do ECS...................................... 132

HDFS 137

O que é ECS HDFS? 139O que é ECS HDFS?................................................................................. 140Configurando o Hadoop para usar o ECS HDFS ........................................ 141URI do ECS HDFS para acesso ao file system........................................... 142Modos de autenticação do Hadoop........................................................... 142

Acessando o bucket como um file system.................................... 143Grupo padrão e ACLs de grupos personalizados dos buckets....... 143Superusuário e supergrupo do Hadoop......................................... 144Acesso multiprotocolo (cruzado)................................................. 144Modo de autenticação Kerberos do Hadoop................................. 145Usuário proxy............................................................................... 145Usuário de equivalência................................................................ 145Suporte a SymLink....................................................................... 146

Migração de um cluster simples para um cluster de Kerberos do Hadoop..146Interação do file system............................................................................ 147Aplicativos Hadoop compatíveis e não compatíveis................................... 147

Parte 5

Capítulo 17

Capítulo 18

Capítulo 19

Parte 6

Capítulo 20

CONTEÚDO

Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados 5

Page 6: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Criar um bucket para o file system do HDFS 149Criar um bucket para HDFS usando o Portal do ECS................................ 150

Configurar ACLs personalizadas de buckets de grupo.................. 153Configurar as permissões de ACL dos buckets para um usuário... 154

Exemplos de permissões de bucket do Hadoop e do ECS......................... 155

Usar Hortonworks Ambari para configurar o Hadoop com o ECSHDFS 159Implementando um cluster Hortonworks com Ambari............................... 160Faça download do Ambari......................................................................... 160Fazer download da biblioteca de client do ECS HDFS............................... 160Configurar um repositório local no qual será implementada a biblioteca declient do ECS............................................................................................. 161Instalar o servidor do Ambari..................................................................... 161Habilitar o pacote de discos Ambari Hadoop ECS...................................... 161Instalar manualmente o agente do Ambari.................................................162Instalar o Hadoop ..................................................................................... 163

Configurar a integração do ECS HDFS a um cluster simples doHadoop 167Configurar a integração do ECS HDFS a um cluster simples do Hadoop... 168Planejar a integração do ECS HDFS e do Hadoop..................................... 168Obter o pacote de instalação e suporte do ECS HDFS.............................. 169Implementar a biblioteca de client do ECS HDFS...................................... 169Editar o arquivo core-site.xml do Hadoop.................................................. 171Editar o hbase-site.xml do HBASE.............................................................174Reiniciar e verificar o acesso..................................................................... 175

Configurar a integração do ECS HDFS a um cluster seguro doHadoop (que passou por Kerberos) 177Integrar o cluster seguro do Hadoop ao ECSHDFS ...................................178Planejar a migração de um cluster simples para um cluster de Kerberos....178Mapear nomes de grupos.......................................................................... 179Configurar os nós do ECS com o principal do serviço do ECS................... 179Proteger o bucket do ECS usando metadados.......................................... 183

Carregar valores de metadados no ECS usando a API REST degerenciamento............................................................................. 186

Edite o core-site.xml................................................................................. 187Reiniciar e verificar o acesso......................................................................191

Orientação sobre a configuração do Kerberos 193Orientação sobre a configuração do Kerberos...........................................194

Configurar o KDC do Kerberos..................................................... 194Configurar a autenticação de usuários do AD para Kerberos........ 195

Configurar um ou mais novos nós do ECS com o principal do serviço do ECS..................................................................................................................197

Solução de problemas 201Solução de problemas...............................................................................202Verificar se o AD/LDAP está corretamente configurado com o clusterseguro do Hadoop.................................................................................... 202

Capítulo 21

Capítulo 22

Capítulo 23

Capítulo 24

Capítulo 25

Capítulo 26

CONTEÚDO

6 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 7: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Reiniciar serviços após a configuração do hbase...................................... 203Falhas do teste do Pig: unable to obtain Kerberos principal...................... 203Permissão negada para o usuário do AD................................................... 203Erros de permissões................................................................................. 204Falha ao processar solicitação.................................................................. 207Ativar o registro e a depuração do Kerberos no lado do client...................207Depurar o Kerberos no KDC......................................................................208Eliminar a precisão do relógio................................................................... 208

Propriedades do core-site.xml do Hadoop para ECS HDFS 209Propriedades do core-site.xml do Hadoop para HDFS ECS.......................210

Amostra de core-site.xml para o modo de autenticação simples...213

Exemplo de metadados seguros de bucket 215Proteger metadados do bucket................................................................. 216

Capítulo 27

Capítulo 28

CONTEÚDO

Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados 7

Page 8: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

CONTEÚDO

8 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 9: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Habilite a função Compliance em um novo namespace no Portal do ECS.................. 104Opções de retenção para buckets do CAS................................................................ 108Cenários da EBR........................................................................................................ 110Cenários de retenção legal......................................................................................... 112Nova política de retenção.......................................................................................... 114Políticas de retenção de um namespace.................................................................... 114Configurações de CAS dos usuários de objeto........................................................... 116Editar ACL do bucket................................................................................................. 117Gerenciamento de ACLs dos buckets.........................................................................117Integração do ECS HDFS em um cluster do Hadoop ................................................ 140

12345678910

FIGURAS

Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados 9

Page 10: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

FIGURAS

10 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 11: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

APIs do S3 compatíveis............................................................................................... 18Recursos adicionais..................................................................................................... 19APIs do S3 incompatíveis........................................................................................... 20Chamadas do OpenStack compatíveis........................................................................62Chamadas do OpenStack Swift incompatíveis............................................................63Chamadas API REST do Atmos compatíveis...............................................................88Chamadas API REST do Atmos incompatíveis............................................................ 90Extensões da API de objeto........................................................................................ 94Requisitos comparados de arquivamento regular e estático...................................... 100ECS Recursos da API de gerenciamento para retenção............................................ 106Funções da API do CAS para retenção baseada em evento........................................110Funções da API do CAS para retenção legal...............................................................113ACLs dos buckets...................................................................................................... 118Grupos de ACL dos buckets....................................................................................... 118API REST de gerenciamento do ECS- resumo dos métodos......................................132Exemplos de permissões de bucket para acesso ao file system no modo simples...... 156Exemplo de permissões de bucket para acesso ao file system no modo Kerberos..... 157Pré-requisitos de configuração do ECS HDFS...........................................................168Biblioteca de client do ECS HDFS............................................................................. 169locais do core-site.xml............................................................................................... 171locais de hbase-site.xml............................................................................................ 175Local dos arquivos core-site.xml ...............................................................................187Propriedades do core-site.xml do Hadoop ................................................................210

1234567891011121314151617181920212223

TABELAS

Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados 11

Page 12: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

TABELAS

12 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 13: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

PARTE 1

S3

Capítulo 1, "Introdução ao suporte a Amazon S3 do ECS"

Capítulo 2, "Recursos compatíveis do S3"

Capítulo 3, "Extensões S3"

Capítulo 4, "Extensão de pesquisa de metadados S3"

Capítulo 5, "Criar e gerenciar chaves secretas"

Capítulo 6, "Autenticação com o serviço do S3"

Capítulo 7, "Acesso ao client Java"

S3 13

Page 14: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

S3

14 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 15: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

CAPÍTULO 1

Introdução ao suporte a Amazon S3 do ECS

l Suporte à API Amazon S3 no ECS...................................................................... 16

Introdução ao suporte a Amazon S3 do ECS 15

Page 16: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Suporte à API Amazon S3 no ECSEsta seção descreve o suporte do ECS à API Amazon S3.

O Amazon S3 Object Service é disponibilizado nas portas a seguir.

Protocolo Portas

HTTP 9020

HTTPS 9021

Os seguintes tópicos descrevem o suporte à API S3, a extensão oferecida pelo ECS, edescrevem como se autenticar no serviço e como usar SDKs para desenvolver clientspara acessar o serviço:

l Recursos compatíveis e não compatíveis da API do S3 na página 18

l Extensões S3 na página 22

l Use a pesquisa de metadados na página 30

l Criar e gerenciar chaves secretas na página 42

l Autenticação com o serviço do S3 na página 48

l Use SDKs para acessar o serviço do S3 na página 52

Alguns aspectos do endereçamento e da autenticação de buckets são específicos aoECS. Se você deseja configurar um aplicativo existente para comunicação com o ECS,ou desenvolver um novo aplicativo que use a API do S3 para comunicação com o ECS,consulte o seguinte tópico:

l Guia do administrador: Configurar a URL base

Introdução ao suporte a Amazon S3 do ECS

16 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 17: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

CAPÍTULO 2

Recursos compatíveis do S3

l Recursos compatíveis e não compatíveis da API do S3....................................... 18

Recursos compatíveis do S3 17

Page 18: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Recursos compatíveis e não compatíveis da API do S3O ECS oferece suporte a um subconjunto da API REST do Amazon S3.

As seguintes seções detalham as APIs compatíveis e não compatíveis:

l APIs do S3 compatíveis na página 18

l APIs do S3 incompatíveis na página 19

APIs do S3 compatíveisA tabela a seguir lista os métodos da API do S3 compatíveis.

Tabela 1 APIs do S3 compatíveis

Recurso Observações

GET service ECS dá suporte aos parâmetros marker e max-keys parapermitir a paginação da lista de buckets.

GET /?marker=<bucket>&max-keys=<num>

Por exemplo:

GET /?marker=mybucket&max-keys=40

DELETE Bucket

DELETE Bucket cors

DELETE Bucket lifecycle Somente a peça de expiração é compatível com o ciclo devida. As políticas relacionadas a arquivamento (AWS Glacier)não são compatíveis. Não há suporte para o ciclo de vida nosbuckets habilitados para file system.

GET Bucket (List Objects)

GET Bucket cors

GET Bucket acl

GET Bucket lifecycle Somente a peça de expiração é compatível com o ciclo devida. As políticas relacionadas a arquivamento (AWS Glacier)não são compatíveis. Não há suporte para o ciclo de vida nosbuckets habilitados para file system.

GET Bucket Object versions

GET Bucket versioning

HEAD Bucket

List Multipart Uploads

PUT Bucket

PUT Bucket cors

PUT Bucket acl

Recursos compatíveis do S3

18 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 19: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Tabela 1 APIs do S3 compatíveis (continuação)

Recurso Observações

PUT Bucket lifecycle Somente a peça de expiração é compatível com o ciclo devida. As políticas relacionadas a arquivamento (AWS Glacier)não são compatíveis. Não há suporte para o ciclo de vida nosbuckets habilitados para file system.

PUT Bucket versioning

DELETE Object

Delete Multiple Objects

GET Object

GET Object ACL

HEAD Object

PUT Object Dá suporte a PUT fragmentada

PUT Object acl

PUT Object - Copy

OPTIONS object

Initiate Multipart Upload

Upload Part

Upload Part - Copy

Complete Multipart Upload ECS devolve um ETag de "00 "para essa solicitação. Isso édiferente das respostas do Amazon S3.

Abort Multipart Upload

List Parts

Tabela 2 Recursos adicionais

Recurso Observações

Pre-signed URLs ECS dá suporte ao uso de URLs pré-assinadas para permitirque os usuários tenham acesso aos objetos sem necessidadede credenciais.

Mais informações podem ser encontradas aqui.

Chunked PUT A operação PUT pode ser usada para fazer upload de objetosem fragmentos. A transferência fragmentada usa o cabeçalhoTransfer-Encoding (Transfer-Encoding: chunked) paraespecificar que o conteúdo será transmitido em fragmentos.Isso permite que o conteúdo seja enviado antes que otamanho total da carga útil seja conhecido.

APIs do S3 incompatíveisA tabela a seguir lista os métodos da API do S3 não compatíveis.

Recursos compatíveis do S3

Recursos compatíveis e não compatíveis da API do S3 19

Page 20: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Tabela 3 APIs do S3 incompatíveis

Recurso Observações

DELETE Bucket policy

DELETE Bucket tagging

DELETE Bucket website

GET Bucket policy

GET Bucket location ECS só reconhece um só datacenter virtual.

GET Bucket logging

GET Bucket notification A notificação é definida somente para o recurso deredundância reduzida no S3. No momento, o ECS não dásuporte a notificações.

GET Bucket tagging

GET Bucket requestPayment ECS tem seu próprio modelo para pagamentos.

GET Bucket website

PUT Bucket policy

PUT Bucket logging

PUT Bucket notification A notificação é definida somente para o recurso deredundância reduzida no S3. No momento, o ECS não dásuporte a notificações.

PUT Bucket tagging

PUT Bucket requestPayment ECS tem seu próprio modelo para pagamentos.

PUT Bucket website

Object APIs

GET Object torrent

POST Object

POST Object restore Essa operação está relacionada ao AWS Glacier, que não écompatível com o ECS.

Recursos compatíveis do S3

20 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 21: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

CAPÍTULO 3

Extensões S3

l Extensões S3..................................................................................................... 22l Extensões de intervalo de bytes.........................................................................22l Retenção............................................................................................................26l File system habilitado......................................................................................... 27

Extensões S3 21

Page 22: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Extensões S3O ECS dá suporte a um número de extensões para a API S3.

As extensões e as APIs que dão suporte a elas são listados abaixo.

l Extensões de intervalo de bytes

l Extensão de retenção

l Extensão de file system habilitado

l Extensão de pesquisa de metadados

Extensões de intervalo de bytes

As seguintes extensões de intervalo de bytes são fornecidas:

l Atualizando um intervalo de bytes em um objeto na página 22

l Sobregravação de parte de um objeto na página 23

l Acrescentando dados a um objeto na página 24

l Lendo vários intervalos de byte em um objeto na página 25

Atualizando um intervalo de bytes em um objetoUm exemplo do uso de extensões da API do ECS para atualizar um intervalo de bytesde um objeto é fornecido abaixo.

Primeiro, faça uma primeira solicitação GET no objeto nomeado object1 encontradoem bucket1 para analisar o objeto. object1 tem o valor The quick brown fox jumps over the lazy dog.

GET /bucket1/object1 HTTP/1.1Date: Mon, 17 Jun 2013 20:04:40 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:9qxKiHt2H7upUDPF86dvGp8VdvI=Accept-Encoding: gzip, deflate, compress

HTTP/1.1 200 OKDate: Mon, 17 Jun 2013 20:04:40 GMTContent-Type: application/octet-streamLast-Modified: Mon, 17 Jun 2013 20:04:28 GMTETag: 6Content-Type: application/jsonContent-Length: 43

The quick brown fox jumps over the lazy dog.

Agora você deseja atualizar um intervalo de bytes específico do objeto. Para fazerisso, o cabeçalho Range na solicitação de dados de objeto deve incluir o deslocamentodo início e do fim do objeto que deseja atualizar. O formato é: Range:bytes=<startOffset>-<endOffset>

Extensões S3

22 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 23: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

No exemplo a seguir, a solicitação PUT inclui o cabeçalho Range com o valorbytes=10-14 que indica que os bytes 10,11,12,13,14 devem ser substituídos pelo valorenviado na solicitação. Aqui, o novo valor green está sendo enviado.

PUT /bucket1/object1 HTTP/1.1Content-Length: 5Range: bytes=10-14ACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 17 Jun 2013 20:15:16 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:xHJcAYAEQansKLaF+/4PdLBHyaM=Accept-Encoding: gzip, deflate, compress green HTTP/1.1 204 No ContentETag: 10x-amz-id-2: object1x-amz-request-id: 027f037c-29ea-4670-8670-de82d0e9f52aContent-Length: 0Date: Mon, 17 Jun 2013 20:15:16 GMT

Ao ler o objeto novamente, o novo valor agora será The quick green fox jumpsover the lazy dog. (A palavra brown foi substituída por green.) Você atualizouum intervalo específico de bytes desse objeto.

GET /bucket1/object1 HTTP/1.1Cookie: JSESSIONID=wdit99359t8rnvipinz4tbtuACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 17 Jun 2013 20:16:00 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:OGVN4z8NV5vnSAilQTdpv/fcQzU=Accept-Encoding: gzip, deflate, compress HTTP/1.1 200 OKDate: Mon, 17 Jun 2013 20:16:00 GMTContent-Type: application/octet-streamLast-Modified: Mon, 17 Jun 2013 20:15:16 GMTETag: 10Content-Type: application/jsonContent-Length: 43 The quick green fox jumps over the lazy dog.

Sobregravação de parte de um objetoUm exemplo do uso das extensões da API do ECS para sobregravar dados a um objetoé fornecido abaixo.

Você pode sobregravar parte de um objeto oferecendo apenas o deslocamento deinício na solicitação de dados. Os dados na solicitação serão gravados com início nodeslocamento fornecido. O formato é: Range: <startingOffset>-

Extensões S3

Sobregravação de parte de um objeto 23

Page 24: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Por exemplo, para gravar os dados brown cat iniciando no deslocamento 10, vocêemitiria essa solicitação PUT:

PUT /bucket1/object1 HTTP/1.1Content-Length: 9Range: bytes=10-ACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 17 Jun 2013 20:51:41 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:uwPjDAgmazCP5lu77Zvbo+CiT4Q=Accept-Encoding: gzip, deflate, compress brown cat HTTP/1.1 204 No ContentETag: 25x-amz-id-2: object1x-amz-request-id: 65be45c2-0ee8-448a-a5a0-fff82573aa3bContent-Length: 0Date: Mon, 17 Jun 2013 20:51:41 GMT

Ao recuperar o objeto, você pode encontrar o valor final The quick brown catjumps over the lazy dog and cat. (green fox foi substituído por browncat). Você sobregravou parte dos dados nesse objeto no deslocamento inicialfornecido.

GET /bucket1/object1 HTTP/1.1Date: Mon, 17 Jun 2013 20:51:55 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:/UQpdxNqZtyDkzGbK169GzhZmt4=Accept-Encoding: gzip, deflate, compress HTTP/1.1 200 OKDate: Mon, 17 Jun 2013 20:51:55 GMTContent-Type: application/octet-streamLast-Modified: Mon, 17 Jun 2013 20:51:41 GMTETag: 25Content-Type: application/jsonContent-Length: 51 The quick brown cat jumps over the lazy dog and cat.

Acrescentando dados a um objetoUm exemplo do uso das extensões da API do ECS para acrescentar dados a um objetoé fornecido abaixo.

Pode haver os casos em que é necessário acrescentar a um objeto, mas determinar odeslocamento exato de bytes não é eficiente ou útil. Para este cenário, o ECS fornecea capacidade de acrescentar atomicamente os dados ao objeto sem especificar umdeslocamento (o deslocamento correto é devolvido na resposta).

Um cabeçalho Range com o valor especial bytes=-1- pode ser usado paraacrescentar dados a um objeto. Dessa forma, o objeto pode ser estendido sem saber otamanho do objeto existente.

O formato é: Range: bytes=-1-

Extensões S3

24 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 25: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

A seguir, há uma amostra de solicitação que demonstra o acréscimo a um objetoexistente usando um valor Range de bytes=-1-. Aqui, o valor and cat é enviado nasolicitação.

PUT /bucket1/object1 HTTP/1.1Content-Length: 8Range: bytes=-1-ACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 17 Jun 2013 20:46:01 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:/sqOFL65riEBSWLg6t8hL0DFW4c=Accept-Encoding: gzip, deflate, compress and cat HTTP/1.1 204 No ContentETag: 24x-amz-id-2: object1x-amz-request-id: 087ac237-6ff5-43e3-b587-0c8fe5c08732Content-Length: 0Date: Mon, 17 Jun 2013 20:46:01 GMT

Ao recuperar o objeto novamente, você pode encontrar o valor total The quickgreen fox jumps over the lazy dog and cat. Você acrescentou dadospara esse objeto.

GET /bucket1/object1 HTTP/1.1ACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 17 Jun 2013 20:46:56 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:D8FSE8JoLl0MTQcFmd4nG1gMDTg=Accept-Encoding: gzip, deflate, compress HTTP/1.1 200 OKDate: Mon, 17 Jun 2013 20:46:56 GMTContent-Type: application/octet-streamLast-Modified: Mon, 17 Jun 2013 20:46:01 GMTETag: 24Content-Type: application/jsonContent-Length: 51 The quick green fox jumps over the lazy dog and cat.

Lendo vários intervalos de byte em um objetoUm exemplo do uso das extensões da API do ECS para ler vários intervalos de bytesem um objeto é apresentado abaixo.

Para ler dois intervalos de bytes específicos dentro do objeto nomeado comoobject1, você emitiria a seguinte solicitação GET para Range:bytes==4-8,41-44. A resposta de leitura seria para as palavras quick e lazy.

Extensões S3

Lendo vários intervalos de byte em um objeto 25

Page 26: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Obs.

O API Amazon S3 só é compatível com um intervalo ao usar o cabeçalho HTTP Rangepara leitura; ECS dá suporte a vários intervalos de byte.

GET /bucket1/object1 HTTP/1.1Date: Mon, 17 Jun 2013 20:51:55 -0000x-emc-namespace: emcRange: bytes==4-8,41-44Content-Type: application/octet-streamAuthorization: AWS wuser1:/UQpdxNqZtyDkzGbK169GzhZmt4=Accept-Encoding: gzip, deflate, compress HTTP/1.1 206 Partial ContentDate: Mon, 17 Jun 2013 20:51:55 GMTContent-Type: multipart/byteranges;boundary=bound04acf7f0ae3cccLast-Modified: Mon, 17 Jun 2013 20:51:41 GMTContent-Length: 230 --bound04acf7f0ae3cccContent-Type: application/octet-streamContent-Range: bytes 4-8/50quick--bound04acf7f0ae3cccContent-Type: application/octet-streamContent-Range: bytes 41-44/50lazy--bound04acf7f0ae3ccc--

Retenção

O S3 head do ECS dá suporte à retenção de objetos para impedir que sejam excluídosou modificados por um período de tempo especificado. Trata-se de uma extensão doECS e não está disponível no API S3 padrão.

A retenção pode ser configurada da seguinte maneira:

Período de retenção de objeto

Armazena um período de retenção com o objeto. O período de retenção éconfigurado usando um cabeçalho x-emc-retention-period no objeto.

Política de retenção no objeto

Uma política de retenção pode ser configurada no objeto e o período associadocom a política pode ser configurado para o namespace. Isso permite que o períodode retenção para um grupo de objetos seja configurado com o mesmo valorusando uma política e possa ser alterado para todos os objetos, alterando-se apolítica. O uso de uma política oferece muito mais flexibilidade do que a aplicaçãodo período de retenção a um objeto. Além disso, várias políticas de retençãopodem ser configuradas para um namespace para permitir que diferentes gruposde objetos tenham diferentes períodos de retenção.A política de retenção aplicada a um objeto usando um cabeçalho x-emc-retention-policy no objeto e o período de retenção da política deve serdefinido pelo seu administrador do ECS no Portal do ECS.

Período de retenção no bucket

Um período de retenção armazenado em relação a um bucket pode ser usado paraconfigurar uma retenção para todos os objetos, com o período de retenção emnível de objeto ou a política usada para oferecer e configurar uma configuração

Extensões S3

26 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 27: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

específica do objeto quando uma retenção mais longa for necessária. O período deretenção é configurado usando-se um cabeçalho x-emc-retention-periodno bucket.

Quando se faz uma tentativa de modificar ou excluir o objeto, quanto maior o períodode retenção do bucket ou o período do objeto, a configuração que usa os períodos deretenção do objeto ou a política de retenção do objeto é usada para determinar se aoperação pode ser realizada.

Os buckets S3 também podem ser criados do API REST de gerenciamento do ECS oua partir do Portal do ECS e o período de retenção para um bucket pode ser definido apartir daí.

Ciclo de vida (expiração) e retenção

O ECS dá suporte ao S3 LifecycleConfiguration tanto em buckets com controle deversões ativado quanto em buckets sem controle de versões ativado.

Quando for necessário modificar e excluir objetos, mas for preciso garantir que osobjetos ainda permaneçam retidos por um período de tempo, é possível habilitar ocontrole de versões em um bucket e usar o recurso de ciclo de vida para determinarquando as versões excluídas de objetos serão removidas do ECS.

Controle de versões e ciclo de vida são recursos do S3 padrão. No entanto, aexpiração do ciclo de vida está intimamente relacionada à retenção, que é umaextensão do ECS. Se o ciclo de vida expirar antes do período de retenção, o objeto nãoserá excluído até que o período de retenção tenha terminado.

File system habilitado

Os buckets S3 também podem ser habilitados para file system (FS) para que osarquivos gravados usando o protocolo S3 possam ser lidos usando protocolos dearquivo, como NFS e HDFS e vice-versa.

Habilitando o acesso a FSÉ possível habilitar o acesso ao file system usando o cabeçalho x-emc-file-system-access-enabled ao criar um bucket usando o protocolo S3. O acesso aofile system também pode ser habilitado durante a criação de um bucket no Portal doECS (usando o API REST de gerenciamento do ECS).

Limitação no suporte do FSAs seguintes limitações se aplicam:

l Quando um bucket for habilitado para FS, o gerenciamento do ciclo de vida de S3não pode ser habilitado.

l Quando um bucket for habilitado para FS, não é possível usar a retenção.

Suporte cruzado para FSO suporte cruzado refere-se ao acesso a objetos gravados usando um protocolo comum protocolo diferente compatível com o ECS. Objetos gravados usando o S3 headpodem ser lidos e gravados usando protocolos de file system NFS e HDFS.

Um aspecto importante de suporte cruzado é como as permissões de objeto/file seconvertem entre os protocolos e, no caso de acesso ao file system, como conceitos degrupo e usuário se convertem entre os protocolos de objeto e file.

Extensões S3

Ciclo de vida (expiração) e retenção 27

Page 28: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Você pode encontrar mais informações sobre o suporte cruzado com o file system aseguir:

l Configurar o HDFS

l Guia do administrador: Configurar o acesso a arquivos do NFS

Extensões S3

28 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 29: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

CAPÍTULO 4

Extensão de pesquisa de metadados S3

l Use a pesquisa de metadados............................................................................ 30l Atribuir valores de índice de metadados a um bucket.........................................30l Atribuir metadados aos objetos usando o protocolo S3...................................... 33l Usar consultas de pesquisa de metadados......................................................... 34l Usando a pesquisa de metadados do ECS Java SDK ......................................... 39l Metadados de sistema do ECS e atributos opcionais......................................... 40

Extensão de pesquisa de metadados S3 29

Page 30: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Use a pesquisa de metadadosA API do ECS compatível com S3 oferece uma extensão de pesquisa de metadadospara a API que permite que os objetos de um bucket sejam indexados com base emseus metadados e que o índice de metadados seja consultado para localizar objetos eseus dados associados.

Tradicionalmente, os metadados podem ser associados a objetos usando a API ECS S3e, se você conhece a identidade do objeto em que estiver interessado, poderá ler seusmetadados. No entanto, sem o recurso de pesquisa de metadados do ECS, não épossível localizar um objeto com base em seus metadados sem fazer a iteração pormeio do conjunto de objetos de um bucket.

Os metadados podem ser metadados do usuário ou metadados do sistema. Osmetadados do sistema são definidos e gravados automaticamente em objetos peloECS, enquanto os metadados do usuário são gravados por clients com base nosrequisitos do usuário final. Os metadados do sistema e do usuário podem ser indexadose usados como base para as pesquisas de metadados. O número de valores demetadados que podem ser indexados é limitado a 30 e deve ser definido na criação dobucket.

Obs.

No caso de objetos pequenos (100 KB e menores), a taxa de inclusão de dados reduzum pouco ao se aumentar o número de chaves de índice. Os dados de teste dedesempenho mostrando o impacto do uso de índices de metadados para objetosmenores estão disponíveis no white paper de desempenho do ECS.

Além dos metadados do sistema, os objetos também têm atributos que podem serexibidos como parte dos resultados da pesquisa de metadados.

Os seguintes tópicos abordam as etapas envolvidas na configuração e no uso dorecurso de pesquisa de metadados:

l Atribuir valores de índice de metadados a um bucket na página 30

l Atribuir metadados aos objetos usando o protocolo S3 na página 33

l Usar consultas de pesquisa de metadados na página 34

Os valores de metadados do sistema que estão disponíveis e podem ser indexados, eos valores de metadados que podem ser exibidos opcionalmente com os resultados daconsulta de pesquisa, são listados aqui.

Atribuir valores de índice de metadados a um bucketVocê pode definir valores de índice de metadados em um bucket usando o Portal doECS ou a API REST ECS Management, ou usando o protocolo S3. Os valores de índicedevem refletir o nome dos metadados que estão sendo indexados e podem serbaseados em metadados de sistema ou metadados de usuário.

Uma lista dos metadados de sistema disponíveis é apresentada em Metadados desistema do ECS e atributos opcionais na página 40.

Os valores de índice são definidos na criação de um bucket. Você pode desabilitar ouso de indexação em um bucket, mas não pode alterar nem excluir valores de índiceindividuais.

Extensão de pesquisa de metadados S3

30 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 31: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Configurando valores de índice no Portal

A página Manage > Bucket permite a criação de buckets e a atribuição de valores deíndice durante o processo de criação. Consulte Guia do administrador: Criar egerenciar buckets para obter detalhes.

Configurando valores de índice na API REST ECS Management

Os métodos oferecidos pela API REST ECS Management para trabalhar com índicessão listados na tabela a seguir e links são fornecidos para referências sobre a API.

Caminho da API Descrição

GET /object/bucket/searchmetadata Lista os nomes de todas as chaves demetadados de sistema disponíveis paraatribuição a um novo bucket.

POST /object/bucket Atribui os nomes de índice de metadados queserão indexados para o bucket especificado.Os nomes de índice são fornecidos na cargaútil do método.

GET /object/bucket Obtém uma lista de buckets. As informaçõesde cada bucket mostram os detalhes depesquisa de metadados.

GET /object/bucket/{bucketname}/info Obtém os detalhes do bucket selecionado. Asinformações do bucket incluem os detalhes depesquisa de metadados.

DELETE /object/bucket/{bucketname}/searchmetadata

Interrompe a indexação usando as chaves demetadados.

Exemplo: obtém a lista dos nomes de metadados disponíveisO exemplo a seguir obtém a lista completa de nomes de metadados disponíveis paraindexação e que podem ser exibidos nas consultas.

s3curl.pl --id myuser -- http://{host}:9020/?searchmetadata

Os resultados da consulta são apresentados a seguir.

<MetadataSearchList xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <IndexableKeys> <Key> <Name>LastModified</Name> <Datatype>datetime</Datatype> </Key> <Key> <Name>Owner</Name> <Datatype>string</Datatype> </Key> <Key> <Name>Size</Name> <Datatype>integer</Datatype> </Key> <Key> <Name>CreateTime</Name>

Extensão de pesquisa de metadados S3

Atribuir valores de índice de metadados a um bucket 31

Page 32: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

<Datatype>datetime</Datatype> </Key> <Key> <Name>ObjectName</Name> <Datatype>string</Datatype> </Key> </IndexableKeys> <OptionalAttributes> <Attribute> <Name>ContentType</Name> <Datatype>string</Datatype> </Attribute> <Attribute> <Name>Expiration</Name> <Datatype>datetime</Datatype> </Attribute> <Attribute> <Name>ContentEncoding</Name> <Datatype>string</Datatype> </Attribute> <Attribute> <Name>Expires</Name> <Datatype>datetime</Datatype> </Attribute> <Attribute> <Name>Retention</Name> <Datatype>integer</Datatype> </Attribute> </OptionalAttributes></MetadataSearchList>

Exemplo: obtém a lista de chaves que estão sendo indexadas para um bucketO exemplo a seguir obtém a lista de chaves de metadados que estão sendo indexadaspara um bucket.

s3curl.pl --id myuser -- http://{host}:9020/mybucket/?searchmetadata

Os resultados desse exemplo são apresentados a seguir.

<MetadataSearchList xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <MetadataSearchEnabled>true</MetadataSearchEnabled> <IndexableKeys> <Key> <Name>Size</Name> <Datatype>integer</Datatype> </Key> <Key> <Name>x-amz-meta-DAT</Name> <Datatype>datetime</Datatype> </Key> </IndexableKeys></MetadataSearchList>

Configurando valores na API do S3

Os métodos oferecidos pela API do S3 para trabalhar com índices são listados natabela a seguir e links são fornecidos para referências sobre a API.

Extensão de pesquisa de metadados S3

32 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 33: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Caminho da API Descrição

GET /?searchmetadata Lista os nomes de todos os metadados desistema disponíveis para indexação em novosbuckets.

PUT /{bucket} -H x-emc-metadata-search:{name[;datatype],...}

Cria um bucket com a chave de metadados depesquisa indicada no cabeçalho.

Obs.

Um datatype deve ser associado uma chavede metadados de usuário, mas não énecessário para uma chave de metadados desistema.

GET /{bucket}/?searchmetadata Obtém a lista de chaves de metadados queestão sendo indexadas para o bucket.

ExemploO exemplo a seguir mostra como criar um bucket com índices de metadados para trêschaves de metadados de sistema e duas chaves de metadados de usuário.

s3curl.pl --id myuser --createbucket -- http://{host}:9020/mybucket-H "x-emc-metadata-search:Size,CreateTime,LastModified,x-amz-meta-STR;String,x-amz-meta-INT;Integer"

Obs.

Ao adicionar um novo objeto com x-amz-meta-, valores com caracteres especiais nãoprecisam ser codificados em URL.

Atribuir metadados aos objetos usando o protocolo S3Os usuários finais podem atribuir metadados de usuário a objetos usando o cabeçalho"x-amz-meta-". O valor atribuído pode ser qualquer cadeia de texto e distinguemaiúsculas de minúsculas.

Quando os metadados forem indexados para que possam ser usados como base parapesquisas de objeto (o recurso de pesquisa de metadados), um tipo de dado éatribuído aos dados. Ao gravar os metadados em objetos, os clients devem gravardados no formato adequado para que eles possam ser usados corretamente naspesquisas.

Os tipos de dado são:

String

Se o termo de índice da pesquisa for marcado como texto, a string de metadadosserá tratada como uma string em todas as comparações da pesquisa.

Integer

Se o termo de índice da pesquisa for marcado como número inteiro, a string demetadados será convertida em um número inteiro nas comparações da pesquisa.

Extensão de pesquisa de metadados S3

Atribuir metadados aos objetos usando o protocolo S3 33

Page 34: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Decimal

Se um termo de índice da pesquisa for marcado como decimal, a string demetadados será convertida em um valor decimal para que o caractere "." sejatratado como um ponto decimal.

Datetime

Se o termo de índice da pesquisa for marcado como datetime, a string demetadados será tratada como uma data e hora com o formato esperado: AAAA-MM-ddTHH:mm:ssZ. Se você quiser que a string seja tratada como datetime,deverá usar o formato AAAA-MM-ddTHH:mm:ssZ ao especificar os metadados.

ExemploO exemplo a seguir usa a API do S3 para fazer upload de um objeto e de dois valoresde metadados de usuário no objeto.

s3curl.pl --id myuser --put myfile -- http://{host}:9020/mybucket/file4 -i -H x-amz-meta-STR:String4 -H x-amz-meta-INT:407

Usar consultas de pesquisa de metadadosO recurso de pesquisa de metadados oferece uma linguagem de consulta avançadaque permite que os objetos que indexaram metadados sejam pesquisados.

A sintaxe é exibida na tabela a seguir.

Sintaxe da API Corpo da resposta

GET /{bucket}/?query={expression}&attributes={fieldname,…}&sorted={selector}&include_older_version={true|false} (…also standard pagination parameters apply)

<BucketQueryResult xmlns:ns2="http://s3.amazonaws.com/doc/2006-03-01/"> <Name>mybucket</Name> <Marker/> <NextMarker>NO MORE PAGES</NextMarker> <MaxKeys>0</MaxKeys> <IsTruncated>false</IsTruncated> <ObjectMatches> <object> <objectName>file4</objectName> <objectId>09998027b1b7fbb21f50e13fabb481a237ba2f60f352d437c8da3c7c1c8d7589</objectId> <queryMds> <type>SYSMD</type> <mdMap> <entry> <key>createtime</key> <value>1449081778025</value> </entry> <entry> <key>size</key> <value>1024</value> </entry> <entry> <key>mtime</key> <value>1449081778025</value> </entry> </mdMap> </queryMds> <queryMds> <type>USERMD</type> <mdMap> <entry> <key>x-amz-meta-INT</key>

Extensão de pesquisa de metadados S3

34 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 35: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Sintaxe da API Corpo da resposta

<value>407</value></entry><entry>

<key>x-amz-meta-STR</key><value>String4</value>

</entry></mdMap>

</queryMds><indexKey/>

</object><object...</object>

</ObjectMatches></BucketQueryResult>

As palavras-chave de expressão e seus significados são listados abaixo:

expression

Uma expressão na forma:

[(]{condition1}[%20[and/or]%20{condition2}][)][%20[and/or]%20…]

Onde "condition" é um filtro do nome da chave de metadados na forma:

{selector} {operator}{argument},

Por exemplo:

LastModified > 2015-09-02T11:22:00Z

selector

Um nome de chave pesquisável associado ao bucket.

operador

Um operador. Uma destas opções: ==, >, <, <=, >=

argument

Um valor em relação ao qual o seletor é testado.

attributes=[fieldname,...]

Especifica todos os atributos opcionais de objeto que devem ser incluídos norelatório. Os valores de atributos serão incluídos no relatório no qual esse atributoestá presente no objeto. Os valores opcionais de atributo abrangem:

l ContentEncoding

l ContentType

l Retenção

l Expiração

l Expires

Extensão de pesquisa de metadados S3

Usar consultas de pesquisa de metadados 35

Page 36: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

sorted=[selector]

Especifica um nome de chave pesquisável associado ao bucket. O nome da chavedeve ser uma chave exibida na expressão. Na ausência de &sorted=nome dachave, o resultado será classificado de acordo com o primeiro nome de chaveexibido na expressão de consulta.

Obs.

Se operadores "or" forem usados na expressão, a ordem de classificação seráindeterminada.

include-older-versions=[true|false]

Quando o controle de versão do S3 estiver habilitado em um bucket, configuraressa opção como true exibirá as versões antigas e atuais dos objetos quecorrespondem à expressão. O padrão é false.

max-num

O número máximo de objetos que correspondem à consulta que deve ser exibida.Se houver mais objetos do que o número máximo, um marcador que pode serusado para recuperar mais correspondências será exibido.

marker

O marcador que foi exibido por uma consulta anterior e que indica o ponto do qualas correspondências da consulta devem ser exibidas.

Consultas de data e hora

Os valores de data e hora dos metadados de usuário são especificados no formatoISO-8601 "aaaa-MM-dd'T'HH:mm:ssZ" e são mantidos pelo ECS nesse formato. Asconsultas de metadados também usam esse formato. No entanto, o ECS mantém osvalores de data e hora para os metadados de sistema como epoch time, o número demilissegundos desde o início de 1970.

Quando uma consulta exibir resultados, ela exibirá o formato de data e hora mantidopelo ECS. Um exemplo dos dois formatos é exibido a seguir.

Exemplo de cabeçalho de upload de metadados de usuário:

-H x-amz-meta-Foo:2015-11-30T12:00:00Z

Formato da expressão de consulta de usuário e sistema:

?query=CreateTime>2015-01-01:00:00:00Z and x-amz-meta-Foo==2015-11-30T12:00:00Z

Fragmento de resultados da consulta — metadados de sistema

<key>createtime</key> <value>1449081777620</value>

Extensão de pesquisa de metadados S3

36 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 37: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Fragmento de resultados da consulta — metadados de usuário

<key>x-amz-meta-Foo</key> <value>2015-11-30T12:00:00Z</value>

Usando markers e max-num para paginar os resultados

Você pode especificar o número máximo de objetos que será exibido por uma consultausando o parâmetro de consulta de max-keys.

O exemplo abaixo especificou um número máximo de objetos como sendo 3.

?query=CreateTime>2015-01-01:00:00:00Z and x-amz-meta-Foo==2015-11-30T12:00:00Z&max-num=3

Quando uma consulta corresponde a mais objetos do que o max-keys que foiespecificado, também será devolvido um marcador que pode ser usado para devolveros objetos da próxima página que correspondam à consulta, mas que não foramexibidos.

A consulta abaixo especifica um marcador que foi recuperado de uma consultaanterior:

?query=CreateTime>2015-01-01:00:00:00Z and x-amz-meta-Foo==2015-11-30T12:00:00Z&max-num=3&marker=rO0ABXNyAD...

Quando os objetos que são exibidos são a página final dos objetos, NENHUMA OUTRAPÁGINA é devolvida no NextMarker do corpo da resposta.

<NextMarker>NO MORE PAGES</NextMarker>

Usando caracteres especiais em consultas

O uso de codificação de URL é necessário para garantir que os caracteres especiaissejam recebidos corretamente pelo serviço REST do ECS, e o uso de aspas pode sernecessário para garantir que quando o ECS analise a consulta ele não interprete mal ossímbolos. Por exemplo:

l Ao consultar sobre os valores de x-amz-meta, caracteres especiais devem sercodificados em URL. Por exemplo: ao usar "%" (ASCII 25 hex), ou "/" (ASCII 2F),eles devem ser codificados como %25 e 2F, respectivamente.

l Ao consultar sobe valores de x-amz-meta que têm caracteres reservados SQL, oscaracteres reservados devem ser ignorados. Isso serve para garantir que oanalisador SQL usado pelo ECS não os considerem operadores. Por exemplo: 'ab <cd' (ou seja, certifique-se de que um par de aspas seja passado para o serviço paraque o analisador SQL usado pelo ECS não os considerem operadores). Oscaracteres reservados SQL incluem operadores de comparação (=, <, >, +, -, !, ~)e separadores de sintaxe (vírgula, ponto e vírgula).

Extensão de pesquisa de metadados S3

Usar consultas de pesquisa de metadados 37

Page 38: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Diferentes maneiras de uso de aspas são possíveis e dependem do client queestiver sendo usado. Um exemplo de ferramentas de linha de comando do Unix,como S3curl.pl, seria:

?query="'ab+cd<ed;ef'"

Nesse caso, o valor de pesquisa é com aspa simples inserido entre aspas duplas.

Exemplos de pesquisa de metadados

O exemplo a seguir usa a API S3 para pesquisar um bucket com correspondência detamanho específico de objeto e de valor de metadados de usuário.

Obs.

Alguns clients REST podem exigir que você codifique os "espaços" com o código de URL %20.

s3curl.pl --id myuser-- "http://{host}:9020.mybucket?query=Size>1000%20and%20x-amz-meta-STR>=String4

O resultado mostra três objetos que correspondem à pesquisa.

<BucketQueryResult xmlns:ns2="http://s3.amazonaws.com/doc/2006-03-01/">

<Name>mybucket</Name><Marker/><NextMarker>NO MORE PAGES</NextMarker><MaxKeys>0</MaxKeys><IsTruncated>false</IsTruncated><ObjectMatches>

<object><objectName>file4</objectName>

<objectId>09998027b1b7fbb21f50e13fabb481a237ba2f60f352d437c8da3c7c1c8d7589</objectId>

<queryMds><type>SYSMD</type><mdMap>

<entry><key>createtime</key><value>1449081778025</value>

</entry><entry>

<key>size</key><value>1024</value>

</entry><entry>

<key>mtime</key><value>1449081778025</value>

</entry></mdMap>

</queryMds><queryMds>

<type>USERMD</type><mdMap>

<entry><key>x-amz-meta-INT</key><value>407</value>

</entry>

Extensão de pesquisa de metadados S3

38 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 39: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

<entry><key>x-amz-meta-STR</key><value>String4</value>

</entry></mdMap>

</queryMds><indexKey/>

</object><object>

<objectName>file5</objectName>

<objectId>1ad87d86ef558ca0620a26855662da1030f7d9ff1d4bbc7c2ffdfe29943b9150</objectId>

<queryMds><type>SYSMD</type><mdMap>

<entry><key>createtime</key><value>1449081778396</value>

</entry><entry>

<key>size</key><value>1024</value>

</entry><entry>

<key>mtime</key><value>1449081778396</value>

</entry></mdMap>

</queryMds><queryMds>

<type>USERMD</type><mdMap>

<entry><key>x-amz-meta-INT</key><value>507</value>

</entry><entry>

<key>x-amz-meta-STR</key><value>Sring5</value>

</entry></mdMap>

</queryMds><indexKey/>

</object></ObjectMatches>

</BucketQueryResult>

Usando a pesquisa de metadados do ECS Java SDK

No SDK 3.0, há uma opção para excluir os parâmetros "search" e "searchmetadata"da assinatura se você estiver se conectando a um ECS pré-3.0. Esses parâmetros nãofaziam parte da computação de assinatura no ECS 2.x, mas agora fazem parte dacomputação para aprimorar a segurança.

A tabela de compatibilidade a seguir é fornecida para mostrar o suporte do SDK para orecurso de pesquisa de metadados:

Versão do ECS

2.x 3.x

SDK 2.x Sim Não

Extensão de pesquisa de metadados S3

Usando a pesquisa de metadados do ECS Java SDK 39

Page 40: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Versão do ECS

2.x 3.x

SDK 3.x Sim Sim

Metadados de sistema do ECS e atributos opcionaisOs metadados de sistema são automaticamente associados a cada objeto armazenadona área de armazenamento de objetos. Alguns metadados de sistema são semprepreenchidos e podem ser usados como chaves de índice; outros metadados não sãosempre preenchidos, mas, quando estiverem presentes, poderão ser exibidos comresultados de consulta da pesquisa de metadados.

Metadados de sistemaOs metadados de sistema listados na tabela a seguir podem ser usados como chavesde índices da pesquisa de metadados.

Nome (alias) Tipo Descrição

ObjectName string Nome do objeto.

Owner string Identidade do proprietário do objeto.

Size integer Tamanho do objeto.

CreateTime datetime Horário em que o objeto foi criado.

LastModified datetime Data e hora em que o objeto foi modificado pelaúltima vez.

Obs.

Modificação compatível com extensões deatualização da faixa de bytes de S3 do ECS, nãocom a API S3 pura.

Atributos opcionais de metadadosOs atributos opcionais dos metadados de sistema podem ou não ser preenchidos paraum objeto, mas podem ser exibidos juntamente com os resultados de consulta dapesquisa. Os atributos opcionais dos metadados de sistema são listados na tabela aseguir.

Nome (alias) Tipo

ContentType string

Expiration datetime

ContentEncoding string

Expires datetime

Retention integer

Extensão de pesquisa de metadados S3

40 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 41: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

CAPÍTULO 5

Criar e gerenciar chaves secretas

l Criar e gerenciar chaves secretas...................................................................... 42l Criar uma chave para um usuário de objeto........................................................ 42l Criar uma chave secreta do S3: autoatendimento.............................................. 43

Criar e gerenciar chaves secretas 41

Page 42: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Criar e gerenciar chaves secretasOs usuários dos serviços object do ECS precisam de uma chave secreta para seautenticar em um serviço.

As chaves secretas podem ser criadas e disponibilizadas ao usuário de objeto dasseguintes formas:

l O administrador cria uma chave e a distribui ao usuário de objeto (Criar uma chavepara um usuário de objeto na página 42).

l O usuário de objeto que é um usuário de domínio cria uma nova chave usando a APIde autoatendimento oferecida pela API REST de gerenciamento do ECS (Criaruma chave secreta do S3: autoatendimento na página 43).

É possível ter 2 chaves secretas para um usuário. Ao mudar (algumas vezes chamadode "acúmulo") uma chave secreta, um tempo de expiração em minutos pode serdefinido para a chave antiga. Durante o intervalo de expiração, ambas as chaves serãoaceitas para solicitações. Isso oferece um período de tolerância em que um aplicativopode ser atualizado para usar a nova chave.

Criar uma chave para um usuário de objetoOs usuários de gerenciamento do ECS podem criar uma chave secreta para um usuáriode objeto.

l Gerar uma chave secreta no portal do ECS na página 42

l Criar uma chave secreta S3 usando a API REST de gerenciamento do ECS napágina 42

Gerar uma chave secreta no portal do ECSÉ possível gerar uma chave secreta no portal do ECS.

Antes de você começar

l Você deve ser um System Admin ou Namespace Admin do ECS

Caso seja um System Admin, é possível criar uma chave secreta para um usuário deobjeto que pertença a qualquer namespace. Caso seja um Namespace Admin, épossível criar uma chave secreta para um usuário de objeto que pertença a seunamespace.

Procedimento

1. No portal do ECS, selecione a página Manage > Users.

2. Na tabela Object Users, selecione Edit para o usuário ao qual deseja atribuiruma chave secreta.

3. Em S3, selecione Generate & Add Password.

4. Copie a chave gerada e envie um e-mail ao usuário de objeto.

Criar uma chave secreta S3 usando a API REST de gerenciamento do ECSA API REST de gerenciamento do ECS permite que um usuário de gerenciamento crieuma chave secreta para um usuário de objeto S3.

As APIs são as seguintes:

Criar e gerenciar chaves secretas

42 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 43: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Caminho da API Descrição

/object/user-secret-keys/{uid} API que permite que chaves secretas sejamgerenciadas e atribuídas aos usuários deobjeto.

O Namespace Admin pode criar chaves paraos usuários de seu namespace. O SystemAdmin pode atribuir chaves aos usuários dequalquer namespace.

Mais informações sobre as chamadas API podem ser encontradas na referência da APIREST ECS Management.

Criar uma chave secreta do S3: autoatendimentoA API REST de gerenciamento do ECS permite que os usuários de domínioautenticados solicitem uma chave secreta para acessar a área de armazenamento deobjetos.

A Referência da API REST ECS Management pode ser usada quando você quiser criarum client personalizado para realizar determinadas operações de gerenciamento doECS. Para as operações simples, os usuários de domínio podem usar curl ou um clientHTTP baseado em navegador para executar a API e criar uma chave secreta.

Quando um usuário executar a API object/secret-keys, o ECS criará um usuáriode objeto automaticamente e o atribuirá a uma chave secreta.

Caminho da API Descrição

/object/secret-keys API para permitir que os usuários do client S3criem uma nova chave secreta que ospermitirá acessar os objetos e buckets de seunamespace.

Também é conhecida como API deautoatendimento.

A carga útil da /object/secret-keys pode incluir um período opcional deexpiração da chave existente.

<secret_key_create_param> <existing_key_expiry_time_mins></existing_key_expiry_time_mins> </secret_key_create_param>

Se você estiver criando uma chave secreta pela primeira vez, poderá omitir oparâmetro existing_key_expiry_time_mins e uma chamada seria:

POST object/secret-keys

Request body <?xml version="1.0" encoding="UTF-8"?> <secret_key_create_param/>

Response

Criar e gerenciar chaves secretas

Criar uma chave secreta do S3: autoatendimento 43

Page 44: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

<user_secret_key> <secret_key>...</secret_key> <key_timestamp>...</key_timestamp> <link rel="..." href="..." /> </user_secret_key>

Trabalhando com chaves de autoatendimentoExistem várias operações que podem ser realizadas com chaves secretas deautoatendimento usando a Referência da API REST de gerenciamento do ECS.

Os exemplos oferecidos usam a ferramenta curl para demonstrar as atividades aseguir.

l Fazer log-in como um usuário de domínio na página 44l Gerar a primeira chave na página 44l Gerar a segunda chave na página 45l Verificar chaves na página 45l Excluir todas as chaves secretas na página 45

Fazer log-in como um usuário de domínioVocê pode fazer log-in como um usuário de domínio e obter um token de autenticaçãoque pode ser usado para autenticar as solicitações posteriores.

curl -ik -u [email protected]:<Password> https://10.241.48.31:4443/loginHTTP/1.1 200 OKDate: Mon, 27 Apr 2015 17:29:38 GMTContent-Type: application/xmlContent-Length: 107Connection: keep-aliveX-SDS-AUTH-TOKEN: BAAcaVAzNU16eVcwM09rOWd2Y1ZoUFZ4QmRTK2JVPQMAQQIADTE0MzAwNzQ4ODA1NTQDAC51cm46VG9rZW46YWJmODA1NTEtYmFkNC00ZDA2LWFmMmMtMTQ1YzRjOTdlNGQ0AgAC0A8=

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><loggedIn><user>[email protected]</user></loggedIn>

Gerar a primeira chaveVocê pode gerar uma chave secreta.

curl -ks -H "X-SDS-AUTH-TOKEN: BAAcaVAzNU16eVcwM09rOWd2Y1ZoUFZ4QmRTK2JVPQMAQQIADTE0MzAwNzQ4ODA1NTQDAC51cm46VG9rZW46YWJmODA1NTEtYmFkNC00ZDA2LWFmMmMtMTQ1YzRjOTdlNGQ0AgAC0A8=" -H "Content-Type: application/json" -X POST -d "{}" https://10.241.48.31:4443/object/secret-keys | xmllint --format -

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><user_secret_key> <link rel="self" href="/object/user-secret-keys/[email protected]"/> <secret_key>7hXZ9/EHTVvmFuYly/z3gHpihXtEUX/VZxdxDDBd</secret_key> <key_expiry_timestamp/> <key_timestamp>2015-04-27 17:39:13.813</key_timestamp></user_secret_key>

Criar e gerenciar chaves secretas

44 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 45: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Gerar a segunda chaveVocê pode gerar uma segunda chave secreta e configurar a expiração da primeirachave.

curl -ks -H "X-SDS-AUTH-TOKEN: BAAcaVAzNU16eVcwM09rOWd2Y1ZoUFZ4QmRTK2JVPQMAQQIADTE0MzAwNzQ4ODA1NTQDAC51cm46VG9rZW46YWJmODA1NTEtYmFkNC00ZDA2LWFmMmMtMTQ1YzRjOTdlNGQ0AgAC0A8=" -H "Content-Type: application/json" -X POST -d "{\"existing_key_expiry_time_mins\": \"10\"}" https://10.241.48.31:4443/object/secret-keys | xmllint --format -

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><user_secret_key> <link rel="self" href="/object/user-secret-keys/[email protected]"/> <secret_key>l3fPCuFCG/bxoOXCPZoYuPwhXrSTwU0f1kFDaRUr</secret_key> <key_expiry_timestamp/> <key_timestamp>2015-04-27 17:40:12.506</key_timestamp></user_secret_key>

Verificar chavesVocê pode verificar as chaves às quais foi atribuído. Neste caso, há duas chaves e aprimeira tem uma data/hora de expiração.

curl -ks -H "X-SDS-AUTH-TOKEN: BAAcaVAzNU16eVcwM09rOWd2Y1ZoUFZ4QmRTK2JVPQMAQQIADTE0MzAwNzQ4ODA1NTQDAC51cm46VG9rZW46YWJmODA1NTEtYmFkNC00ZDA2LWFmMmMtMTQ1YzRjOTdlNGQ0AgAC0A8=" https://10.241.48.31:4443/object/secret-keys | xmllint --format -<?xml version="1.0" encoding="UTF-8" standalone="yes"?><user_secret_keys> <secret_key_1>7hXZ9/EHTVvmFuYly/z3gHpihXtEUX/VZxdxDDBd</secret_key_1> <secret_key_2>l3fPCuFCG/bxoOXCPZoYuPwhXrSTwU0f1kFDaRUr</secret_key_2> <key_expiry_timestamp_1>2015-04-27 17:50:12.369</key_expiry_timestamp_1> <key_expiry_timestamp_2/> <key_timestamp_1>2015-04-27 17:39:13.813</key_timestamp_1> <key_timestamp_2>2015-04-27 17:40:12.506</key_timestamp_2> <link rel="self" href="/object/secret-keys"/></user_secret_keys>

Excluir todas as chaves secretasCaso seja necessário excluir suas chaves antes de gerá-las novamente, use o comandoa seguir.

curl -ks -H "X-SDS-AUTH-TOKEN: BAAcaVAzNU16eVcwM09rOWd2Y1ZoUFZ4QmRTK2JVPQMAQQIADTE0MzAwNzQ4ODA1NTQDAC51cm46VG9rZW46YWJmODA1NTEtYmFkNC00ZDA2LWFmMmMtMTQ1YzRjOTdlNGQ0AgAC0A8=" -H "Content-Type: application/json" -X POST -d "{}" https://10.241.48.31:4443/object/secret-keys/deactivate

Criar e gerenciar chaves secretas

Trabalhando com chaves de autoatendimento 45

Page 46: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Criar e gerenciar chaves secretas

46 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 47: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

CAPÍTULO 6

Autenticação com o serviço do S3

l Autenticação com o serviço do S3..................................................................... 48

Autenticação com o serviço do S3 47

Page 48: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Autenticação com o serviço do S3O serviço do ECS S3 permite a autenticação usando a versão 2 da assinatura e aversão 4 da assinatura. Este tópico identifica alguns aspectos específicos ao ECS doprocesso de autenticação.

O Amazon S3 usa um cabeçalho de autorização que deve estar presente em todas assolicitações para identificar o usuário e fornecer uma signature da solicitação. Oformato do cabeçalho de autorização é diferente entre a autenticação da versão 2 daassinatura e da versão 4 da assinatura.

Para criar um cabeçalho de autorização, será necessário um ID da chave de acesso dosAWS e uma chave de acesso secreta. No ECS, o ID da chave de acesso dos AWS faz omapeamento ao ECS ID do usuário (ID exclusivo). Um ID de chave de acesso dos AWStem 20 caracteres (alguns clients S3, como o navegador do S3, verifique isso), mas oserviço de dados do ECS não tem essa limitação.

Autenticação usando a V2 da signature e a V4 da signature é apresentada em:

l Autenticando com a V2 da signature

l Autenticando com a V4 da signature

Aplicam-se as seguintes observações:

l No ECS Object Data Service, o ID exclusivo pode ser configurado (por meio da APIdo ECS ou da interface do usuário do ECS) com 2 chaves secretas. O ECS DataService tentará usar a primeira chave secreta, e se a signature calculada nãocorresponder, tentará usar a segunda chave secreta. Se a segunda chave falhar, asolicitação será rejeitada. Quando usuários adicionam ou alteram a chave secreta,eles devem esperar 2 minutos de modo que todos os nós do Data Service possamser atualizados com a nova chave secreta antes de usar a nova chave secreta.

l No ECS Data Service, o namespace também é levado em consideração no cálculode signature HMAC.

Autenticando com a V2 da signature

O cabeçalho de autorização ao usar a V2 da signature é apresentada assim:

Authorization: AWS <AWSAccessKeyId>:<Signature>

Por exemplo:

GET /photos/puppy.jpg?AWSAccessKeyId=user11&Expires=1141889120&Signature=vjbyPxybdZaNmGa%2ByT272YEAiv4%3D HTTP/1.1Host: myco.s3.amazonaws.comDate: Mon, 26 Mar 2007 19:37:58 +0000

A autenticação usando a V2 da signature é descrita em:

l http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html

Autenticando com a V4 da signature

Autenticação com o serviço do S3

48 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 49: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

O cabeçalho de autorização ao usar a V4 da signature é apresentada assim:

Authorization: AWS4-HMAC-SHA256Credential=user11/20130524/us/s3/aws4_request,SignedHeaders=host;range;x-amz-date,Signature=fe5f80f77d5fa3beca038a248ff027d0445342fe2855ddc963176630326f1024

O componente de credencial é composto por seu ID da chave de acesso seguido peloescopo de credencial. O escopo de credencial é composto pela string Data/Região/Nome do serviço/Rescisão. Para o ECS, o nome do serviço é sempre s3 e a regiãopode ser qualquer string. Ao computar a signature, o ECS usará a string de regiãoinformada pelo client.

A autenticação usando a V4 da signature é descrita em:

l http://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html, e

l http://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-header-based-auth.html

Um exemplo de uma solicitação PUT bucket usando a V4 da signature é apresentadoabaixo:

PUT /bucket_demo HTTP/1.1x-amz-date: 20160726T033659ZAuthorization: AWS4-HMAC-SHA256 Credential=user11/20160726/us/s3/aws4_request,SignedHeaders=host;x-amz-date;x-emc-namespace,Signature=e75a150daa28a2b2f7ca24f6fd0e161cb58648a25121d3108f0af5c9451b09cex-emc-namespace: ns1x-emc-rest-client: TRUEx-amz-content-sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855Content-Length: 0Host: 10.247.195.130:9021Connection: Keep-AliveUser-Agent: Apache-HttpClient/4.2.1 (java 1.5)

Resposta:

HTTP/1.1 200 OKDate: Tue, 26 Jul 2016 03:37:00 GMTServer: ViPR/1.0x-amz-request-id: 0af7c382:156123ab861:4192:896x-amz-id-2:3e2b2280876d444d6c7215091692fb43b87d6ad95b970f48911d635729a8f7ffLocation: /bucket_demo_2016072603365969263Content-Length: 0

Autenticação com o serviço do S3

Autenticação com o serviço do S3 49

Page 50: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Autenticação com o serviço do S3

50 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 51: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

CAPÍTULO 7

Acesso ao client Java

l Use SDKs para acessar o serviço do S3............................................................. 52

Acesso ao client Java 51

Page 52: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Use SDKs para acessar o serviço do S3Ao desenvolver aplicativos que se comunicam com o serviço ECS S3, há um númerode SDKs que darão suporte a atividades de desenvolvimento.

A Comunidade EMC apresenta informações em vários clients que estão disponíveis eorientação sobre seu uso: Comunidade ECS: Recursos para desenvolvedor.

Os tópicos a seguir descrevem o uso do SDK Amazon S3 e o uso do SDK EMC ECSJava.

l Usando o SDK do Java Amazon na página 52

l SDK Java client para ECS na página 54

Obs.

Se quiser utilizar as extensões de API do ECS (consulte Extensões S3 na página 22), o suporte a essas extensões é oferecido no SDK EMC ECS Java. Se você não precisar de suporte para as extensões do ECS, ou se tiver aplicativos existentes que as usam, será possível usar o SDK Amazon Java.

Obs.

A compatibilidade do ECS SDK Java com a extensão de pesquisa de metadados édescrita em Usando a pesquisa de metadados do ECS Java SDK na página 39.

Usando o SDK do Java AmazonVocê pode acessar o armazenamento em object do ECS usando o SDK Java S3.

De modo padrão, o objeto client do AmazonS3Client é codificado para trabalhardiretamente em amazon.com. Esta seção mostra como configurar o AmazonS3Clientpara trabalhar com o ECS.

Para criar uma instância do objeto do AmazonS3Client, você precisa passarcredenciais a ele. Isso é feito criando um objeto AWSCredentials e transferindo a ele achave de acesso AWS (seu nome de usuário do ECS) e sua chave secreta gerada parao ECS.

O trecho do código a seguir mostra como configurar isso.

AmazonS3Client client = new AmazonS3Client(newBasicAWSCredentials(uid, secret));

Por padrão o client Amazon tentará o contato com WebServices Amazon. Parasobrepor esse comportamento e entrar em contato com o ECS, é necessárioconfigurar um endpoint específico.

Você pode definir o ponto periférico usando o método setEndpoint. O protocoloespecificado no ponto periférico determina se o client deve ser direcionado à portaHTTP (9020) ou à porta HTTPS (9021).

Acesso ao client Java

52 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 53: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Obs.

Se você pretende usar a porta HTTPS, o JDK de seu aplicativo deve ser configuradopara validar o certificado do ECS com sucesso; caso contrário, o client apresentaráerros de verificação SSL e falha de conexão.

No seguinte trecho, o client está sendo usado para acessar o ECS por HTTP:

AmazonS3Client client = new AmazonS3Client(new BasicAWSCredentials(uid, secret));client.setEndpoint("http://ecs1.emc.com:9020");

Ao usar o endereçamento em estilo de caminho (ecs1.emc.com/mybucket), seránecessário definir a opção setPathStyleAccess como segue:

S3ClientOptions options = new S3ClientOptions();options.setPathStyleAccess(true);

AmazonS3Client client = new AmazonS3Client(new BasicAWSCredentials(uid, secret));client.setEndpoint("http://ecs1.emc.com:9020");client.setS3ClientOptions(options);

O código a seguir mostra como listar objetos em um bucket.

ObjectListing objects = client.listObjects("mybucket");for (S3ObjectSummary summary : objects.getObjectSummaries()) { System.out.println(summary.getKey()+ " "+summary.getOwner());}

A operação CreateBucket difere de outras operações já que ela espera que uma regiãoseja especificada. No S3 isso indicaria o datacenter no qual o bucket deveria sercriado. No entanto, o ECS não dá suporte a regiões. Por esse motivo, ao fazer achamada da operação CreateBucket, especificamos a região padrão, que interrompe oAWS de fazer download do arquivo de configuração da região do Amazon CloudFront.

client.createBucket("mybucket", "Standard");

O exemplo completo para se comunicar com o serviço de dados do ECS S3, criar umbucket e manipular um objeto é apresentado a seguir:

public class Test { public static String uid = "root"; public static String secret = "KHBkaH0Xd7YKF43ZPFbWMBT9OP0vIcFAMkD/9dwj"; public static String viprDataNode = "http://ecs.yourco.com:9020";

public static String bucketName = "myBucket"; public static File objectFile = new File("/photos/cat1.jpg");

public static void main(String[] args) throws Exception {

AmazonS3Client client = new AmazonS3Client(new BasicAWSCredentials(uid, secret));

Acesso ao client Java

Usando o SDK do Java Amazon 53

Page 54: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

S3ClientOptions options = new S3ClientOptions(); options.setPathStyleAccess(true);

AmazonS3Client client = new AmazonS3Client(credentials); client.setEndpoint(viprDataNode); client.setS3ClientOptions(options);

client.createBucket(bucketName, "Standard"); listObjects(client);

client.putObject(bucketName, objectFile.getName(), objectFile); listObjects(client);

client.copyObject(bucketName,objectFile.getName(),bucketName, "copy-" + objectFile.getName()); listObjects(client); }

public static void listObjects(AmazonS3Client client) { ObjectListing objects = client.listObjects(bucketName); for (S3ObjectSummary summary : objects.getObjectSummaries()) { System.out.println(summary.getKey()+ " "+summary.getOwner()); } }}

SDK Java client para ECSO SDK Java ECS baseia-se no SDK Java Amazon S3 e dá suporte a extensões de APIdo ECS.

Um exemplo de uso do ViPRS3client é mostrado abaixo.

package com.emc.ecs.sample;

import com.amazonaws.util.StringInputStream;import com.emc.vipr.services.s3.ViPRS3Client;

public class BucketCreate {

private ViPRS3Client s3;

public BucketCreate() {

URI endpoint = new URI(“http://ecs.yourco.com:9020”); String accessKey = “[email protected]”; String secretKey = “pcQQ20rDI2DHZOIWNkAug3wK4XJP9sQnZqbQJev3”; BasicAWSCredentials creds = new BasicAWSCredentials(accessKey, secretKey); ViPRS3Client client = new ViPRS3Client(endpoint, creds);

}

public static void main(String[] args) throws Exception { BucketCreate instance = new BucketCreate(); instance.runSample(); } public void runSample() {

Acesso ao client Java

54 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 55: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

String bucketName="mybucket"; String key1 = "test1.txt"; String content = "Hello World!"; try { s3.createBucket(bucketName); s3.putObject(bucketName, key1, new StringInputStream(content), null); } catch (Exception e) { } }}

Acesso ao client Java

SDK Java client para ECS 55

Page 56: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Acesso ao client Java

56 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 57: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

PARTE 2

OpenStack Swift

Capítulo 8, "Introdução ao suporte a OpenStack Swift do ECS"

Capítulo 9, "Recursos compatíveis do Swift"

Capítulo 10, "Extensões Swift"

Capítulo 11, "Autenticação"

Capítulo 12, "Autorização"

OpenStack Swift 57

Page 58: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

OpenStack Swift

58 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 59: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

CAPÍTULO 8

Introdução ao suporte a OpenStack Swift doECS

l Suporte à API do OpenStack Swift no ECS........................................................60

Introdução ao suporte a OpenStack Swift do ECS 59

Page 60: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Suporte à API do OpenStack Swift no ECSO ECS inclui suporte à API do OpenStack Swift. Esta seção descreve as operaçõescompatíveis e descreve os mecanismos de autorização e autenticação.

O OpenStack Swift Object Service é disponibilizado nas portas a seguir.

Protocolo Portas

HTTP 9024

HTTPS 9025

As seguintes seções descrevem os métodos compatíveis, as extensões do ECS e omecanismo de autenticação:

l Operações compatíveis com o OpenStack Swift na página 62

l Extensões da API do SWIFT na página 66

l Autenticação do OpenStack Swift na página 72

l Autorização de recipiente na página 80

Os exemplos que mostram o uso da API do OpenStack Swift podem ser encontradosaqui:

l Exemplos da API do OpenStack

Introdução ao suporte a OpenStack Swift do ECS

60 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 61: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

CAPÍTULO 9

Recursos compatíveis do Swift

l Operações compatíveis com o OpenStack Swift................................................62

Recursos compatíveis do Swift 61

Page 62: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Operações compatíveis com o OpenStack SwiftAs seções a seguir apresentam as solicitações da API REST OpenStack que sãocompatíveis com o ECS.

l Chamadas do OpenStack Swift compatíveis na página 62

l Chamadas do OpenStack Swift incompatíveis na página 63

Essa informação é da seção V1 API de armazenamento em object da documentação Referência da API do OpenStack.

Chamadas do OpenStack Swift compatíveisAs chamadas API REST OpenStack Swift a seguir são compatíveis com o ECS.

Tabela 4 Chamadas do OpenStack compatíveis

Método Caminho Descrição

GET v1/{account} Recupera uma lista de recipientes dearmazenamento existentes ordenados por nomes.

GET v1/{account}/{container}

Recupera uma lista de objetos armazenados norecipiente.

PUT v1/{account}/{container}

Cria um recipiente.

DELETE v1/{account}/{container}

Exclui um recipiente antigo.

POST v1/{account}/{container}

Cria ou atualiza os metadados arbitrários dorecipiente associando cabeçalhos de metadadospersonalizados com o nível de URI do recipiente.Esses cabeçalhos devem ter o formato X-Container-Meta-*.

HEAD v1/{account}/{container}

Recupera os metadados do recipiente. Atualmentenão inclui o número de objetos e os bytes usados.O usuário necessita de privilégios de administrador.

GET v1/{account}/{container}/{object}

Recupera dados do objeto.

PUT v1/{account}/{container}/{object}

Grava ou sobregrava os conteúdos e metadados deum objeto.Usado para copiar objetos existente para outroobjeto usando o cabeçalho X-Copy-From paradesignar a origem.

Para um BLO (Dynamic Large Object) ou um SLO(Static Large Object), o objeto pode ser ummanifesto, conforme descrito aqui.

DELETE v1/{account}/{container}/{object}

Remove um objeto do sistema de armazenamentopermanentemente. Em combinação com o comandoCOPY você pode usar COPY e depois DELETE paramover efetivamente um objeto.

Recursos compatíveis do Swift

62 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 63: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Tabela 4 Chamadas do OpenStack compatíveis (continuação)

Método Caminho Descrição

HEAD v1/{account}/{container}/{object}

Recupera metadados de objeto e outros cabeçalhosde HTTP padrão.

POST v1/{account}/{container}/{object}

Define e sobregrava metadados arbitrários deobjetos. Esses metadados devem ter o formato X-Objeto-Meta-*. X-Delete-At ou X-Delete-After paraobjetos em expiração também pode ser atribuído poressa operação. Mas outros cabeçalhos como o tipode conteúdo não podem ser alterados por essaoperação.

Chamadas do OpenStack Swift incompatíveisAs chamadas API REST OpenStack Swift a seguir não são compatíveis com o ECS.

Tabela 5 Chamadas do OpenStack Swift incompatíveis

Método Caminho Descrição

HEAD v1/{account} Recupera os metadados da conta, por exemplo, onúmero de recipientes, o total de bytes armazenadosno armazenamento de objetos do OpenStack para aconta/o locatário.

POST v1/{account} Cria ou atualiza os metadados de uma contaassociando seus cabeçalhos de metadadospersonalizados com o nível de URI da conta. Essescabeçalhos devem ter o formato X-Account-Meta-*.

COPY v1/{account}/{container}/{object}

A cópia é compatível usando PUT v1/{account}/{container}/{object} com o cabeçalho X-Copy-From.

Recursos compatíveis do Swift

Operações compatíveis com o OpenStack Swift 63

Page 64: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Recursos compatíveis do Swift

64 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 65: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

CAPÍTULO 10

Extensões Swift

l Extensões da API do SWIFT...............................................................................66l Atualizando um intervalo de bytes em um objeto............................................... 66l Sobregravação de parte de um objeto................................................................67l Acrescentando dados a um objeto......................................................................68l Lendo vários intervalos de byte em um objeto....................................................69

Extensões Swift 65

Page 66: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Extensões da API do SWIFT

Várias extensões das APIs de objeto são compatíveis.

Atualizando um intervalo de bytes em um objetoUm exemplo do uso de extensões da API do ECS para atualizar um intervalo de bytesde um objeto é fornecido abaixo.

Primeiro, faça uma primeira solicitação GET no objeto nomeado object1 encontrado em bucket1 para analisar o objeto. object1 tem o valor The quick brown fox jumps over the lazy dog.

GET /bucket1/object1 HTTP/1.1Date: Mon, 17 Jun 2013 20:04:40 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:9qxKiHt2H7upUDPF86dvGp8VdvI=Accept-Encoding: gzip, deflate, compress

HTTP/1.1 200 OKDate: Mon, 17 Jun 2013 20:04:40 GMTContent-Type: application/octet-streamLast-Modified: Mon, 17 Jun 2013 20:04:28 GMTETag: 6Content-Type: application/jsonContent-Length: 43

The quick brown fox jumps over the lazy dog.

Agora você deseja atualizar um intervalo de bytes específico do objeto. Para fazerisso, o cabeçalho Range na solicitação de dados de objeto deve incluir o deslocamentodo início e do fim do objeto que deseja atualizar. O formato é: Range:bytes=<startOffset>-<endOffset>No exemplo a seguir, a solicitação PUT inclui o cabeçalho Range com o valorbytes=10-14 que indica que os bytes 10,11,12,13,14 devem ser substituídos pelo valorenviado na solicitação. Aqui, o novo valor green está sendo enviado.

PUT /bucket1/object1 HTTP/1.1Content-Length: 5Range: bytes=10-14ACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 17 Jun 2013 20:15:16 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:xHJcAYAEQansKLaF+/4PdLBHyaM=Accept-Encoding: gzip, deflate, compress

green

HTTP/1.1 204 No ContentETag: 10x-amz-id-2: object1x-amz-request-id: 027f037c-29ea-4670-8670-de82d0e9f52a

Extensões Swift

66 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 67: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Content-Length: 0Date: Mon, 17 Jun 2013 20:15:16 GMT

Ao ler o objeto novamente, o novo valor agora será The quick green fox jumpsover the lazy dog. (A palavra brown foi substituída por green.) Você atualizouum intervalo específico de bytes desse objeto.

GET /bucket1/object1 HTTP/1.1Cookie: JSESSIONID=wdit99359t8rnvipinz4tbtuACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 17 Jun 2013 20:16:00 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:OGVN4z8NV5vnSAilQTdpv/fcQzU=Accept-Encoding: gzip, deflate, compress HTTP/1.1 200 OKDate: Mon, 17 Jun 2013 20:16:00 GMTContent-Type: application/octet-streamLast-Modified: Mon, 17 Jun 2013 20:15:16 GMTETag: 10Content-Type: application/jsonContent-Length: 43 The quick green fox jumps over the lazy dog.

Sobregravação de parte de um objetoUm exemplo do uso das extensões da API do ECS para sobregravar dados a um objetoé fornecido abaixo.

Você pode sobregravar parte de um objeto oferecendo apenas o deslocamento deinício na solicitação de dados. Os dados na solicitação serão gravados com início nodeslocamento fornecido. O formato é: Range: <startingOffset>-Por exemplo, para gravar os dados brown cat iniciando no deslocamento 10, vocêemitiria essa solicitação PUT:

PUT /bucket1/object1 HTTP/1.1Content-Length: 9Range: bytes=10-ACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 17 Jun 2013 20:51:41 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:uwPjDAgmazCP5lu77Zvbo+CiT4Q=Accept-Encoding: gzip, deflate, compress brown cat HTTP/1.1 204 No ContentETag: 25x-amz-id-2: object1x-amz-request-id: 65be45c2-0ee8-448a-a5a0-fff82573aa3bContent-Length: 0Date: Mon, 17 Jun 2013 20:51:41 GMT

Extensões Swift

Sobregravação de parte de um objeto 67

Page 68: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Ao recuperar o objeto, você pode encontrar o valor final The quick brown catjumps over the lazy dog and cat. (green fox foi substituído por browncat). Você sobregravou parte dos dados nesse objeto no deslocamento inicialfornecido.

GET /bucket1/object1 HTTP/1.1Date: Mon, 17 Jun 2013 20:51:55 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:/UQpdxNqZtyDkzGbK169GzhZmt4=Accept-Encoding: gzip, deflate, compress HTTP/1.1 200 OKDate: Mon, 17 Jun 2013 20:51:55 GMTContent-Type: application/octet-streamLast-Modified: Mon, 17 Jun 2013 20:51:41 GMTETag: 25Content-Type: application/jsonContent-Length: 51 The quick brown cat jumps over the lazy dog and cat.

Acrescentando dados a um objetoUm exemplo do uso das extensões da API do ECS para acrescentar dados a um objetoé fornecido abaixo.

Pode haver os casos em que é necessário acrescentar a um objeto, mas determinar odeslocamento exato de bytes não é eficiente ou útil. Para este cenário, o ECS fornecea capacidade de acrescentar atomicamente os dados ao objeto sem especificar umdeslocamento (o deslocamento correto é devolvido na resposta).

Um cabeçalho Range com o valor especial bytes=-1- pode ser usado paraacrescentar dados a um objeto. Dessa forma, o objeto pode ser estendido sem saber otamanho do objeto existente.

O formato é: Range: bytes=-1-

A seguir, há uma amostra de solicitação que demonstra o acréscimo a um objetoexistente usando um valor Range de bytes=-1-. Aqui, o valor and cat é enviado nasolicitação.

PUT /bucket1/object1 HTTP/1.1Content-Length: 8Range: bytes=-1-ACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 17 Jun 2013 20:46:01 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:/sqOFL65riEBSWLg6t8hL0DFW4c=Accept-Encoding: gzip, deflate, compress and cat HTTP/1.1 204 No ContentETag: 24x-amz-id-2: object1x-amz-request-id: 087ac237-6ff5-43e3-b587-0c8fe5c08732Content-Length: 0Date: Mon, 17 Jun 2013 20:46:01 GMT

Extensões Swift

68 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 69: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Ao recuperar o objeto novamente, você pode encontrar o valor total The quickgreen fox jumps over the lazy dog and cat. Você acrescentou dadospara esse objeto.

GET /bucket1/object1 HTTP/1.1ACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 17 Jun 2013 20:46:56 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:D8FSE8JoLl0MTQcFmd4nG1gMDTg=Accept-Encoding: gzip, deflate, compress HTTP/1.1 200 OKDate: Mon, 17 Jun 2013 20:46:56 GMTContent-Type: application/octet-streamLast-Modified: Mon, 17 Jun 2013 20:46:01 GMTETag: 24Content-Type: application/jsonContent-Length: 51 The quick green fox jumps over the lazy dog and cat.

Lendo vários intervalos de byte em um objetoUm exemplo do uso das extensões da API do ECS para ler vários intervalos de bytesem um objeto é apresentado abaixo.

Para ler dois intervalos de bytes específicos dentro do objeto nomeado comoobject1, você emitiria a seguinte solicitação GET para Range:bytes==4-8,41-44. A resposta de leitura seria para as palavras quick e lazy.

Obs.

O API Amazon S3 só é compatível com um intervalo ao usar o cabeçalho HTTP Rangepara leitura; ECS dá suporte a vários intervalos de byte.

GET /bucket1/object1 HTTP/1.1Date: Mon, 17 Jun 2013 20:51:55 -0000x-emc-namespace: emcRange: bytes==4-8,41-44Content-Type: application/octet-streamAuthorization: AWS wuser1:/UQpdxNqZtyDkzGbK169GzhZmt4=Accept-Encoding: gzip, deflate, compress HTTP/1.1 206 Partial ContentDate: Mon, 17 Jun 2013 20:51:55 GMTContent-Type: multipart/byteranges;boundary=bound04acf7f0ae3cccLast-Modified: Mon, 17 Jun 2013 20:51:41 GMTContent-Length: 230 --bound04acf7f0ae3cccContent-Type: application/octet-streamContent-Range: bytes 4-8/50quick--bound04acf7f0ae3cccContent-Type: application/octet-streamContent-Range: bytes 41-44/50lazy--bound04acf7f0ae3ccc--

Extensões Swift

Lendo vários intervalos de byte em um objeto 69

Page 70: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Extensões Swift

70 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 71: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

CAPÍTULO 11

Autenticação

l Autenticação do OpenStack Swift......................................................................72l Autenticação do OpenStack Versão 1 ................................................................ 73l Autenticação do OpenStack Versão 2................................................................ 75l Autenticação usando a integração do ECS Keystone V3.....................................77

Autenticação 71

Page 72: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Autenticação do OpenStack Swift

O ECS dá suporte a versões diferentes do protocolo de autenticação do OpenStackSwift.

v1

O ECS permite aos usuários de objeto a autenticação com o serviço do ECS Swifte a obtenção de um token de autenticação que pode ser usado ao realizarchamadas API subsequentes para o serviço do ECS Swift. Consulte Autenticaçãodo OpenStack Versão 1 na página 73.

v2

O ECS permite aos usuários de objeto a autenticação com o serviço do ECS Swift para obter um token restrito, ou seja, um token associado a um tenant(equivalente a um projeto), que pode ser usado ao realizar chamadas de API subsequentes para o serviço do ECS Swift. Consulte Autenticação do OpenStack Versão 2 na página 75.

v3

O ECS valida usuários do Keystone V3 que apresentam tokens restritos a umprojeto do Keystone. Consulte Autenticação usando a integração do ECSKeystone V3 na página 77.

Para protocolos v1 e v2, o acesso à área de armazenamento de objeto do ECS usandoo protocolo do OpenStack Swift requer uma conta de usuário de objeto do ECS e umasenha Swift.

Para v3, os usuários são criados e atribuídos a projetos e funções fora do ECS usandoum serviço do Keystone V3. O ECS não realiza autenticação, mas valida o token deautenticação com o serviço do Keystone V3.

A atribuição de credenciais do Swift a usuários de objeto do ECS está descrita em Criar usuários Swift no Portal do ECS na página 72.

Criar usuários Swift no Portal do ECSOs usuários de objeto do ECS podem receber credenciais para acessar a área dearmazenamento de objeto do ECS usando o protocolo do OpenStack Swift.

Antes de você começar

Você precisará ser um Administrador de sistema do ECS.

Você pode encontrar mais informações sobre como adicionar usuários de objeto do ECS em Guia do administrador: Gerenciar usuários e funções.

Procedimento

1. No Portal do ECS, selecione Manage > Users.

A página User Management é exibida.

2. Na página User Management, selecione New Object User ou adicione umasenha Swift a um usuário existente, selecionando a ação Edit de um usuáriolistado na tabela de usuários.

Se você estiver criando um novo usuário, será necessário informar um nomepara o usuário e selecionar o namespace ao qual o usuário pertence.

Autenticação

72 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 73: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

3. Na área Swift, campo Groups, informe um grupo ao qual usuário pertencerá.

A área Swift está destacada na figura abaixo.

Se você especificar o grupo "admin", os usuários poderão automaticamenteexecutar todas as operações de de contêiner. Se você especificar um grupodiferente, esse grupo deve receber permissões no contêiner. Consulte Autorização de recipiente na página 80 para obter mais informações sobre aautorização de contêiner.

4. Digite uma senha para o usuário do Swift.

5. Selecione Set Password & Groups.

Autenticação do OpenStack Versão 1Com este procedimento, você pode autenticar-se no serviço ECS OpenStack Swiftusando a V1 do protocolo de autenticação.

Procedimento

1. Adquira um ID exclusivo e uma senha para um usuário de objeto do ECS.

Você pode fazer isso no Portal do ECS (consulte Criar usuários Swift no Portaldo ECS na página 72) ou você pode entrar em contato com a API REST do ECSpara gerar uma senha.

Solicitação:

PUT /object/user-password/[email protected] <user_password_create> <password>myPassword</password> <namespace>EMC_NAMESPACE</namespace> </user_password_create>

Autenticação

Autenticação do OpenStack Versão 1 73

Page 74: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Resposta:

HTTP 200

2. Ligue para a API REST de autenticação do OpenStack como mostrado abaixo.Use a porta 9024 para HTTP, ou a porta 9025 para HTTPS.

Solicitação:

GET /auth/v1.0 X-Auth-User: [email protected] X-Auth-Key: myPassword

Resposta:

HTTP/1.1 204 No Content Date: Mon, 12 Nov 2010 15:32:21 GMT Server: Apache

X-Storage-Url: https://{hostname}/v1/account X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb Content-Length: 0

Resultado

Se o ID exclusivo e senha forem validados pelo ECS, a URL e o token dearmazenamento serão exibidos no cabeçalho da resposta. As solicitações adicionaissão autenticadas ao incluir esse token. A URL de armazenamento apresenta o nome dohost e o endereço do recurso. Você pode acessar recipientes e objetos com o seguintecabeçalho X-Storage-Url:

X-Storage-Url: https://{hostname}/v1/{account}/{container}/{object}

O token gerado expira 24 horas após a criação. Se você repetir a solicitação deautenticação no período de 24 horas usando o mesmo ID exclusivo e senha, oOpenStack devolverá o mesmo token. Uma vez que o período de expiração de 24horas expira, o OpenStack devolverá um novo token.

No exemplo de autenticação simples a seguir, a primeira ligação de REST devolve X-Auth-Token. A segunda chamada REST usa o X-Auth-Token para executar umasolicitação GET em uma conta.

$ curl -i -H "X-Storage-User: [email protected]" -H "X-Storage-Pass: 1fO9X3xyrVhfcokqy3U1UyTY029gha5T+k+vjLqS" http://ecs.yourco.com:9024/auth/v1.0

HTTP/1.1 204 No Content X-Storage-Url: http://ecs.yourco.com:9024/v1/s3

Autenticação

74 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 75: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

X-Auth-Token: ECS_8cf4a4e943f94711aad1c91a08e98435 Server: Jetty(7.6.4.v20120524)

$ curl -v -X GET -s -H "X-Auth-Token: 8cf4a4e943f94711aad1c91a08e98435" http://ecs.yourco.com:9024/v1/s3

* About to connect() to ecs.yourco.com port 9024 (#0) * Trying 203.0.113.10... * Adding handle: conn: 0x7f9218808c00 * Adding handle: send: 0 * Adding handle: recv: 0 * Curl_addHandleToPipeline: length: 1 * - Conn 0 (0x7f9218808c00) send_pipe: 1, recv_pipe: 0 * Connected to ecs.yourco.com (203.0.113.10) port 9024 (#0)

> GET /v1/s3 HTTP/1.1 > User-Agent: curl/7.31.0 > Host: ecs.yourco.com:9024 > Accept: */* > X-Auth-Token: 8cf4a4e943f94711aad1c91a08e98435 > < HTTP/1.1 204 No Content < Date: Mon, 16 Sep 2013 19:31:45 GMT < Content-Type: text/plain * Server Jetty(7.6.4.v20120524) is not blacklisted < Server: Jetty(7.6.4.v20120524) <

* Connection #0 to host ecs.yourco.com left intact

Autenticação do OpenStack Versão 2ECS inclui suporte limitado a autenticação do OpenStack Versão 2 (Keystone).

Antes de você começar

O ECS fornece uma implementação do serviço de identidade do OpenStack Swift V2,que permite a um aplicativo Swift que usa autenticação V2 autenticar usuários. Osusuários devem ser os usuários de objeto do ECS que receberam credenciais doOpenStack Swift. Essas credenciais permitem que eles acessem a área dearmazenamento de objeto do ECS usando o protocolo Swift.

Apenas tokens restritos a um tenant/namespace do ECS (equivalente a um projetoSwift) podem ser usados para fazer chamadas de API do Swift. Um token não restritopode ser obtido e utilizado para acessar o serviço de identidade para recuperar aidentidade do tenant antes de obter um token restrito a um tenant e a um endpoint deserviço.

O token restrito e o endpoint de serviço podem ser usados para autenticação com oECS, conforme a seção anterior que descreve a autenticação do V1.

Os dois artigos listados a seguir apresentam informações contextuais importantes.

l Workflow do keystone do OpenStack e escopo de token

l Autentique para a API do administrador

Autenticação

Autenticação do OpenStack Versão 2 75

Page 76: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Procedimento

1. Para recuperar um token não restrito do ECS, você pode usar a API /v2.0/tokens e fornecer um nome de usuário e uma senha para o serviço do ECSSwift.

curl -v -X POST -H 'ACCEPT: application/json' -H "Content-Type: application/json" -d '{"auth": {"passwordCredentials" : {"username" : "swift_user", "password" : "123"}}}' http://203.0.113.10:9024/v2.0/tokens

A resposta é como a seguir. O token não restrito é precedido por id e tokensgerados pelo ECS e precedido pelo prefixo "ecs_".

{"access": {"token": {"id":"ecs_d668b72a011c4edf960324ab2e87438b","expires":"1376633127950"l},"user": {"name": "sysadmin", "roles":[ ], "role_links":[ ] },"serviceCatalog":[ ] }} , }

2. Recupere as informações do locatário associadas ao token não restringido.

curl -v http://203.0.113.10:9024/v2.0/tenants -H 'X-Auth-Token: d668b72a011c4edf960324ab2e87438b'

A resposta é como a seguir.

{"tenants_links":[], "tenants":[{"description":"s3","enabled":true, "name": "s3"}]}

3. Recupere o token restringido juntamente com o storageUrl.

curl -v -X POST -H 'ACCEPT: application/json' -H "Content-Type: application/json" -d '{"auth": {"tenantName" : "s3", "token":{"id" : ecs_d668b72a011c4edf960324ab2e87438b"}}}' http://203.0.113.10:9024/v2.0/tokens

Um exemplo de resposta é mostrado a seguir. O token restringido é precedidopelo id.

{"access":{"token":{"id":"ecs_baf0709e30ed4b138c5db6767ba76a4e","expires":"1376633255485","tenant":{"description":"s3","enabled":true,"name":"s3"}},"user":{"name":"swift_admin","roles":[{"name":"member"},{"name":"admin"}],"role_links":[]},

Autenticação

76 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 77: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

"serviceCatalog":[{"type":"object-store","name":"Swift","endpoints_links":[],"endpoint":[{"internalURL":

"http://203.0.113.10:9024/v1/s3","publicURL":"http://203.0.113.10:9024/v1/s3"}]}]}}

4. Use a URL do token restringido e do ponto periférico para autenticação doSwift. A etapa é a mesma que no V1 do OpenStack.

curl -v -H "X-Auth-Token: baf0709e30ed4b138c5db6767ba76a4e"http://203.0.113.10:9024/v1/s3/{container}/{object}

Autenticação usando a integração do ECS Keystone V3O ECS dá suporte ao Keystone V3 por meio da validação dos tokens de autenticaçãofornecidos pelos usuários do OpenStack Swift. Para o Keystone V3, os usuários sãocriados fora do ECS usando um serviço de Keystone V3. O ECS não realizaautenticação, mas valida o token de autenticação com o serviço do Keystone V3.

Obs.

No domínio do Keystone, um projeto pode ser considerado como um equivalente a umtenant/namespace do ECS. É possível considerar o namespace do ECS como umtenant.

O Keystone V3 permite que os usuários sejam atribuídos a funções e que as ações queeles estão autorizados a realizar sejam baseadas em sua lista de membros de função.No entanto, o suporte do ECS ao Keystone V3 atualmente não dá suporte às políticasdo Keystone, então os usuários devem estar na função/grupo "admin" para realizaroperações relacionadas a contêiner.

Os tokens de autenticação devem ser restritos a um projeto; tokens não restritos nãosão permitidos com o ECS. As operações relacionadas a tokens não restritos, comoobter uma lista de projetos (equivalentes a um tenant no ECS) e serviços, devem serrealizadas por usuários em relação ao serviço do Keystone diretamente, e os usuáriosdevem então obter um token restrito do serviço do Keystone que pode ser validadopelo ECS e, se for válido, usado para autenticar com o ECS.

Para ativar a validação do ECS, um provedor de autenticação deve ter sidoconfigurado no ECS para que, quando um token restrito a um projeto for recebido deum usuário, o ECS poderá validá-lo em relação ao provedor de autenticação doKeystone V3. Além disso, deve ser criado um namespace do ECS correspondente aoprojeto do Keystone. Mais informações são apresentadas em Configurar o ECS paraautenticar usuários do keystone na página 78.

Verificações de autorizaçãoO ECS usa as informações especificadas pelos tokens do Keystone para realizar asdecisões de autorização. As verificações de autorização são as seguintes:

1. O ECS verifica se o projeto ao qual o token está restrito corresponde ao projeto naURL.

2. Se a operação for uma operação de objeto, o ECS avalia a ACL associada ao objetopara determinar se a operação será permitida.

3. Se a operação for uma operação de contêiner, o ECS avaliará a operação solicitadaem relação às funções do usuário no projeto, da seguinte maneira:

Autenticação

Autenticação usando a integração do ECS Keystone V3 77

Page 78: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

a. Se a operação for listar contêineres e o usuário tiver uma função de admin,permitir

b. Se a operação for criar contêineres e o usuário tiver uma função de admin,permitir

c. Se a operação for atualizar metadados do contêiner e o usuário tiver umafunção de admin, permitir

d. Se a operação for ler metadados do contêiner e o usuário tiver função deadmin, permitir

e. Se a operação for excluir contêineres e usuário tiver uma função de admin,permitir

DomíniosNo Keystone V3, todos os usuários pertencem a um domínio e esse domínio pode tervários projetos. Os usuários trêm acesso aos projetos com base em suas funções. Seum usuário não for atribuído a um domínio, o domínio será padrão.

Objetos e contêineres criados com os usuários do Swift Keystone V3 pertencerão a<user>@<domain.com>. Se um usuário não tiver sido atribuído a um domínio, o nomede usuário atribuído a contêineres e objetos será <user>@default.

Configurar o ECS para autenticar usuários do keystonePara autenticar usuários do Keystone, você deve adicionar um provedor deautenticação ao ECS e criar um namespace ao qual os usuários do Swift pertencerão.

Antes de você começar

Os seguintes pré-requisitos se aplicam:

l Você precisará das credenciais para uma conta de Administrador de sistema doECS.

l Você precisará obter a identidade do projeto do Keystone ao qual os usuários doSwift que acessarão o ECS pertencem.

Procedimento

1. Faça log-in no ECS como Administrador do sistema.

2. Crie um provedor de autenticação que especifica o endpoint do serviço doKeystone V3 e as credenciais de uma conta de administrador que pode serusada para validar os tokens.

Consulte Guia do administrador: Configurar um provedor de autenticação.

3. Crie um namespace do ECS que tenha o mesmo ID que o projeto/conta doKeystone ao qual pertencem os usuários que queiram se autenticar.

Você precisará obter o ID do projeto do Keystone.

Resultado

Depois que o namespace é criado, os usuários que pertencem ao projeto do Keystonecorrespondente e que têm um token que está restrito a esse projeto, podemautenticar com o ECS (por meio do ECS comunicação com o provedor deautenticação de Keystone) e usar a API do Swift para acessar a área dearmazenamento de objeto do ECS.

Autenticação

78 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 79: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

CAPÍTULO 12

Autorização

l Autorização de recipiente.................................................................................. 80

Autorização 79

Page 80: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Autorização de recipienteA autorização do OpenStack Swift tem apenas recipientes como destino.

O Swift atualmente dá suporte a dois tipos de autorização:

l Autorização do estilo referente

l Autorização do estilo em grupo.

O ECS dá suporte apenas a autorização com base em grupo.

Os usuários administradores podem executar todas as operações na conta. Usuáriosnão administradores só podem realizar operações por recipiente com base nas listas decontrole de acesso X-Container-Read e X-Container-Write do recipiente. As seguintesoperações podem ser concedidas a usuários não administradores:

O administrador atribui acesso de leitura ao recipienteO usuário "admin" pode atribuir permissões de leitura a um grupo usando:

curl -X PUT -v -H 'X-Container-Read: {GROUP LIST}' -H 'X-Auth-Token: {TOKEN}' http://127.0.0.1:8080/v1/{account}/{container1}"

Este comando permite que os usuários pertencentes a GROUP LIST tenham direitosde acesso de leitura no contêiner1. Por exemplo, atribuir permissões de leitura para ogrupo "Member":

curl –X PUT -v –H 'X-Container-Read: Member' –H 'X-Auth-Token: {ADMIN_TOKEN}' http://127.0.0.1:8080/v1/{account}/{container1}

Depois que a permissão de leitura é dada, os usuários que pertencem ao(s) grupo(s)de destino podem executar as operações abaixo:

l HEAD container - Recupera os metadados do recipiente. Permitido somente se ousuário é atribuído ao grupo que tem privilégios de administrador de locatário.

l GET container - Lista objetos em um recipiente

l GET objects with container - Lê o conteúdo do objeto dentro do recipiente

O administrador concede acesso de gravação ao recipienteO usuário "admin" pode atribuir permissões de leitura a um grupo usando:

curl -XPUT -v -H 'X-Container-Write: {GROUP LIST}' -H 'X-Auth-Token: {TOKEN}' http://127.0.0.1:8080/v1/{account}/{container1}"

Autorização

80 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 81: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Este comando permite que os usuários pertencentes a GROUP LIST tenham direitosde acesso de gravação no contêiner1. Por exemplo, para atribuir permissões degravação ao grupo "Member":

curl –X PUT -v –H 'X-Container-Write: Member' –H 'X-Auth-Token:{ADMIN_TOKEN}'http://127.0.0.1:8080/v1/{account}/{container1}

Os usuários no grupo GROUP LIST recebem a permissão de gravação. Uma vez que apermissão de gravação é concedida, os usuários que pertencem ao(s) grupo(s) dedestino podem executar estas operações:

l POST container - Definir os metadados. Comece com o prefixo "X-Container-Meta".

l PUT objects within container - Gravar/sobrepor objetos com o recipiente.

Informações adicionais sobre a autorização podem ser encontradas em: Operações de recipientes.

Autorização

Autorização de recipiente 81

Page 82: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Autorização

82 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 83: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

PARTE 3

EMC Atmos

Capítulo 13, "Introdução ao suporte a EMC Atmos do ECS"

Capítulo 14, "Recursos compatíveis do Atmos"

Capítulo 15, "Extensões da API do Atmos"

EMC Atmos 83

Page 84: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

EMC Atmos

84 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 85: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

CAPÍTULO 13

Introdução ao suporte a EMC Atmos do ECS

l Suporte à API do EMC Atmos no ECS................................................................86

Introdução ao suporte a EMC Atmos do ECS 85

Page 86: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Suporte à API do EMC Atmos no ECSO ECS dá suporte a um subconjunto de APIs do EMC Atmos. Esta seção lista asoperações compatíveis e as extensões do ECS.

O EMC Atmos Object Service é disponibilizado nas portas a seguir.

Protocolo Portas

HTTP 9022

HTTPS 9023

Mais informações sobre as operações compatíveis podem ser encontradas no Guia doprogramador Atmos que está disponível no EMC Supportzone.

l Guia do Programador do Atmos

A compatibilidade do formato do cabo é fornecida para todas as operaçõescompatíveis. Portanto, as operações descritas no Guia do Programador do Atmos seaplicam às operações API expostas pelo ECS.

O Guia do programador Atmos também apresenta informações sobre a autenticaçãocom a API do Atmos e fornece exemplos abrangentes para muitos dos recursoscompatíveis.

Introdução ao suporte a EMC Atmos do ECS

86 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 87: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

CAPÍTULO 14

Recursos compatíveis do Atmos

l Chamadas API REST compatíveis do EMC Atmos..............................................88l Chamadas API REST incompatíveis do EMC Atmos........................................... 89l Suporte a sub-tenants nas chamadas API REST do EMC Atmos........................90

Recursos compatíveis do Atmos 87

Page 88: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Chamadas API REST compatíveis do EMC AtmosO ECS dá suporte a um subconjunto de APIs do EMC Atmos.

As seguintes chamadas API REST do Atmos são compatíveis. Chamadas para asinterfaces de objetos e de namespace são exibidas.

Tabela 6 Chamadas API REST do Atmos compatíveis

Método Caminho Descrição

Operações de serviços

GET /rest/service Obter informações sobreo sistema

Operações de objeto

POST /rest/objects/rest/namespace/<path>

Crie um objeto

(Consulte as notas aseguir)

DELETE /rest/objects/<ObjectID>/rest/namespace/<path>

Excluir objeto

PUT /rest/objects/<ObjectID>/rest/namespace/<path>

Atualizar objeto

(Consulte as notas aseguir)

GET /rest/objects/<ObjectID>/rest/namespace/<path>

Ler o objeto (ou a lista dediretório)

POST /rest/namespace/<path>?rename Renomear um objeto

Operações do MetaData

GET /rest/objects/<ObjectID>?metadata/user/rest/namespace/<path>?metadata/user

Obter os metadados dousuário para um objeto

POST /rest/objects/<ObjectID>?metadata/user/rest/namespace/<path>?metadata/user

Definir os metadados dousuário

DELETE /rest/objects/<objectID>?metadata/user/rest/namespace/<path>?metadata/user

Excluir metadados dousuário

GET /rest/objects/<ObjectID>?metadata/system/rest/namespace/<path>?metadata/system

Obter os metadados dosistema para um objeto

GET /rest/objects/<ObjectID>?acl/rest/namespace/<path>?acl

Obter ACL

POST /rest/objects/<ObjectID>?acl/rest/namespace/<path>?acl

Definir ACL

GET /rest/objects/<ObjectID>?metadata/tags/rest/namespace/<path>?metadata/tags

Obter tags de metadadospara um objeto

GET /rest/objects/<ObjectID>?info/rest/namespace/<path>?info

Obter informações deobjeto

Recursos compatíveis do Atmos

88 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 89: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Tabela 6 Chamadas API REST do Atmos compatíveis (continuação)

Método Caminho Descrição

head /rest/objects/<ObjectID>/rest/namespace/<path>

Obter todos osmetadados de objetos

Operações de espaço-objeto

GET /rest/objects Listar objetos

GET /rest/objects?listabletags Obter tags listáveis

Acesso anônimo

GET /rest/objects/<ObjectId>?uid=<uid>&expires=<exp>&signature=<sig>/rest/namespace/<path>?uid=<uid>&expires=<exp>&signature=<sig>

URL compartilhável

Obs.

l O cabeçalho x-emc-wschecksum é compatível em ECS.

l O upload do formato HTML não é compatível.

l GET /rest/objects não oferece suporte a diferentes tipos de resposta com x-emc-accept. Por exemplo, o text/plain não é compatível.

l A expiração e a retenção de objetos não são compatíveis.

l Leitura, gravação e exclusão de ACLs funcionam em ECS da mesma forma que emAtmos.

Marcas relacionáveis via AtmosAs marcas relacionáveis são marcas especiais definidas pelo usuário usadas para listarou filtrar objetos. Por exemplo, um aplicativo poderia permitir que um usuário finalmarcasse um grupo de imagens (objetos) com uma marca como "Vacation2016". Maistarde, o aplicativo pode responder a uma consulta de "Vacation2016" listando somenteos objetos marcados com essa marca relacionável.

No ECS Atmos, um usuário não pode excluir nem modificar as marcas relacionáveis deoutro usuário. Sob algumas condições, essa capacidade é permitida no Atmos nativo.

As marcas relacionáveis são indexadas no ECS, aumentando o desempenho e aescalabilidade da recuperação de objetos marcados.

No ECS, a EMC_TAGS marca de metadados é usado para persistir com marcasrelacionáveis. Esse nome de marca não deveria ser usado em marcas de metadadosdefinidos pelo usuário.

Chamadas API REST incompatíveis do EMC Atmos

As seguintes chamadas API REST do Atmos não são compatíveis.

Recursos compatíveis do Atmos

Chamadas API REST incompatíveis do EMC Atmos 89

Page 90: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Tabela 7 Chamadas API REST do Atmos incompatíveis

Método Caminho Descrição

Versão do objeto

POST /rest/objects/<objectID>?versions

Criar uma versão do objeto

DELETE /rest/objects/<objectID>?versions

Excluir uma versão do objeto

GET /rest/objects/<objectID>?versions

Listar versões de um objeto

PUT /rest/objects/<objectID>?versions

Restaurar versão do objeto

Acesso anônimo

POST /rest/accesstokens Criar um token de acesso

GET /rest/accesstokens/<token_id>?info

Obter detalhes do token deacesso

DELETE /rest/accesstokens/<token_id>

Excluir token de acesso

GET /rest/accesstokens Listar tokens de acesso

GET /rest/accesstokens/<token_id>

Fazer download de conteúdoanonimamente

Suporte a sub-tenants nas chamadas API REST do EMCAtmos

O ECS inclui duas chamadas API REST nativas que servem especificamente paraadicionar o suporte a sub-tenants do ECS para aplicativos do Atmos.

Essas chamadas são como a seguir:

Chamada API Exemplo

Sublocatário criar PUT Http url: /rest/subtenantCabeçalhos obrigatórios: x-emc-uid (porexemplo, [email protected] ) x-emc-signature.

O ID de sublocatário é configurado nocabeçalho “subtenantID” da resposta.

Sublocatário excluir DELETE Http url: /rest/subtenants/{subtenantID}Cabeçalhos obrigatórios: x-emc-uid (porexemplo, [email protected] ) x-emc-signature

Recursos compatíveis do Atmos

90 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 91: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Obs.

Estes IDs agora são preservados no ECS após a migração: O cabeçalho é x-emc-subtenant-id: {original_subt_id}.

Recursos compatíveis do Atmos

Suporte a sub-tenants nas chamadas API REST do EMC Atmos 91

Page 92: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Recursos compatíveis do Atmos

92 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 93: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

CAPÍTULO 15

Extensões da API do Atmos

l Extensões da API............................................................................................... 94

Extensões da API do Atmos 93

Page 94: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Extensões da APIVárias extensões das APIs de objeto são compatíveis.

As extensões e as APIs que dão suporte a elas são listadas na tabela a seguir.

Tabela 8 Extensões da API de objeto

Recurso Observações

PUT Object (range-append)

Usa o cabeçalho Range para especificar o intervalo de objetoacrescentado.

Acrescentando dados a um objeto na página 94

Acrescentando dados a um objetoUm exemplo do uso das extensões da API do ECS para acrescentar dados a um objetoé fornecido abaixo.

Pode haver os casos em que é necessário acrescentar a um objeto, mas determinar odeslocamento exato de bytes não é eficiente ou útil. Para este cenário, o ECS fornecea capacidade de acrescentar atomicamente os dados ao objeto sem especificar umdeslocamento (o deslocamento correto é devolvido na resposta).

Um cabeçalho Range com o valor especial bytes=-1- pode ser usado paraacrescentar dados a um objeto. Dessa forma, o objeto pode ser estendido sem saber otamanho do objeto existente.

O formato é: Range: bytes=-1-

A seguir, há uma amostra de solicitação que demonstra o acréscimo a um objetoexistente usando um valor Range de bytes=-1-. Aqui, o valor and cat é enviado nasolicitação.

PUT /rest/namespace/myObject HTTP/1.1Content-Length: 8Range: bytes=-1-ACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 17 Jun 2013 20:46:01 -0000x-emc-date: Mon, 17 Jun 2013 20:46:01 -0000x-emc-namespace: emcx-emc-uid: fa4e31a68d3e4929bec2f964d4cac3de/[email protected]: ZpW9KjRb5+YFdSzZjwufZUqkExc=Content-Type: application/octet-streamAccept-Encoding: gzip, deflate, compress

and cat

HTTP/1.1 200 OKx-emc-mtime: 1431626712933Date: Mon, 17 Jun 2013 20:46:01 GMTx-emc-policy: defaultx-emc-utf8: truex-emc-request-id: 0af9ed8d:14cc314a9bc:112f6:9x-emc-delta: 8x-emc-append-offset: 24

Extensões da API do Atmos

94 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 95: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Content-Length: 0Server: Jetty(7.6.4.v20120524)

A posição de compensação na qual os dados foram acrescentados é exibida nocabeçalho x-emc-append-offset.

Ao recuperar o objeto novamente, você pode encontrar o valor total The quickgreen fox jumps over the lazy dog and cat. Você acrescentou dadospara esse objeto.

Extensões da API do Atmos

Acrescentando dados a um objeto 95

Page 96: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Extensões da API do Atmos

96 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 97: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

PARTE 4

CAS

Capítulo 16, "Configurando o suporte a CAS no ECS"

CAS 97

Page 98: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

CAS

98 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 99: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

CAPÍTULO 16

Configurando o suporte a CAS no ECS

l Configurando o suporte a CAS no ECS.............................................................100l Armazenamento estático.................................................................................. 100l Conformidade....................................................................................................101l Retenção do CAS no ECS.................................................................................104l Retenção avançada para os aplicativos do CAS: retenção baseada em evento,

retenção legal e administrador mín./máx.......................................................... 107l Configurar as políticas de retenção de namespace............................................ 113l Criar e configurar um bucket para um usuário do CAS.......................................114l Configurar um usuário de objeto do CAS........................................................... 115l Configurar ACLs do bucket para o CAS.............................................................116l APIs de gerenciamento ECS que dão suporte a usuários do CAS...................... 118l Suporte à API do SDK CAS (Content-Addressed Storage, armazenamento de

conteúdo endereçável)......................................................................................119

Configurando o suporte a CAS no ECS 99

Page 100: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Configurando o suporte a CAS no ECSApresenta o suporte a CAS (Content Addressable Storage, armazenamento deconteúdo endereçável) do ECS.

O ECS CAS permite que os aplicativos client baseados no SDK do CAS armazenem,recuperem e excluam objetos do conteúdo fixos do armazenamento do ECS.

O armazenamento subjacente do ECS deve ser provisionado antes de definir sua configuração do ECS. Geralmente, o provisionamento é realizado quando um novo rack do ECS é instalado. Isso inclui a configuração de um pool de armazenamento, um VDC e um grupo de replicação. No ECS CAS, é possível usar a documentação padrão caso seja necessário criar ou editar esses objetos para dar suporte ao CAS. Consulte Guia do administrador: Configurar pools de armazenamento, VDCs e grupos de replicação.

Para pools de armazenamento, considere configurar um arquivamento estático.Consulte Armazenamento estático na página 100.

Em seguida, configure seus namespaces, usuários e buckets usando a documentaçãopadrão:

l Guia do administrador: Configurar um namespace

l Guia do administrador: Gerenciar usuários e funções

l Guia do administrador: Criar e gerenciar buckets

Este capítulo descreve como modificar sua configuração básica para dar suporte aoCAS.

Armazenamento estáticoDescreve os arquivos de armazenamento estático.

Os arquivamentos estáticos armazenam objetos que não são alterados com frequênciae não exigem o esquema padrão sólido de EC. O esquema de EC usado para umarquivamento estático é de 10 fragmentos de dados e 2 fragmentos de codificação(10/12). A eficiência é de 1,2 x.

Você pode especificar um arquivamento estático (armazenamento estático) ao criarum novo pool de armazenamento. Depois que o pool de armazenamento for criado, oesquema de EC não poderá ser alterado. Esse esquema pode dar suporte à perda deum único nó. Ele também pode dar suporte à perda de uma unidade de seis, ou de duasunidades de 12, em dois nós separados.

Requisitos de EC

Tabela 9 Requisitos comparados de arquivamento regular e estático

Caso de uso Como é habilitado Mínimo denósnecessários

Mínimo dediscosnecessários

Discosrecomendados

Eficiência daEC

Esquema deEC

Arquivamentoregular

Padrão 4 16* 32 1,33 x 12/16

Arquivamentoestático

Configurado peloadministrador dosistema

8 12* 24 1,2 x 10/12

Configurando o suporte a CAS no ECS

100 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 101: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Tabela 9 Requisitos comparados de arquivamento regular e estático (continuação)

Obs.

*Já que a configuração mínima que pode ser implementada para um appliance da sérieC é de dois appliances com 12 discos, 24 discos é o mínimo efetivo.

Configuração de pool de armazenamentoPara estabelecer um arquivamento estático no portal, selecione Cold Storage ao criarum novo pool de armazenamento. Depois que um pool de armazenamento tiver sidocriado, essa configuração não poderá ser alterada.

ConformidadeDescreve os recursos do ECS que dão suporte aos padrões do governo e do setor parao armazenamento de registros eletrônicos.

O ECS cumpre os requisitos de armazenamento dos seguintes padrões, conformecertificado pela Cohasset Associates Inc:

l Comissão de valores mobiliários e câmbio (SEC) na norma 17 C.F.R. § 240.17a-4(f)

l Comissão para a Negociação de Futuros de Commodities (CFTC) na norma 17C.F.R. § 1.31(b)-(c)

Configurando o suporte a CAS no ECS

Conformidade 101

Page 102: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

A conformidade é certificada nos appliances ECS com o software ECS versão 2.2.1 eposterior. Instalações do software ECS somente da versão 3.0 e posterior emexecução no hardware de terceiros certificado pela ECS também são certificadas.

A conformidade tem três componentes:

l Fortalecimento da plataforma: resolve vulnerabilidades de segurança comuns.

l Retenção de registro com base na política: limita a possibilidade de alterar políticasde retenção para recursos em retenção.

l Geração de relatórios de conformidade: relatórios periódicos por um agente desistema registram o status de conformidade do sistema.

Fortalecimento de plataforma e conformidadeDescreve os recursos de segurança do ECS que dão suporte aos padrões deconformidade.

Recursos de segurança da plataforma ECS:

l O acesso root a nós é desativado, isto é, não são permitidos log-ins à conta root.

l Os clientes do ECS podem acessar nós pela conta admin que é estabelecida nomomento da instalação.

l Os usuários da conta admin autorizados executam comandos em nós usandosudo.

l Há registro de auditoria completo para comandos sudo.

l O ESRS fornece a possibilidade de desligar todo o acesso remoto aos nós. NoESRS Policy Manager, defina a ação Start Remote Terminal para NeverAllow.

l Todas as portas desnecessárias, como ftpd, sshd etc. são fechadas.

l O administrador de bloqueio do ECS (log-in: emcsecurity) pode bloquear nósem um cluster. Isso significa que o acesso remoto por meio da rede por SSH(Secure Shell Protocol) está desabilitado. Em seguida, o administrador de bloqueiopode desbloquear um nó para permitir atividades de manutenção remota ou outroacesso autorizado. (Bloqueio de nó não afeta os usuários autorizados do Portal doECS ou API de gerenciamento do ECS) Consulte o Guia do administrador do ECSpara obter informações sobre bloqueio e desbloqueio de nós.

Política de conformidade e retençãoDescreve as regras aprimoradas para retenção de registro em um sistema ECShabilitado para conformidade.

O ECS tem recursos de retenção de objeto ativados ou definidos em nível de objeto,bucket e namespace. A conformidade fortalece esses recursos limitando as alteraçõesque podem ser feitas às configurações de retenção em objetos sob retenção. Asregras incluem:

l A função Compliance estar ativada no nível do namespace. Isso significa que todosos buckets do namespace devem ter um período de retenção maior que zero. Parao CAS, buckets com retenção zero podem ser criados, contanto que aconfiguração Enforce Retention Information in Object esteja ativada.

l A conformidade somente poderá ser habilitada em um namespace quando onamespace for criado. (Não é possível adicionar o recurso de conformidade a umnamespace existente).

Configurando o suporte a CAS no ECS

102 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 103: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

l Uma vez habilitado, o recurso de conformidade não pode ser desabilitado.

l Todos os buckets de um namespace devem ter um período de retenção maior quezero.

Obs.

Se você tiver um aplicativo que atribui períodos de retenção em nível de objeto,não use o ECS para atribuir um período de retenção maior que o período deretenção do aplicativo. Essa ação causará erros no aplicativo.

l Um bucket com dados não pode ser excluído, independentemente de seu valor deretenção.

l Usar a opção Infinite em um bucket significa que os objetos do bucket em umnamespace habilitado para conformidade nunca podem ser excluídos.

l O período de retenção de um objeto não pode ser excluído nem reduzido.Portanto, o período de retenção de um bucket não pode ser excluído nemreduzido.

l Os períodos de retenção de objetos e buckets podem ser aumentados.

l Nenhum usuário pode excluir um objeto sob retenção. Isso inclui usuários compermissão de exclusão privilegiada do CAS.

Configurando o suporte a CAS no ECS

Política de conformidade e retenção 103

Page 104: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Figura 1 Habilite a função Compliance em um novo namespace no Portal do ECS

Agente de conformidadeDescreve a operação do agente de conformidade.

Todos os recursos de conformidade estão ativados por padrão, exceto omonitoramento de conformidade. Se o monitoramento estiver ativado, o agente,periodicamente, registrará uma mensagem em um thread.

Obs.

Faça acordos com o Atendimento ao cliente da EMC para ativar o monitoramento deconformidade. As mensagens de monitoramento estão disponíveis por comando apartir do nó. Elas não aparecem no Portal do ECS.

Retenção do CAS no ECSUm C-Clip do CAS pode ter um período de retenção que rege o período em que oobjeto associado é retido no armazenamento do ECS antes que um aplicativo possaexcluí-lo.

Configurando o suporte a CAS no ECS

104 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 105: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Períodos de retençãoOs períodos de retenção são atribuídos no C-Clip do objeto pelo aplicativo do CAS.

Por exemplo, se um documento financeiro deve ser retido por três anos após sua datade criação, um período de retenção de três anos é especificado no C-Clip associado aodocumento financeiro. Também é possível especificar se o objeto deve ser retidoindefinidamente.

Políticas de retenção (classes de retenção)

Obs.

O conceito do Centera de "classes de retenção" associa-se a "políticas de retenção"no ECS. Esta documentação usa "políticas de retenção".

As políticas de retenção permitem que os casos de uso de retenção sejam capturadose aplicados aos C-Clips. Por exemplo, diferentes tipos de documentos podem terdiferentes períodos de retenção. É possível exigir os seguintes períodos de retenção:

l Financeiro: 3 anos

l Jurídico: 5 anos

l E-mail: 6 meses

Quando uma política de retenção é aplicada a vários C-Clips, ao alterar essa política, operíodo de retenção mudará para todos os objetos aos quais a política se aplica.

As políticas de retenção são associadas aos namespaces do ECS e são reconhecidascomo classes de retenção pelo aplicativo do CAS.

Retenção de nível de bucket do ECS e CASRetenção de nível de bucket não é a retenção do pool padrão no Centera. No ECS, aretenção padrão do CAS constantemente é zero.

A alteração de comportamento para o período de retenção padrão em objetosgravados sem retenção de nível de objeto em namespaces de conformidadeComeçando com o ECS 3.0, quando um aplicativo grava C-Clips sem retenção deobjeto para um bucket do ECS CAS em um namespace de conformidade, e o buckettem um valor de retenção (6 meses, por exemplo), o período de retenção padrão deinfinito (-1) será atribuído aos C-Clips. Os C-Clips nunca podem ser excluídos porqueseu período de retenção real é o maior entre: o período de retenção no nível de buckete o período de retenção padrão no nível do objeto.

Isso é uma mudança do comportamento do ECS 2.2.1 que coloca o comportamento doECS em linha com o comportamento do Centera, em que a retenção do pool padrão nomodo de conformidade CE+ é sempre infinito (-1).

No ECS 2.2.1, quando um aplicativo grava C-Clips sem retenção de objeto em umbucket do CAS do ECS em um namespace de conformidade, e o bucket tem um valorde retenção (de seis meses, por exemplo), o período de retenção atribuído aos C-Clipsserá zero (0). Aqui, o período de retenção real para os C-Clips será o valor de retençãodo bucket (seis meses). Os C-Clips podem ser excluídos em seis meses.

Depois de realizar o upgrade do ECS 2.2.1 para o ECS 3.0 ou qualquer versãoposterior, os aplicativos que dependem do comportamento do ECS 2.2.1 gravarão C-Clips que nunca podem ser excluídos.

Pare e reconfigure seus aplicativos para atribuir a retenção de nível de objetoapropriada antes de interagirem com o ECS 3.0 ou versões posteriores.

No exemplo acima, o aplicativo deve atribuir retenção de nível de objeto de seis mesespara os C-Clips.

Configurando o suporte a CAS no ECS

Retenção do CAS no ECS 105

Page 106: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Preferência do CASQuando vários períodos e retenção são aplicados a um objeto do CAS no ECS, operíodo de retenção com o maior valor tem preferência, independentemente de comoa retenção foi aplicada.

Como aplicar a retenção do CASÉ possível definir políticas de retenção para namespaces no ECS Portal ou com a ECSAPI de gerenciamento. Consulte Configurar as políticas de retenção de namespace.

Seu aplicativo externo do CAS pode atribuir um período de retenção fixo ou umapolítica de retenção fixa ao C-Clip durante sua criação.

Ao aplicar períodos de retenção por meio das APIs, especifique o período emsegundos.

Observe que o ECS CAS adota o horário de criação do C-Clip para todos os cálculosrelacionados à retenção, e não o horário da migração.

Como criar políticas de retenção com a ECS API de gerenciamento.É possível criar períodos e políticas de retenção usando a API REST de gerenciamentodo ECS, cujo resumo é apresentado a seguir.

Tabela 10 ECS Recursos da API de gerenciamento para retenção

Método Descrição

PUT /object/bucket/{bucketName}/retention

O valor de retenção de um bucket define umperíodo de retenção obrigatório que é aplicadoa todos os objetos de um bucket. Se vocêconfigurar um período de retenção de um ano,um objeto do bucket não poderá ser excluídodurante um ano.

GET /object/bucket/{bucketName}/retention

Exibe o período de retenção atualmenteconfigurado para um bucket específico.

POST /object/namespaces/namespace/{namespace}/retention

Para os namespaces, a configuração deretenção age como uma política, onde cadapolítica é um <Nome>:<Período de retenção>.É possível definir várias políticas de retençãopara um namespace e atribuir uma política,por nome, a um objeto do namespace. Issopermite a alteração do período de retenção deum conjunto de objetos que têm a mesmapolítica atribuída por meio da alteração dapolítica correspondente.

PUT /object/namespaces/namespace/{namespace}/retention/{class}

Atualiza o período para um período deretenção associado a um namespace.

GET /object/namespaces/namespace/{namespace}/retention

Exibe a política de retenção definida para umnamespace.

Encontre mais informações sobre a API de gerenciamento em: API REST degerenciamento do ECS. A referência on-line encontra-se aqui: Referência da APIREST de gerenciamento do ECS.

Configurando o suporte a CAS no ECS

106 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 107: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Retenção avançada para os aplicativos do CAS: retençãobaseada em evento, retenção legal e administrador mín./máx.

Descreve os recursos disponíveis de retenção avançada na API do CAS aceitos peloECS.

Os aplicativos do cliente usam a API do CAS para habilitar as estratégias de retenção.Quando as cargas de trabalho do CAS são migradas para o ECS, o reconhecimentopelo ECS dos recursos da API do CAS permite que os aplicativos do cliente continuema trabalhar com os dados migrados. No ECS, os seguintes recursos de gerenciamentode retenção avançada (ARM) estão disponíveis sem uma licença separada:

l Retenção baseada em evento: a capacidade de configurar um objeto por meio deseu C-Clip para aplicar (acionar) um período de retenção ou política de retençãoquando o aplicativo do CAS recebe um evento especificado.

l Retenção legal: a capacidade de impedir a exclusão de um objeto se o aplicativo doCAS aplicou uma retenção legal ao objeto por meio de seu C-Clip. O aplicativo doCAS pode aplicar até 100 retenções legais a um objeto pela criação e aplicação deIDs de retenção legal exclusivas.

l Administrador mín/max: A capacidade de um administrador de configurar limitesde nível de bucket para período fixo de retenção ou período de retenção variável.Um período de retenção variável é aquele que é definido para dar suporte àretenção baseada em evento. No ECS, os administradores do sistema ou donamespace podem configurar os valores no Portal do ECS. Os programadorespodem usar a API de gerenciamento do ECS para configurar os valores.

Obs.

O ARM é compatível com dados preexistentes do CAS, gravados com qualqueresquema de nomenclatura migrada para o ECS.

Administrador de mín./máx. para retenção de nível de bucket do CASNo Portal do ECS, localize um bucket do CAS e selecione Edit. Todos os controlesmostrados na tela abaixo são recursos somente do CAS, exceto o controle BucketRetention Period. O Bucket Retention Period é o recurso de retenção de bucketpadrão do ECS compatível com todos os tipos de bucket do ECS.

Configurando o suporte a CAS no ECS

Retenção avançada para os aplicativos do CAS: retenção baseada em evento, retenção legal e administrador mín./máx. 107

Page 108: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Figura 2 Opções de retenção para buckets do CAS

Os recursos de retenção de bucket do CAS são explicados na tabela a seguir.

Recurso Descrição

Imporinformações deretenção noobjeto

Se esse controle for habilitado, nenhum objeto do CAS pode ser criadosem informações de retenção (período ou política). Uma tentativa desalvar esse objeto exibirá um erro. Se estiver habilitado, é possível não

configurar Bucket Retention Period mesmo em ambiente habilitadopara conformidade.

Obs.

Quando um modo CE+ do Centera é migrado para o ECS, EnforceRetention Information in Object é habilitado por padrão no bucket.

Período deretenção dobucket

Se um período de retenção de bucket for especificado, o período maislongo será imposto, se houver período de retenção de nível de bucket e umperíodo de retenção de nível de objeto.

Em um ambiente habilitado para conformidade o Bucket RetentionPeriod é obrigatório, a menos que as informações de retenção no objeto

sejam impostas. No entanto, após ser configurado, o Bucket RetentionPeriod não pode ser redefinido mesmo quando as informações deretenção no objeto são impostas.

Período fixomínimo deretenção

Esse recurso rege os períodos de retenção especificados nos objetos. Se operíodo de retenção de um objeto está fora dos limites especificados aqui,em seguida, uma tentativa de gravar o objeto falha.

Configurando o suporte a CAS no ECS

108 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 109: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Recurso Descrição

Período fixomáximo deretenção

Ao usar as políticas de retenção, as configurações de mín./máx. não sãoimpostas.

Selecionando Infinite para Minimum Fixed Retention Periodsignifica que todos os valores de retenção devem ser infinitos. Selecioná-

lo para Maximum Fixed Retention Period significa que não há umlimite máximo.

Restrições de retenção mín./máx. são aplicadas a qualquer C-Clip gravadoem um bucket. Se um clip for migrado por qualquer ferramenta deterceiros baseada no SDK, a retenção deve estar dentro dos limites, casocontrário, é gerado um erro.

Período variávelmínimo deretenção

Esse recurso rege os períodos variáveis de retenção especificados nosobjetos usando a retenção baseada em evento (EBR). Na EBR, um períodobásico de retenção é definido e a função de acionamento programado tema capacidade de aumentar o período de retenção quando o acionador éacionado. Se o novo período de retenção de um objeto estiver fora doslimites especificados aqui, uma tentativa de gravar o objeto em respostaao acionador falha.Ao usar as políticas de retenção, as configurações de mín./máx. não sãoimpostas.

Selecionar Infinite para Minimum Variable Retention Periodsignifica que todos os valores de retenção devem ser infinitos. Selecioná-

lo para Maximum Variable Retention Period significa que não há umlimite máximo.

Restrições de retenção mín./máx. são aplicadas a qualquer C-Clip gravadoem um bucket. Se um clip for migrado por qualquer ferramenta deterceiros baseada no SDK, a retenção deve estar dentro dos limites, casocontrário, é gerado um erro.

Período máximovariável deretenção

Obs.

Se o administrador do sistema ou o programador não tiver configurado os valores paraos períodos fixos e variáveis de retenção, a função API de gerenciamento do ECS getnão exibirá valores para as configurações mín/máx. A função Enforce RetentionInformation in C-Clip exibirá um valor padrão de false.

Retenção baseada em eventosA retenção baseada em eventos (EBR) é uma instrução que especifica que um registronão pode ser excluído antes de um evento e durante um período específico depois doevento. No CAS, a EBR é um C-Clip com um período básico de retenção específico ouuma política de retenção e um acionador definido pelo aplicativo que pode configurarum período de retenção mais longo quando o acionador é acionado. O período deretenção somente começa quando o acionador é acionado. Quando um C-Clip émarcado para EBR, não pode ser excluído antes do evento, a menos que uma exclusãoprivilegiada seja usada.

Ao usar a EBR, o ciclo de vida do C-Clip é da seguinte maneira:

l Create: o aplicativo cria um novo C-Clip e o marca como estando em EBR. Oaplicativo pode fornecer um período fixo de retenção que atua como uma retençãomínima e deve oferecer um período ou uma política de retenção baseada emevento.

Configurando o suporte a CAS no ECS

Retenção avançada para os aplicativos do CAS: retenção baseada em evento, retenção legal e administrador mín./máx. 109

Page 110: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

l Trigger Event: O aplicativo aciona o evento, que é o ponto de partida do período deretenção baseada em evento ou da política de retenção. Nesse ponto, o aplicativopode atribuir um novo período de retenção baseada em evento, desde que sejamaior do que aquele atribuído no momento da criação do C-Clip.

l Delete: Quando o aplicativo tenta excluir o C-Clip, as seguintes condições devemser atendidas:

n Retenção da política (Namespace) expirou

n Retenção do bucket expirou

n Retenção fixa expirou

n O evento foi acionado

n Tanto a EBR configurada no momento da criação quanto qualquer alteraçãosubsequente (extensões) no momento do evento expiraram

A figura a seguir mostra as três possíveis situações de um C-Clip sob EBR:

l C1 tem uma retenção fixa ou mínima que já expirou antes que o evento tenha sidoacionado.

l C2 tem uma retenção fixa ou mínima que vai expirar antes que a EBR expire.

l C3 tem uma retenção fixa ou mínima que vai expirar depois que a EBR expire.

Figura 3 Cenários da EBR

Para namespaces não compatíveis, comandos privilegiados de exclusão podem sesobrepor à retenção fixa e variável para EBR.

Ao aplicar a retenção EBR, ela deve estar em conformidade com as configurações deAdministrador Mín/Máx. para o período de retenção variável.

Tabela 11 Funções da API do CAS para retenção baseada em evento

Função Descrição

FPClip_EnableEBRWithClass Essa função define que um C-Clip estáqualificado para receber um evento futuro epermite que uma classe de retenção baseada em

Configurando o suporte a CAS no ECS

110 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 111: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Tabela 11 Funções da API do CAS para retenção baseada em evento (continuação)

Função Descrição

evento (EBR) seja atribuída ao C-Clip durante omomento de criação do C-Clip.

FPClip_EnableEBRWithPeriod Essa função define que um C-Clip estáqualificado para receber um evento futuro epermite que um período de retenção baseada emevento (EBR) seja atribuído ao C-Clip durante omomento de criação do C-Clip.

FPClip_IsEBREnabled Esta função exibe um valor booleano para indicarse um C-Clip está ou não habilitado pararetenção baseada em evento (EBR).

FPClip_GetEBRClassName Esta função recupera o nome da política deretenção baseada em evento (EBR) atribuída aoC-Clip.

FPClip_GetEBREventTime Esta função exibe a hora do evento configuradaem um C-Clip quando o evento da retençãobaseada em evento (EBR) para aquele C-Cliptiver sido acionado.

FPClip_GetEBRPeriod Esta função exibe o valor (em segundos) doperíodo de retenção baseada em evento (EBR)associado a um C-Clip.

FPClip_TriggerEBREvent Esta função aciona o evento de um C-Clip para oqual a retenção baseada em evento (EBR) foihabilitada.

FPClip_TriggerEBREventWithClass Esta função aciona o evento de um C-Clip para oqual a retenção baseada em evento (EBR) foihabilitada e atribui uma nova política EBR ao C-Clip.

FPClip_TriggerEBREventWithPeriod Esta função aciona o evento de um C-Clip para oqual a retenção baseada em evento (EBR) foihabilitada e atribui um novo período EBR ao C-Clip.

Retenção legalA retenção legal permite que os aplicativos do CAS impeçam temporariamente aexclusão de um C-Clip. A retenção legal é útil para dados que estão sujeitos a umainvestigação oficial, intimação ou inquérito e que não podem ser excluídos até o finalda investigação. Depois de não haver necessidade de armazenar os dados, a retençãolegal pode ser liberada pelo aplicativo e o comportamento de retenção normal éretomado. O aplicativo do CAS coloca e remove uma retenção legal no nível do C-Clip.

Obs.

Até mesmo uma exclusão privilegiada não pode excluir um C-Clip sob retenção legal.

Um C-Clip pode estar sob várias retenções legais. O aplicativo deve gerar IDsexclusivas de retenção legal e ser capaz de rastrear as retenções legais específicasassociadas a um C-Clip. O aplicativo não pode consultar um C-Clip para obter essas

Configurando o suporte a CAS no ECS

Retenção avançada para os aplicativos do CAS: retenção baseada em evento, retenção legal e administrador mín./máx. 111

Page 112: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

informações. Há apenas uma função que determina o estado de retenção legal do C-Clip. Se houver uma ou várias retenções legais no C-Clip, essa função exibe true, casocontrário, é false.

Ao usar a retenção legal, o ciclo de vida do C-Clip é da seguinte maneira:

l Criar: O aplicativo cria um novo C-Clip e oferece um período de retenção fixa e/oubaseada em eventos.

l Configurar retenção legal: Um aplicativo coloca o C-Clip em espera. Esseaplicativo pode ser diferente do aplicativo que criou o C-Clip.

l Liberar retenção legal: Um aplicativo libera o C-Clip. Esse aplicativo pode serdiferente do aplicativo que configura a retenção legal ou escreveu o C-Clip.

l Excluir: Quando o aplicativo tenta excluir o C-Clip, as seguintes condições devemser atendidas:

n Não há outras retenções legais pendentes no C-Clip.

n A retenção da política expirou.

n A retenção do bucket padrão expirou. (A retenção do bucket padrão estádisponível para todos os tipos de objeto do ECS, mas não é recomendada parao CAS.)

n O período fixo de retenção expirou (recurso exclusivamente do CAS).

n A retenção baseada em evento expirou (recurso exclusivamente do CAS).

A figura a seguir mostra as três possíveis situações de um C-Clip colocado emretenção legal:

l C1 tem uma retenção fixa que já expirou quando foi colocada em retenção.

l C2 tem uma retenção fixa que expire durante a retenção.

l C3 tem uma retenção fixa que vai expirar após a liberação da retenção.

Figura 4 Cenários de retenção legal

Um C-Clip pode ter várias retenções legais atribuídas a ele. Se esse for o caso, cadaretenção legal exige uma chamada da API separada com um identificador exclusivopara a retenção legal.

Configurando o suporte a CAS no ECS

112 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 113: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Obs.

O tamanho máximo de da ID da retenção legal é de 64 caracteres. O número máximode IDs de retenção legal por C-Clip é 100. Essas limitações são impostas pela API doCAS.

Tabela 12 Funções da API do CAS para retenção legal

Função Descrição

FPClip_GetRetentionHold Esta função determina o estado da retençãodo C-Clip e exibe true ou false.

FPClip_SetRetentionHold Esta função define ou redefine umaretenção legal em um C-Clip. Para váriasretenções legais, fornece uma ID exclusivade retenção legal para cada retenção. Paravárias retenções, faça uma chamada por ID.

Configurar as políticas de retenção de namespaceOferece instruções de configuração específicas do CAS para políticas de retenção denamespace.

O recurso Retention Policy dos namespaces oferece um modo de definir e gerenciar asclasses de retenção do CAS para todos os C-Clips criados no namespace.

Um namespace pode ter muitas políticas de retenção, e cada política define umperíodo de retenção. Ao aplicar uma política de retenção a vários C-Clips (com a API),uma alteração da política de retenção alterará o período de retenção de todos osobjetos associados à política. No CAS, as classes de retenção são aplicadas ao C-Clipde um objeto pelo aplicativo. Se um objeto estiver em um período de retenção, nãoserá permitido fazer solicitações de modificação do objeto.

Procedimento

1. No ECSportal, selecione Manage > Namespace.

2. Para editar a configuração de um namespace existente, selecione a ação Editassociada ao namespace existente.

3. Adicione e configure políticas de retenção.

a. Na área Retention Policies, selecione Add para adicionar uma nova política.

b. Especifique um nome para a política.

c. Especifique o período da política de retenção.

Marque a caixa de seleção Infinite para garantir que os objetos dessapolítica nunca sejam excluídos.

Configurando o suporte a CAS no ECS

Configurar as políticas de retenção de namespace 113

Page 114: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Figura 5 Nova política de retenção

4. Selecione Save.

Figura 6 Políticas de retenção de um namespace

Criar e configurar um bucket para um usuário do CASConfigure um bucket para dar suporte ao usuário do CAS.

No ECS, os usuários de gerenciamento criam buckets e se tornam os proprietários dosbuckets. Para o CAS, os usuários de objetos precisam ser configurados comoproprietários de buckets. Siga este procedimento para configurar um bucket do CASde maneira adequada e tornar o usuário do CAS o proprietário do bucket. Nesteexemplo, newcasadmin1 é um usuário de gerenciamento, newcasuser1 é um usuáriode objeto do CAS e newcasns1 é o namespace. O procedimento presume que os doisusuários e o namespace foram configurados.

Procedimento

1. Faça log-in no portal do ECS como newcasadmin1.

2. No ECSportal, selecione Manage > Bucket.

3. Selecione New Bucket.

Configurando o suporte a CAS no ECS

114 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 115: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

4. Preencha os campos, conforme mostrado abaixo:

Campo Valor

Grupo de replicação Seu grupo de replicação

Configure o usuário atual como proprietário debucket

Verificação

CAS Habilitado

5. Escolha Save.

6. Selecione Manage > User.

7. Certifique-se de que a guia Object User está ativa, pesquise o newcasuser1 eescolha Edit.

8. Em Default Bucket, digite newcasbucket1 e escolha Set Bucket.

9. Escolha Close.

10. Selecione Manage > Bucket.

11. Pesquise newcasbucket1 e escolha Edit bucket.

12. Em Bucket Owner, digite newcasuser1.

13. Escolha Save.

Configurar um usuário de objeto do CASConfigure um usuário de objeto para usar o CAS.

Ao configurar um usuário de objeto, é possível atribuir recursos que fazem parte doselementos de um perfil CAS ao perfil do usuário. Você poderá ver o arquivo PEAresultante para uso em seus aplicativos de CAS.

Procedimento

1. No portal do ECSportal, selecione Manage > Users.

2. Para editar a configuração de um usuário de objeto existente, selecione a açãoEdit associada ao usuário.

Configurando o suporte a CAS no ECS

Configurar um usuário de objeto do CAS 115

Page 116: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Figura 7 Configurações de CAS dos usuários de objeto

3. Na área do CAS, digite uma senha (secreta) ou selecione Generate para que oportal crie uma senha para você.

4. Selecione Set Password.

5. Selecione Generate PEA File para gerar o arquivo PEA que seu aplicativoprecisará para autenticar o armazenamento CAS no ECS.

6. Ao configurar um bucket padrão, todas as ações que o usuário realizar que nãoespecificarem um bucket utilizarão o bucket padrão especificado. Digite o nomedo bucket padrão e selecione Set Bucket.

7. Selecione Add Attribute para adicionar uma tag de metadados ao usuário.

8. Adicione o nome e o valor da tag de metadados.

Consulte a documentação SDK do CAS para obter mais informações sobre tagsde metadados.

9. Selecione Save Metadata.

Configurar ACLs do bucket para o CASEdite a lista de controle de acesso de um bucket para limitar o acesso a um usuário.

Algumas ACLs dos buckets do ECS são mapeadas a permissões do CAS e algumas nãotêm significado para dados do CAS.

Procedimento

1. No ECSportal, selecione Manage > Bucket.

2. Para editar as ACLs de um bucket existente, selecione a ação Edit ACLassociada ao bucket.

Configurando o suporte a CAS no ECS

116 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 117: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Figura 8 Editar ACL do bucket

3. Selecione a ação Edit associada ao usuário.

Figura 9 Gerenciamento de ACLs dos buckets

4. Modifique as permissões.

Configurando o suporte a CAS no ECS

Configurar ACLs do bucket para o CAS 117

Page 118: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Tabela 13 ACLs dos buckets

ACL do ECS Definição da ACL

Read Recursos de leitura, consulta e existência

Writes Recursos de gravação e retenção legal

FULL_CONTROL Leitura, exclusão, consulta, existência, clipcopy, gravação e retenção legal

PRIVILEDGED_WRITE Exclusão privilegiada

DELETE Excluir

Obs.

Outras ACLs do ECS não têm significado para o CAS.

5. Selecione Save.

6. Também é possível editar as ACLs no nível de grupo. Os grupos são pré-definidos e a associação do grupo é automática, com base nos critérios dousuário. Selecione Group ACLs.

7. Selecione Add.

8. Selecione o grupo que deseja editar na lista Group Name.

Tabela 14 Grupos de ACL dos buckets

Grupo de ACL dos buckets Descrição

public Todos os usuários autenticados ou não.

all users Todos os usuários autenticados.

other Usuários autenticados, mas não o proprietáriodo bucket.

log delivery Não compatível.

9. Edite as ACLs e selecione Save.

APIs de gerenciamento ECS que dão suporte a usuários doCAS

Descreve ECS os recursos do gerenciamento do API que podem ser usados paragerenciar as configurações de perfil e de usuários do CAS.

Descrições dos recursos da API de gerenciamento ECS:

l GET /object/user-cas/secret/{uid}: obtém a chave secreta do CASpara o usuário especificado.

l GET /object/user-cas/secret/{namespace}/{uid}: obtém a chavesecreta do CAS para o namespace e o usuário especificados.

Configurando o suporte a CAS no ECS

118 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 119: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

l POST /object/user-cas/secret/{uid}: cria ou atualiza a chave secreta doCAS para um usuário especificado.

l GET /object/user-cas/secret/{namespace}/{uid}/pea: gera umarquivo PEA para o usuário especificado.

l POST /object/user-cas/secret/{uid}/deactivate: exclui a chavesecreta do CAS para um usuário especificado.

l GET /object/user-cas/bucket/{namespace}/{uid}: obtém o bucketpadrão para o namespace e o usuário especificados.

l GET /object/user-cas/bucket/{uid}: obtém o bucket padrão para umusuário especificado.

l POST /object/user-cas/bucket/{namespace}/{uid}: atualiza o bucketpadrão para o namespace e o usuário especificados.

l GET /object/user-cas/applications/{namespace}: obtém osaplicativos registrados do CAS para um namespace especificado.

l POST /object/user-cas/metadata/{namespace}/{uid}: atualiza osaplicativos registrados do CAS para um namespace e um usuário especificados.

l GET /object/user-cas/metadata/{namespace}/{uid}: obtém osmetadados de usuário do CAS para o namespace e o usuário especificados.

Consulte a Referência da API REST de gerenciamento do ECS para mais informações.

Suporte à API do SDK CAS (Content-Addressed Storage,armazenamento de conteúdo endereçável)

Versões compatíveisO ECS dá suporte ao CAS com build 3.1.544 ou superior. Além disso, você deveverificar se o aplicativo do ISV dá suporte ao ECS.

Mais informações sobre o suporte ao CAS do ECS são fornecidas em Configurar osuporte aos aplicativos do SDK CAS com o portal do ECS.

Suporte de consulta de CASA consulta de CAS é aceita a partir do ECS 2.2.

Obs.

No ECS, as operações da consulta de CAS retornam resultados com base na hora decriação do C-Clip existente e na hora de exclusão do C-Clip excluído (reflexo). NoEMC Centera, as operações de consulta retornam resultados com base na hora degravação do objeto.

As APIs incompatíveis nas versões do ECS anteriores ao ECS 3.0Chamadas da API do SDK CAS não suportadas com versões do ECS antes do ECS 3.0:

l FPClip_EnableEBRWithClass

l FPClip_EnableEBRWithPeriod

l FPClip_SetRetentionHold

l FPClip_TriggerEBREvent

l FPClip_ TriggerEBREventWithClass

Configurando o suporte a CAS no ECS

Suporte à API do SDK CAS (Content-Addressed Storage, armazenamento de conteúdo endereçável) 119

Page 120: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

l FPClip_ TriggerEBREventWithPeriod

l FPClip_GetEBRClassName

l FPClip_GetEBREventTime

l FPClip_GetEBRPeriod

l FPClip_GetRetentionHold

l FPClip_IsEBREnabled

Configurando o suporte a CAS no ECS

120 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 121: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

PARTE 5

API ECS Management

Capítulo 17, "Introdução à API REST ECS Management"

Capítulo 18, "Autenticação com o serviço de gerenciamento do ECS"

Capítulo 19, "Resumo da API REST ECS Management"

API ECS Management 121

Page 122: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

API ECS Management

122 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 123: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

CAPÍTULO 17

Introdução à API REST ECS Management

l API REST de gerenciamento do ECS................................................................ 124

Introdução à API REST ECS Management 123

Page 124: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

API REST de gerenciamento do ECSEsta seção descreve como acessar a API REST de gerenciamento do ECS e como seautenticar nela, e oferece um resumo dos caminhos da API. A API REST degerenciamento do ECS permite que a área de armazenamento de objetos sejaconfigurada e gerenciada. Após a configuração da área de armazenamento de objeto,as operações subsequentes de criação, leitura, atualização e exclusão de objetos serãorealizadas usando protocolos de objeto e arquivo compatíveis com o ECS.

Consulte o seguinte tópico para obter noções básicas de como acessar a API REST ede como se autenticar:

l Autenticar-se com o API REST de gerenciamento do ECS na página 126

os caminhos da API são resumidos em:

l Resumo da API REST de gerenciamento do ECS na página 132

Além de isso, uma referência da API é fornecida em:

l Referência da API REST de gerenciamento do ECS

A Referência da API REST de gerenciamento do ECS é gerada automaticamente docódigo-fonte e oferece uma referência para cada um dos métodos disponíveis.

Introdução à API REST ECS Management

124 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 125: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

CAPÍTULO 18

Autenticação com o serviço de gerenciamentodo ECS

l Autenticar-se com o API REST de gerenciamento do ECS............................... 126

Autenticação com o serviço de gerenciamento do ECS 125

Page 126: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Autenticar-se com o API REST de gerenciamento do ECS

O ECS usa um sistema de autenticação baseado em tokens para todas as suaschamadas API REST. São oferecidos exemplos para a autenticação com a API RESTECS, com e sem cookies.

Assim que um usuário é autenticado no ECS, um token de autenticação é exibido epode ser usado para autenticar o usuário nas chamadas posteriores.

l Um código HTTP 401 será exibido se o client estiver seguindo osredirecionamentos automaticamente, indicando que é necessário fazer log-in eautenticar-se para obter um novo token.

l Um código HTTP 302 será exibido se o client não estiver seguindo osredirecionamentos automaticamente. O código 302 direciona o client ao local ondepoderá ser autenticado novamente.

É possível recuperar e usar tokens de autenticação:

l Salvando o cookie X-SDS-AUTH-TOKEN de uma solicitação de autenticação comsucesso e o enviando nas solicitações posteriores.

l Lendo o cabeçalho HTTP X-SDS-AUTH-TOKEN de uma solicitação deautenticação com sucesso e o copiando nas solicitações posteriores.

A API REST está disponível na porta :4443 e os clients acessam o ECS emitindo umasolicitação de log-in no formato:

https://<ECS_IP>:4443/login

Autenticar-se com AUTH-TOKENEste exemplo mostra como usar os tokens de autenticação lendo o cabeçalho http X-SDS-AUTH-TOKEN de uma solicitação de autenticação feita com sucesso e copiandoesse cabeçalho em uma solicitação posterior. O exemplo não usa cookies. Os exemplosdesta seção são escritos em curl e formatados para serem legíveis.

Este comando executa uma operação GET no recurso /login. A opção -u indica ousuário do cabeçalho básico de autenticação. A designação do usuário deve serincluída na solicitação. Após a autenticação com sucesso, um código HTTP 200 éexibido, bem como o cabeçalho X-SDS-AUTH-TOKEN que contém o token codificado.

A duração padrão do token da API de gerenciamento é de 8 horas, o que significa queapós 8 horas o token não é mais válido. O tempo de inatividade padrão para um tokené de 2 horas; após um período de inatividade de 2 horas, o token expira. Se um usuárioutilizar um token expirado, ele será redirecionado para a URL "/login" e o usosubsequente do token expirado fará com que o código de erro 401 de status de HTTPseja exibido.

curl -L --location-trusted -k https://10.247.100.247:4443/login -u "root:ChangeMe" -v

> GET /login HTTP/1.1> Authorization: Basic cm9vdDpDaGFuZ2VNZQ==> User-Agent: curl/7.24.0 (i386-pc-win32) libcurl/7.24.0 OpenSSL/0.9.8t zlib/1.2.5> Host: 10.247.100.247:4443> Accept: */*>

Autenticação com o serviço de gerenciamento do ECS

126 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 127: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

< HTTP/1.1 200 OK< Date: Tue, 26 Nov 2013 22:18:25 GMT< Content-Type: application/xml< Content-Length: 93< Connection: keep-alive< X-SDS-AUTH-TOKEN: BAAcQ0xOd3g0MjRCUG4zT3NJdnNuMlAvQTFYblNrPQMAUAQADTEzODU0OTQ4NzYzNTICAAEABQA5dXJu OnN0b3JhZ2VvczpUb2tlbjo2MjIxOTcyZS01NGUyLTRmNWQtYWZjOC1kMGE3ZDJmZDU3MmU6AgAC0A8=<<?xml version="1.0" encoding="UTF-8" standalone="yes"?><loggedIn> <user>root</user></loggedIn>* Connection #0 to host 10.247.100.247 left intact* Closing connection #0* SSLv3, TLS alert, Client hello (1):

Em seguida, o token pode ser passado na próxima chamada API. É possível copiar oconteúdo do X-SDS-AUTH-TOKEN e passá-lo à próxima solicitação por meio doswitch -H do curl.

curl https://10.247.100.247:4443/object/namespaces -k -H "X-SDS-AUTH-TOKEN: BAAcOHZLaGF4MTl3eFhpY0czZ0tWUGhJV2xreUE4PQMAUAQADTEzODU0OTQ4NzYzNTICAAEABQA5dXJu OnN0b3JhZ2VvczpUb2tlbjpkYzc3ODU3Mi04NWRmLTQ2YjMtYjgwZi05YTdlNDFkY2QwZDg6AgAC0A8="

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <namespaces> <namespace> <id>ns1</id> <link rel="self" href="/object/namespaces/namespace/ns1"/> <names>ns1</name> </namespace></namespaces>

Autenticar com cookiesEste exemplo mostra como usar os tokens de autenticação salvando o cookie de umasolicitação de autenticação feita com sucesso e, depois, passando o cookie em umasolicitação posterior. Os exemplos desta seção são escritos em curl e formatados paraserem legíveis.

Neste exemplo, você especifica o parâmetro ?using-cookies=true para indicar quedeseja receber cookies além do cabeçalho HTTP normal. Esse comando curl salva otoken de autenticação em um arquivo chamado cookiefile no diretório atual.

curl -L --location-trusted -k https://<ECS_IP>:4443/login?using-cookies=true -u "root:Password" -c cookiefile -v

Autenticação com o serviço de gerenciamento do ECS

Autenticar com cookies 127

Page 128: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

O próximo comando passa o cookie com o token de autenticação pelo switch -b eexibe as informações de tenant do usuário.

curl -k https://10.247.100.247:4443/object/namespaces -b cookiefile -v

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <namespaces> <namespace> <id>ns1</id> <link rel="self" href="/object/namespaces/namespace/ns1"/> <names>ns1</name> </namespace></namespaces>

Fazer log-outA API de log-out encerra uma sessão.

Um usuário é autorizado a um máximo de 100 tokens de autenticação simultâneos.Após esse limite, o sistema recusará todas as novas conexões para esse usuário atéque os tokens sejam liberados. Os tokens podem ser liberados por sua expiraçãonatural ou acionando explicitamente esse URI:

https://<ECS_IP>:4443/logout

Se você tiver várias sessões em execução ao mesmo tempo, esse URI forçará oencerramento de todos os tokens relacionados ao usuário atual.

GET https://<ECS_IP>:4443/logout?force=true

Segue a seguir um exemplo de solicitação de log-out.

Solicitação

GET https://<ECS_IP>:4443/logout

X-SDS-AUTH-TOKEN:{Auth_Token}

Transfira o cabeçalho ou o cookie com o token de autenticação para fazer log-out.

Resposta

HTTP 200

WhoamiUm usuário do ECS pode exibir seu próprio nome de usuário, sua associação de tenante suas funções usando a chamada API whoami.

Solicitação

GET https://<ECS_IP>:4443/user/whoami

Autenticação com o serviço de gerenciamento do ECS

128 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 129: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Resposta

HTTP 200

GET /user/whoami<user> <common_name>root</common_name> <distinguished_name/> <namespace/> <roles> <role>SYSTEM_ADMIN</role> </roles></user>

HTTP 200

GET /user/whoami<user> <common_name>[email protected]</common_name> <distinguished_name/> <namespace>ns1</namespace> <roles> <role>NAMESPACE_ADMIN</role> </roles></user>

Esse exemplo mostra o resultado de whoami para o usuário root e para um usuário quefoi atribuído à função NAMESPACE_ADMIN do namespace "ns1".

Autenticação com o serviço de gerenciamento do ECS

Whoami 129

Page 130: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Autenticação com o serviço de gerenciamento do ECS

130 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 131: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

CAPÍTULO 19

Resumo da API REST ECS Management

l Resumo da API REST de gerenciamento do ECS.............................................. 132

Resumo da API REST ECS Management 131

Page 132: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Resumo da API REST de gerenciamento do ECSA API REST de gerenciamento do ECS permite que a área de armazenamento deobjetos do ECS seja configurada e gerenciada.

A seguinte tabela resume a API REST de gerenciamento do ECS.

Tabela 15 API REST de gerenciamento do ECS- resumo dos métodos

Área da API Descrição

Configuração

Certificado /object-certAPI para gerenciamento de certificados.

/object-cert/keystoreAPI que permite que a cadeia de certificados usada pela EMC sejaespecificada e a distribuição do certificado.

Propriedades deconfiguração

/config/object/propertiesAPI que permite que o escopo de usuários seja configurado comoGLOBAL ou NAMESPACE.

No escopo GLOBAL, os usuários são globais e podem sercompartilhados nos namespaces. Nesse caso, o namespace padrãoassociado a um usuário determina o namespace para as operações deobjeto e não é necessário informar um namespace para uma operação.Se o escopo de usuários for NAMESPACE, um usuário será associadoa um namespace e, portanto, pode haver mais de um usuário com omesmo nome, cada um deles associado a diferentes namespaces. Nomodo NAMESPACE, um namespace deve ser oferecido para cadaoperação.

Deve ser configurado antes da criação do primeiro usuário. O padrão éGLOBAL.

Licenciamento /licenseAPI que permite que uma licença seja adicionada e que os detalhes dalicença sejam recuperados.

Recurso /feature/API que recupera os detalhes de um recurso.

Syslog /vdc/syslog/configAPI para gerenciamento de configuração de Syslog e para enviaralertas ao servidor de Syslog para fins de depuração e solução deproblemas.

SNMP /vdc/snmp/configAPI para gerenciamento de configuração de SNMP e para enviaralertas ao servidor de SNMP para fins de depuração e solução deproblemas.

CAS

Resumo da API REST ECS Management

132 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 133: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Tabela 15 API REST de gerenciamento do ECS- resumo dos métodos (continuação)

Área da API Descrição

Perfil do usuário doCAS

/object/user-casAPI que permite a atribuição de chaves secretas aos usuários do CASe a geração do arquivo PEA (Pool Entry Authorization).

Acesso ao file system

NFS /object/nfsA API permitirá a criação de uma exportação NFS com base em umbucket do ECS e também permitirá acesso à exportação por grupos eusuários do Unix.

Metering

Faturamento /object/billingAP que permite a medição da utilização da área de armazenamento deobjetos no nível de tenant e de bucket. Consulte Guia doadministrador: Gerenciar tenants para obter mais informações.

Migração

Transformação /object/transformationAPI que permite a transformação de dados.

Monitoramento

Capacidade /object/capacityAPI para recuperar a capacidade gerenciada atual.

Dashboard

Alertas /vdc/alertsAPI para recuperar alertas de auditoria.

Eventos /vdc/eventsAPI que exibe os eventos de auditoria para um namespaceespecificado.

Multi-tenancy

Namespace /object/namespacesAPI que permite que um namespace seja criado e gerenciado.

Também permite a configuração do período de retenção para onamespace. Consulte Guia do administrador: Gerenciar tenants paraobter mais informações.

Replicação geográfica

Grupo de replicação /data/data-service/vpoolsAPI que permite a criação e administração de grupos de replicação.

Zona com falhatemporária

/tempfailedzone/

Resumo da API REST ECS Management

Resumo da API REST de gerenciamento do ECS 133

Page 134: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Tabela 15 API REST de gerenciamento do ECS- resumo dos métodos (continuação)

Área da API Descrição

API que permite que todas as zonas com falha temporária ou que aszonas com falha temporária de um grupo de replicação específicosejam recuperadas.

Provisionamento

URL base /object/baseurlAPI que permite a criação de uma URL base que habilita o

funcionamento de aplicativos existentes com a área de

armazenamento de objetos do ECS. Mais informações sobre URL base

podem ser obtidas em: Guia do administrador: Configurar a URL base.

Bucket /object/bucketAPI para provisionamento e gerenciamento de buckets.

/object/bucket/{bucketName}/lockAPI que permite que o acesso aos buckets seja bloqueado. Consulte Guia do administrador: Gerenciar tenants para obter maisinformações.

Datastore /vdc/data-storesAPI que permite a criação de datastores nos file systems (/vdc/data-stores/filesystems) ou nos nós de commodity

(/vdc/data-stores/commodity).

Nó /vdc/nodesAPI para recuperar os nós que estão configurados para o cluster nomomento.

Pool dearmazenamento

/vdc/data-services/varraysAPI que permite a criação e gerenciamento de pools dearmazenamento.

Datacenter virtual /object/vdcsPermite que um VDC seja adicionado e que seus endpointsintermediários do VDC e a chave secreta sejam especificados para areplicação de dados entre os locais do ECS.

Keystore de VDC /vdc/keystoreAPI que gerencia certificados de um VDC.

Suporte

Call Home /vdc/callhome/API que permite que o ConnectEMC seja configurado e a criação deeventos de alerta para o ConnectEMC.

Pacote de CLI /cliAPI que faz download do pacote do ECS.

Gerenciamento de usuários

Resumo da API REST ECS Management

134 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 135: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Tabela 15 API REST de gerenciamento do ECS- resumo dos métodos (continuação)

Área da API Descrição

Provedor deautenticação

/vdc/admin/authprovidersAPI que permite que os provedores de autenticação sejam adicionadose gerenciados.

Grupo de senha(Swift)

/object/user-passwordAPI que permite a geração de uma senha para ser usada com aautenticação do OpenStack Swift.

Chave secreta /object/user-secret-keysAPI que permite que chaves secretas sejam gerenciadas e atribuídasaos usuários de objeto.

Autoatendimento dechaves secretas

/object/secret-keysAPI que permite que os usuários do S3 criem uma nova chave secretaque os permitirá acessar os objetos e buckets de seu namespace naárea de armazenamento de objetos.

Usuário (objeto) /object/usersAPI para criação e gerenciamento de usuários de objeto. Os usuáriosde objeto são sempre associados a um namespace. A API exibe umachave secreta que pode ser usada para acesso ao S3. Um usuário deobjeto atribuído a uma chave secreta S3 pode alterá-la usando a APIREST.

/object/users/lock.

Permite que o acesso aos usuários seja bloqueado.

Usuário(gerenciamento)

/vdc/usersAPI para criação e gerenciamento de usuários de gerenciamento. Osusuários de gerenciamento podem ser atribuídos à função SystemAdmin ou Namespace Admin. A senha dos usuários de gerenciamentolocais pode ser alterada.

Resumo da API REST ECS Management

Resumo da API REST de gerenciamento do ECS 135

Page 136: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Resumo da API REST ECS Management

136 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 137: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

PARTE 6

HDFS

Capítulo 20, "O que é ECS HDFS?"

Capítulo 21, "Criar um bucket para o file system do HDFS"

Capítulo 22, "Usar Hortonworks Ambari para configurar o Hadoop com o ECS HDFS"

Capítulo 23, "Configurar a integração do ECS HDFS a um cluster simples do Hadoop"

Capítulo 24, "Configurar a integração do ECS HDFS a um cluster seguro do Hadoop(que passou por Kerberos)"

Capítulo 25, "Orientação sobre a configuração do Kerberos"

Capítulo 26, "Solução de problemas"

Capítulo 27, "Propriedades do core-site.xml do Hadoop para ECS HDFS"

Capítulo 28, "Exemplo de metadados seguros de bucket"

HDFS 137

Page 138: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

HDFS

138 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 139: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

CAPÍTULO 20

O que é ECS HDFS?

l O que é ECS HDFS?......................................................................................... 140l Configurando o Hadoop para usar o ECS HDFS ................................................141l URI do ECS HDFS para acesso ao file system...................................................142l Modos de autenticação do Hadoop...................................................................142l Migração de um cluster simples para um cluster de Kerberos do Hadoop......... 146l Interação do file system.................................................................................... 147l Aplicativos Hadoop compatíveis e não compatíveis...........................................147

O que é ECS HDFS? 139

Page 140: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

O que é ECS HDFS?O ECS HDFS é um HCFS (Hadoop Compatible File System) que permite que vocêexecute aplicativos do Hadoop 2.X na infraestrutura de armazenamento do ECS.

Você pode configurar sua distribuição do Hadoop para ser executada no file systemintegrado do Hadoop, no ECS HDFS ou em qualquer combinação do HDFS, do ECSHDFS ou de outros Hadoop Compatible File Systems disponíveis em seu ambiente. Afigura a seguir mostra como o ECS HDFS integra-se a um cluster existente doHadoop.

Figura 10 Integração do ECS HDFS em um cluster do Hadoop

Hadoop Cluster

ResourceManager

Hadoop Client

ECS Client Library

Node Manager

MapReduce Task

Appliance Commodity

MapReduce Request

Node Manager

MapReduce Task

Node Manager

MapReduce Task

ECS data nodes

ECS data nodes

ECS data nodes

ECS Client Library ECS Client Library

Em um ambiente do Hadoop configurado para usar o ECS HDFS, cada um dos nós dedados do ECS HDFS funciona como um NameNode tradicional do Hadoop, o quesignifica que todos os nós de dados do ECS HDFS podem aceitar e atendersolicitações do HDFS.

Ao configurar o client do Hadoop para usar o ECS HDFS em vez do HDFS tradicional,a configuração aponta para o ECS HDFS para fazer qualquer atividade de HDFS. Emcada nó do client do ECS HDFS, qualquer componente tradicional do Hadoop utilizaria

O que é ECS HDFS?

140 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 141: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

a biblioteca de client do ECS HDFS (o arquivo JAR do ViPRFS) para realizar aatividade do HDFS.

Para integrar o ECS HDFS com um ambiente do Hadoop existente, você deve ter:

l Um cluster do Hadoop já instalado e configurado. As distribuições a seguir sãocompatíveis:

n Hortonworks 2.0, 2.1, 2.2, 2.3

Obs.

O HDFS em ECS não foi oficialmente certificado pela Cloudera ou pela Pivotal HD.Isso é parte do futuro roteiro do ECS Hadoop.

Ao usar a distribuição do Hortonworks, é possível usar o Hortonworks Ambari. OHortonworks 2.3 (Hadoop 2.7) vem completa com um pacote de discos do ECSque pode ser habilitado para simplificar a integração ao ECS HDFS. As instruçõespara usar essa distribuição são fornecidas em: Implementando um clusterHortonworks com Ambari na página 160.

l O Hadoop instalado e configurado para dar suporte ao ECS HDFS, que requer:

n Um ou mais buckets habilitados para file system usados para acesso ao HDFS.

n A biblioteca de client do ECS implementada no cluster.

l Um cluster do Hadoop que use Kerberos ou Kerberos com o Active Directory.

n Principais de serviço do Kerberos implementados nos nós do ECS

n Metadados protegidos implementados no bucket.

Configurando o Hadoop para usar o ECS HDFSO Hadoop armazena as informações de configuração do sistema em vários arquivos,como core-site.xml, hdfs-site.xml, hive-site.xml etc. A edição de core-site.xml é parte obrigatória da configuração do ECS.

Existem vários tipos de propriedades para adicionar ou modificar no core-site.xml,que incluem:

l Classes Java do ECS HDFS: esse conjunto de propriedades define as classes deimplementação do ECS HDFS contidas na biblioteca de client do ECS HDFS. Elassão obrigatórias.

l Propriedades do local do file system: essas propriedades definem o URI do filesystem (esquema e autoridade) que será usado ao executar trabalhos do Hadoop,e os endereços IP dos nós de dados do ECS para um file system específico doECS.

l Propriedades do realm e do principal do serviço do Kerberos: Essas propriedadessão necessárias somente quando você estiver executando em um ambienteHadoop onde o Kerberos esteja presente. Essas propriedades mapeiam usuários doHadoop e do ECS HDFS.

O core-site.xml reside em cada nó do cluster do Hadoop. Você deve adicionar asmesmas propriedades para cada instância do core-site.xml.

O que é ECS HDFS?

Configurando o Hadoop para usar o ECS HDFS 141

Page 142: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Obs.

Ao modificar os arquivos de configuração, recomenda-se sempre usar a interface degerenciamento em vez de fazer a edição manual de arquivos. Além disso, as alteraçõesfeitas usando a interface de gerenciamento são mantidas no cluster.

URI do ECS HDFS para acesso ao file systemApós configurar o Hadoop para usar o file system do ECS, você poderá acessá-loespecificando o URI do ECS HDFS com viprfs:// como o esquema e umacombinação de bucket do ECS, namespace do tenant e nome de instalação definidopelo usuário para a autoridade.

O URI do ECS HDFS se parece com:

viprfs://bucket_name.namespace.installation/path

O bucket_name corresponde a um bucket habilitado para HDFS. Ele contém os dadosque você deseja analisar com o Hadoop. O namespace corresponde ao namespace deum tenant, e o installation_name é um nome que você atribui a um conjunto específicode nós do ECS ou a um balanceador de carga.ECS O HDFS resolve o installation_namepara um conjunto de nós do ECS ou para um balanceador de carga usando apropriedade fs.vipr.installation.[installation_name].hosts, que inclui os endereços IPdos nós do ECS ou do balanceador de carga.

Se o installation_name for mapeado a um conjunto de nós do ECSECS, será possívelespecificar a frequência de consultas ao ECS para a lista de nós ativos configurandofs.vipr.installation.[installation_name].resolution para dynamic, e fs.vipr.installation.[installation_name].resolution.dynamic.time_to_live_ms para especificar a frequênciade consulta ao ECS para a lista de nós ativos.

Você pode especificar o URI do ECS HDFS como o file system padrão em core-site.xml, para ambientes simples e Kerberos, configurando-o como o valor dapropriedade fs.defaultFS, mas isso não é um requisito. Quando o ECS HDFS nãofor o file system padrão, você deverá usar o URI completo que inclui o caminhosempre que acessar os dados do ECS. Se você tem aplicativos existentes que já usamum file system padrão diferente, é necessário atualizar os aplicativos.

Modos de autenticação do HadoopO Hadoop dá suporte a dois diferentes modos de operação para determinar aidentidade de um usuário: o modo simples e o modo Kerberos.

Simples

No modo simples, a identidade de um processo do client é determinada pelosistema operacional do host. Em sistemas semelhantes ao Unix, o nome deusuário é o equivalente a 'whoami'.

Kerberos

Na operação do Kerberos, a identidade do processo de um client é determinadapor suas credenciais do Kerberos. Por exemplo, em um ambiente de Kerberos, umusuário pode usar o utilitário kinit para obter um TGT (Ticket-Granting-Ticket) doKerberos e usar o utilitário klist para determinar seu principal atual. Ao mapear umprincipal do Kerberos para um nome de usuário do HDFS usando a propriedadeauth_to_local do Hadoop, todos os componentes, exceto os da instância primária,

O que é ECS HDFS?

142 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 143: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

serão descartados. Por exemplo, um principal todd/[email protected] atuará como o nome de usuário simples todd noHDFS.

O ECS HDFS integra-se a clusters do Hadoop configurados para usar modos deautenticação simples ou Kerberos.

Quando o cluster do Hadoop for protegido por Kerberos, o ECS pode ser configuradopara conceder acesso aos usuários com principais Kerberos na [email protected]. Como alternativa, quando o ECS usar o AD para autenticarusuários, uma confiança unidirecional pode ser configurada entre o ambiente deKerberos e o AD para que os usuários possam se autenticar usando suas credenciaisdo AD, na forma [email protected].

As permissões de arquivos e diretórios são determinadas pela umask(fs.permissions.umask-mode). A umask recomendada é 022.

Acessando o bucket como um file systemO armazenamento de file system do HDFS é oferecido por um bucket do ECS. Quandovocê cria um bucket, você solicita que o ECS o disponibilize como um file system.

Ao conceder acesso ao file system, o ECS (por meio da biblioteca de client do ECS)usa as permissões configuradas para o bucket e as configurações do arquivo core-site.xml do Hadoop para determinar o acesso. Você precisa para garantir que tenhaconfigurado acesso suficiente para permitir que os usuários e serviços do Hadooppossam criar arquivos e diretórios no file system root (bucket).

O proprietário do bucket é o proprietário do file system root e as permissões atribuídasao proprietário no bucket se transformam em permissões no file system root. Alémdisso, as ACLs de bucket precisam ser atribuídas para que cada usuário que preciseacessar o file system do HDFS tenha permissão no bucket. Isso pode ser feitoadicionando ACLs de usuário explicitamente para todos os usuários do bucket ouespecificando ACLs de grupos personalizados. Consulte Grupo padrão e ACLs degrupos personalizados dos buckets na página 143. O proprietário do bucket deve serum usuário de objeto do ECS. Os outros usuários não são usuários de objeto e podemser nomes de usuário do Unix do cluster do Hadoop.

Depois que os usuários tiverem acesso ao file system porque são proprietários dele,porque foram adicionados ao bucket como um usuário ou porque são membro dogrupo ao qual o file system pertence, os arquivos e diretórios que eles criarem terãopermissões determinadas pela propriedade umask em core-site.xml.

O ECS também dá suporte a superusuário e ao mecanismo de supergrupo parahabilitar o acesso ao HDFS.

Grupo padrão e ACLs de grupos personalizados dos bucketsVocê pode habilitar o acesso ao bucket com base em ACLs de usuário ou atribuindoACLs de grupos personalizados. Grupos personalizados são nomes de grupos deusuários, conforme definido no cluster do Hadoop, e permitem que os usuários doHadoop acessem o bucket usando o HDFS.

Os grupos comuns definidos no cluster do Hadoop são hdfs (com o usuário hdfs),hadoop (normalmente, inclui todos os usuários de serviço) e users (inclui outrosusuários não relacionados a serviço que terão acesso aos aplicativos do cluster doHadoop). Você pode criar grupos correspondentes no Portal do ECS e atribuirpermissões a eles.

O que é ECS HDFS?

Acessando o bucket como um file system 143

Page 144: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Também é possível atribuir um Grupo padrão para o bucket. O grupo padrão será ogrupo atribuído ao file system raiz '/'. Por exemplo, se o proprietário de seu bucket forhdfs e o grupo padrão for definido como hadoop, '/' será definido para hdfs:hadoopcomo usuário e grupo, respectivamente. Um grupo padrão também é um grupopersonalizado e será exibido na lista de ACLs de grupos personalizados.

Se um grupo padrão não for definido, a raiz do file system não terá nenhum grupo,como exibido a seguir.

drwx---rwx+ - hdfs 0 2015-12-09 12:30 /

Se um grupo padrão "hadoop" for definido, a propriedade e as permissões serãoconforme exibido a seguir.

drwxrwxrwx+ - hdfs hadoop 0 2015-12-09 12:28 /

Essas permissões não são herdadas por diretórios criados na raiz.

Se um grupo padrão não estiver atribuído, o proprietário do bucket (o proprietário dofile system raiz) pode atribuir um grupo ao acessar o HDFS a partir do Hadoop usandohdfs dfs -chgrp e hdfs dfs -chmod.

Superusuário e supergrupo do Hadoop.

O superusuário de um ambiente Hadoop do é o usuário que inicia o namenode,geralmente hdfs ou [email protected]. Em relação ao ECS HDFS, o superusuário é oproprietário do bucket. Portanto, se você quiser que o superusuário do Hadoop tenhaacesso de superusuário ao bucket do ECS, deverá garantir que o bucket pertença aohdfs, ao [email protected] ou ao [email protected], se você estiver usando oActive Directory para autenticar usuários no ambiente do Hadoop.

Para garantir que o client do Hadoop tenha acesso de superusuário, você tambémpode configurar um grupo de superusuários usando a propriedadedfs.permissions.superusergroup em core-site.xml. No modo simples, a verificaçãopara determinar se um usuário é membro do supergrupo é feita no client, verificando ovalor da propriedade dfs.permissions.supergroup hadoop. No modo Kerberos, averificação para determinar se um usuário é membro do supergrupo é feita no servidordo ECS.

Em geral, quando os buckets são configurados para acesso pelo superusuário doHadoop ou por um grupo de superusuários do Hadoop, o superusuário terá acessototal (leitura e gravação) ao bucket. Geralmente, os usuários sem privilégios desuperusuário terão acesso de leitura, mas isso dependerá de como o bucket foi criado.Um usuário não precisa ser usuário de objeto do ECS para ter acesso ao bucket. Onome precisa corresponder a um usuário do AD, do Kerberos ou local do Unix(dependendo do modo de autenticação que está sendo usado).

Uma prática recomendada é garantir que o usuário hdfs ou o principal hdfs seja oproprietário do bucket (superusuário) ou um membro de um grupo de superusuários.

Acesso multiprotocolo (cruzado)O ECS dá suporte à capacidade de gravar dados em um bucket usando o protocolo S3e de disponibilizar esses dados como arquivos via HDFS.

O acesso multiprotocolo (também chamado de acesso cruzado) significa que osobjetos gravados no bucket usando o protocolo S3 podem se tornar o tema dos

O que é ECS HDFS?

144 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 145: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

trabalhos do Hadoop, como o MapReduce. Da mesma forma, diretórios e arquivosgravados pelo HDFS podem ser lidos e modificados utilizando clients do S3.

Para que os dados gravados com S3 possam ser acessados como arquivos, oadministrador do bucket pode definir um grupo padrão no bucket e pode definir aspermissões padrão para arquivos e diretórios pertencentes a esse grupo. Esse grupopadrão do Unix é atribuído aos objetos quando eles são criados no S3 para que, quandoeles forem acessados pelo HDFS, não tenham apenas um proprietário, mas tambémlista de membros do grupo e permissões que permitam o acesso a partir do cluster doHadoop.

Os arquivos criados usando o HDFS e acessados com o protocolo S3 não serãoafetados pelas permissões padrão. Elas somente serão aplicadas quando os arquivosforem criados usando o protocolo S3.

Modo de autenticação Kerberos do HadoopQuando o Kerberos e o ECS Active Directory Server são integrados, o realm doKerberos fornece um só namespace de usuários para que os usuários do Hadoopautenticados com o comando kinit sejam reconhecidos como usuários ECScredenciados.

Em um cluster Hadoop em execução no modo Kerberos, deve haver uma confiançaunidirecional de realm cruzado do realm do Kerberos para o realm do Ative Directoryusado para autenticar seus usuários do ECS.

As seguintes propriedades de tradução de identidade do core-site.xml são usadaspara garantir a tradução adequada dos usuários do Hadoop ao ECS:

l fs.permissions.umask-mode: defina o valor como 022.l fs.viprfs.auth.anonymous_translation: defina o valor como CURRENT_USER.l fs.viprfs.auth.identity_translation: defina o valor como CURRENT_USER_REALM

para que o realm dos usuários seja automaticamente detectado.

Além disso, você deve definir as seguintes propriedades no core-site.xml paradefinir o principal do serviço:

l viprfs.security.principal

Usuário proxyO ECS HDFS dá suporte ao uso do usuário proxy do Hadoop.

Um usuário proxy permite que um superusuário do Hadoop envie trabalhos ou acesse oHDFS em nome de outro usuário. A funcionalidade de usuário proxy pode sercomparada aos recursos de 'usuário efetivo' do Unix/Linux, nos quais a execução deum comando como um usuário pressuporá a identidade de um usuário diferente,conforme identificado pelas configurações de permissão do arquivo executável.

Os usuários proxy são configurados para personificação segura por namespace (ou porbucket). Os usuários de proxy são compatíveis com o modo simples e de Kerberos. Emqualquer modo, o administrador pode restringir as personificações de proxy usando aspropriedades 'hadoop.proxyuser.*.*'.

Usuário de equivalênciaO ECS converte principais de três partes em principais de duas partes.

Geralmente, um principal do Kerberos tem a forma primary/instance@realm, embora ainstância não seja obrigatória; portanto, o principal do primary@realm se aplica atodos os hosts do realm. Se a instância for especificada, ela poderá ser usada para

O que é ECS HDFS?

Modo de autenticação Kerberos do Hadoop 145

Page 146: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

designar um host específico, como joe/[email protected]/[email protected]. Esses dois principais servem para omesmo usuário principal (joe), mas somente devem receber autenticação nos hosts(host1 ou host2).

Esse tipo de principal de usuário é recomendado para oferecer um nível avançado desegurança. Da perspectiva do ECS, todos os principais teriam que ser adicionados aoECS. Esse processo é muito complicado e, portanto, o recurso de usuário deequivalência permite que a autorização do ECS seja realizada por meio de um principalde duas partes (primary@realm), mesmo se principais de três partes estiverem sendousados.

Suporte a SymLinkNo HDFS padrão, um link simbólico que não especifique o URI completo do arquivoaponta para um caminho na mesma instância do HDFS.

A mesma regra é válida para o ECS HDFS. Quando você não especificar o URIcompleto em um symlink, o ECS HDFS usará o namespace e o bucket atuais comoraiz. Para fornecer um symlink para um arquivo fora do namespace e bucket atuais,você deve fornecer o URI completo com o esquema e a autoridade.

Obs.

Hadoop 2.2 não dá suporte a SymLinks.

Migração de um cluster simples para um cluster de Kerberosdo Hadoop

O ECS dá suporte à migração de um ambiente simples do Hadoop a um ambienteHadoop protegido por Kerberos.

Quando o ECS HDFS é integrado a um ambiente do Hadoop que usa segurançasimples, os arquivos e diretórios criados por usuários e processos do Hadooppertencerão a usuários não protegidos. Se, posteriormente, você migrar o cluster doHadoop para usar a segurança do Kerberos, os arquivos e diretórios gravados no ECSHDFS não serão mais acessíveis a esses usuários.

O ECS oferece um recurso integrado de migração que permite que você faça ummapeamento entre shortnames e principais do Kerberos no ECS, para que os arquivosde propriedade de shortnames não protegidos possam ser acessados como o principalmapeado do Kerberos.

Quando você tiver apenas um pequeno número de arquivos que foram gravados porusuários shortname, é possível executar o comando chown para que eles sejampropriedade do principal do Kerberos. No entanto, quando você tiver um grandenúmero de arquivos, a propriedade deles não precisará ser alterada com o recurso demigração.

Esse recurso não é implementado para buckets e você precisará alterar as ACLs debucket para permitir o acesso pelos principais do Kerberos caso dependa do acessopor usuários. No entanto, se você usar a lista de membros do grupo como o meioprincipal para habilitar o acesso, não será necessário alterar as ACLs de bucket.

O ECS permite o uso de grupos para simplificar o acesso aos buckets, arquivos ediretórios. Os grupos sempre usam nomes simples do Unix; portanto, o nome do grupoassociado a um bucket, arquivo ou diretório será o mesmo que acessá-los de umcluster simples ou com proteção do Kerberos. Ao acessar em um ambiente simples, a

O que é ECS HDFS?

146 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 147: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

lista de membros do grupo será determinada na caixa Unix; ao acessar em um clustercom proteção do Kerberos, você poderá configurar a lista de membros do grupoatribuindo o mapeamento.

Ao usar as credenciais do Active Directory, o mapeamento entre os principais do AD eos principais do Unix é feito por meio da remoção do sufixo de domínio; portanto, ousuário [email protected] torna-se hdfs. Esse processo não é tão flexível quanto ouso de mapeamento de principais do Kerberos, que permite mapeamentos como [email protected] para hdfs.

Ao usar grupos com o Active Directory, um provedor de autenticação deve ter sidoconfigurado no ECS para que a associação do grupo possa ser verificada.

Interação do file systemQuando você está interagindo diretamente com o ECS HDFS, você pode observar asseguintes diferenças de interação com o file system do padrão do HDFS:

l Os aplicativos que esperam que o file system seja uma instância doDistributedFileSystem não funcionam. Os aplicativos codificados para trabalhar naimplementação do HDFS integrado exigem alterações para usar o ECS HDFS.

l O ECS HDFS não é compatível com checksum dos dados.

l Quando você usa a função listCorruptFileBlocks, todos os blocks são relatadoscomo OK porque o ECS HDFS não tem conhecimento de blocks corrompidos.

l O fator de replicação é sempre informado como a constante N, onde N=1. Osdados são protegidos pelo SLA do ECS, não pela replicação do Hadoop.

Aplicativos Hadoop compatíveis e não compatíveisO ECS HDFS dá suporte à maioria dos aplicativos do ecossistema do Hadoop.

Aplicativos compatíveisOs seguintes aplicativos do ecossistema do Hadoop são compatíveis:

l HDFS

l MapReduce

l Yarn

l Pig

l Hive

l HBase

Aplicativos não compatíveisOs seguintes aplicativos do ecossistema do Hadoop não são compatíveis:

l HttpFS

l Hue

l Cloudera Impala

O que é ECS HDFS?

Interação do file system 147

Page 148: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

O que é ECS HDFS?

148 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 149: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

CAPÍTULO 21

Criar um bucket para o file system do HDFS

l Criar um bucket para HDFS usando o Portal do ECS........................................ 150l Exemplos de permissões de bucket do Hadoop e do ECS................................. 155

Criar um bucket para o file system do HDFS 149

Page 150: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Criar um bucket para HDFS usando o Portal do ECSUse o Portal do ECS para criar um bucket configurado para uso com o HDFS.

Antes de você começar

l Você deve ser um Namespace Admin ou um System Admin para criar um bucketno portal do ECS.

l Caso seja um Namespace Admin, é possível criar buckets em seu namespace.

l Caso seja um System Admin, é possível criar um bucket que pertença a qualquernamespace.

Você precisará garantir que os serviços e usuários do Hadoop tenham acesso ao filesystem do HDFS (bucket), e que os arquivos e diretórios que eles criaram estejamacessíveis para os usuários e grupos adequados.

Isso pode ser feito das seguintes maneiras:

l Faça com que o proprietário do bucket seja igual ao superusuário do Hadoop,geralmente, "hdfs" ou "[email protected]".

l Habilite o acesso ao bucket por lista de membros do grupo:

n Atribua um grupo padrão ao bucket. As ACLs personalizadas de grupo serãoatribuídas automaticamente.

n Após a criação do bucket, adicione ACLs personalizadas de grupo para todos osoutros grupos que precisem de acesso.

l Habilite o acesso para os indivíduos adicionando ACLs do usuário ao bucket.

l Certifique-se de que os usuários do Hadoop que precisam de acesso desuperusuário ao HDFS façam parte do supergrupo do Hadoop.

Se você quiser que os dados de objeto gravados no bucket usando protocolos deobjeto sejam acessíveis no HDFS, você deverá garantir que um grupo padrão sejaatribuído ao bucket, e que o arquivo padrão e as permissões de diretório sejamdefinidos para o grupo.

Você pode saber mais sobre os usuários e permissões em Acessando o bucket comoum file system na página 143, e as permissões comuns de bucket são exibidas na Exemplos de permissões de bucket do Hadoop e do ECS na página 155.

Procedimento

1. No Portal do ECS, selecione Manage > Buckets > New Bucket.

2. Especifique um nome para o bucket.

Obs.

Você não deve usar sublinhados em nomes de bucket porque eles não sãocompatíveis com a classe URI Java. Por exemplo,viprfs://my_bucket.ns.site/ não funcionará porque esse é um URI inválido e não écompreendido pelo Hadoop.

3. Especifique o namespace ao qual o bucket pertencerá.

4. Selecione um grupo de replicação ou deixe-o em branco para usar o grupo dereplicação padrão para o namespace.

5. Especifique o nome do proprietário do bucket.

Criar um bucket para o file system do HDFS

150 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 151: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Para um bucket do HDFS, geralmente, o proprietário do bucket será "hdfs" ou"[email protected]" para os buckets do Kerberos. O usuário hdfs do Hadoopexigirá privilégios de superusuário no HDFS e isso pode ser feito fazendo dohdfs o proprietário do bucket. Outros usuários do Hadoop também podem exigirprivilégios de superusuário e esses privilégios podem ser concedidos atribuindoos usuários a um grupo e transformando esse grupo em um grupo desuperusuário.

6. Não habilite o CAS.

Obs.

Um bucket destinado para uso como HDFS não pode ser usado para CAS. Ocontrole de CAS é desabilitado quando o file system é habilitado.

7. Habilite quaisquer outros recursos de bucket que sejam necessários.

Você pode habilitar qualquer um dos seguintes recursos em um bucket doHDFS:

l Cota

l Criptografia no servidor

l Pesquisa de metadados

l Access During Outage

l Conformidade (consulte a observação)

l Bucket Retention

Consulte Guia do administrador: Criar e gerenciar buckets para obterinformações sobre cada uma dessas configurações e como defini-las.

Obs.

Um bucket habilitado para conformidade não pode ser gravado usando oprotocolo HDFS. No entanto, os dados gravados usando protocolos de objetopodem ser lidos no HDFS.

8. Selecione a opção Enabled para o file system.

Assim que essa opção estiver habilitada, os controles para configuração de umgrupo padrão para o file system/bucket e para atribuição das permissões dogrupo dos arquivos e diretórios criados no bucket estarão disponíveis.

9. No painel File System, exibido a seguir, especifique um nome para o grupopadrão de bucket.

Criar um bucket para o file system do HDFS

Criar um bucket para HDFS usando o Portal do ECS 151

Page 152: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Esse será o grupo associado ao file system raiz do HDFS e permitirá que osusuários do Hadoop que são membros do grupo acessem o HDFS.

Ele pode ser um grupo, como "hdfs" ou "hadoop", ao qual pertencem osserviços de que você precisa para acessar os dados do HDFS, mas pode terqualquer nome de grupo que faça sentido para sua configuração do Hadoop. Porexemplo, o administrador pode querer que todos os arquivos de S3 sejamtransferidos por upload ao bucket para serem atribuídos ao grupo'S3DataUsers'. Todos os arquivos de S3 terão esse grupo atribuído a eles. No nódo Hadoop, o administrador do Hadoop terá os usuários que são membros dogrupo 'S3DataUsers'. O S3DataUsers pode ser um grupo de Linux ou de ActiveDirectory. Quando os usuários do Hadoop quiserem acessar os dados de S3,eles poderão fazer isso porque os arquivos foram transferidos por upload eatribuídos a esse grupo

Esse grupo deve ser especificado durante a criação do bucket. Caso contrário, ogrupo teria que ser atribuído posteriormente no Hadoop pelo proprietário do filesystem.

10. Defina as permissões padrão para os arquivos e diretórios criados no bucketusando o protocolo de objeto.

Essas configurações são usadas para aplicar as permissões de grupo do Unixaos objetos criados usando protocolos de objeto. Essas permissões serãoaplicadas ao grupo do HDFS (o grupo padrão de bucket) quando o objeto ou odiretório for listado no Hadoop. Você pode consultar Acesso multiprotocolo(cruzado) na página 144 para obter mais informações sobre como configurar ogrupo padrão e as permissões do file system.

a. Defina as permissões do arquivo de grupo clicando nos botões adequados depermissão.

Normalmente, você definirá as permissões Read e Execute.

b. Defina as permissões de diretório do grupo clicando nos botões adequadosde permissão.

Normalmente, você definirá as permissões Read e Execute.

11. Clique em Save para criar o bucket.

Criar um bucket para o file system do HDFS

152 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 153: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Configurar ACLs personalizadas de buckets de grupoO Portal do ECS permite que a ACL de grupo de um bucket seja configurada. As ACLsde bucket podem ser concedidas para um grupo de usuários (ACL personalizada degrupo), para usuários individuais ou para uma combinação dos dois. Por exemplo, vocêpode conceder acesso completo a bucket para um grupo de usuários, mas tambémpode restringir (ou até mesmo negar) o acesso a bucket para usuários individuaisdesse grupo.

Antes de você começar

l Para editar a ACL de grupo de um bucket, você deve ser um Namespace Admin ouum System Admin.

l Caso seja um Namespace Admin, é possível editar as configurações de ACL degrupo dos buckets que pertencem a seu namespace.

l Caso seja um System Admin, é possível editar as configurações de ACL de grupode um bucket que pertence a qualquer namespace.

Quando o bucket for acessado usando o HDFS, usando o acesso multiprotocolo doECS, os membros do grupo Unix poderão acessar o bucket.

Procedimento

1. No portal do ECS, selecione Manage > Buckets.

2. Na tabela Buckets, selecione a ação Edit ACL para o bucket cujasconfigurações deseja alterar.

3. Para configurar a ACL para um grupo personalizado, selecione Custom GroupUser ACLs.

4. Na página Custom Group User ACLs, selecione Add.

Criar um bucket para o file system do HDFS

Configurar ACLs personalizadas de buckets de grupo 153

Page 154: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

5. Informe um nome para o grupo.

Esse nome pode ser um grupo do Unix/Linux ou do Active Directory.

6. Configure as permissões para o grupo.

No mínimo, você precisará atribuir as permissões Read, Write, Execute e ReadACL.

7. Selecione Save.

Configurar as permissões de ACL dos buckets para um usuárioO Portal do ECS permite que a ACL de um bucket seja configurada para um usuário. Oproprietário do bucket é atribuído automaticamente às permissões. Outros usuários doHadoop podem ser atribuídos a ACLs de usuário para permitir o acesso ao bucket/filesystem. Como alternativa, eles podem ter acesso ao bucket por ser um membro dogrupo que foi atribuído a ACLs personalizadas de grupo.

Antes de você começar

l Para editar a ACL de um bucket, você deve ser um Namespace Admin ou umSystem Admin do ECS.

l Caso seja um Namespace Admin, é possível editar as configurações de ACL dosbuckets que pertencem a seu namespace.

l Caso seja um System Admin, é possível editar as configurações de ACL de umbucket que pertence a qualquer namespace.

Criar um bucket para o file system do HDFS

154 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 155: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Procedimento

1. No Portal do ECS, selecione Manage > Buckets.

2. Na tabela Buckets, selecione a ação Edit ACL para o bucket cujasconfigurações deseja alterar.

3. Para configurar as permissões de ACL para um usuário, selecione o botão UserACLs.

4. É possível editar as permissões de um usuário que já tenha permissõesatribuídas ou adicionar um usuário ao qual deseja atribuir permissões.

l Para configurar (ou remover) as permissões de ACL para um usuário que játenha permissões, selecione Edit (ou Remove) na coluna Action da tabelaACL.

l Para adicionar um usuário ao qual deseja atribuir permissões, selecione Add.

O usuário configurado como o proprietário do bucket já terá permissões padrãoatribuídas.

O bucket exibido a seguir é de propriedade dos usuários "hdfs" e, como oproprietário, recebeu controle total. O controle total se traduz em permissõesde leitura/gravação/execução em um ambiente Hadoop/Unix. O usuário "sally"recebeu permissões de leitura e execução para poder acessar o bucket.

Mais informações sobre os privilégios de ACL são apresentadas em Guia do administrador: Criar e gerenciar buckets.

5. Caso tenha adicionado uma ACL, especifique o nome de usuário ao qual aspermissões serão aplicadas.

6. Especifique as permissões que deseja aplicar ao usuário.

7. Selecione Save.

Exemplos de permissões de bucket do Hadoop e do ECSNesta seção, são apresentados exemplos do relacionamento entre os usuários egrupos do Hadoop e a permissão atribuída para usuários e grupos para que elesacessem o bucket por meio de ACLs de usuário do ECS e de ACLs de grupospersonalizados.

Na criação do bucket, o proprietário do bucket e o grupo padrão determinam oproprietário e a atribuição de grupo para o bucket quando ele for acessado usando

Criar um bucket para o file system do HDFS

Exemplos de permissões de bucket do Hadoop e do ECS 155

Page 156: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

HDFS, e as ACLs são atribuídas a eles automaticamente. Um bucket deve sempre terum proprietário; no entanto, um grupo padrão não precisa ser atribuído. Outrosusuários e grupos (chamados de grupos personalizados), exceto o proprietário dobucket e o grupo padrão, podem ser atribuídos a ACLs no bucket. As ACLs atribuídasdessa forma se transformam em permissões para os usuários do Hadoop.

Tabela 16 Exemplos de permissões de bucket para acesso ao file system no modo simples

Usuários e grupos do Hadoop Permissões debucket

Acesso ao bucket/filesystem

Acesso ao bucket usando ACL de grupo

Usuários (serviço)

hdfs, mapred, yarn, hive, pig

Usuários (aplicativos)

sally, fred

Grupos

hdfs (hdfs)

hadoop (hdfs, mapred,yarn, hive, pig)

users (sally, fred)

Supergrupo

hdfs

Proprietário dobucket

hdfs

Grupo padrão

ACL de grupospersonalizados

hadoop, users

ACL de usuário

hdfs(proprietário)

ACLs de grupos personalizadosconfiguradas no bucket parapermitir que os grupos hadoop eusers tenham permissões nobucket/file system raiz

Esse exemplo pressupõe que hdfsseja o superusuário — o usuárioque iniciou o namenode.

Bucket criado pelo usuário s3 — acesso cruzado

Usuários (serviço)

hdfs, mapred, yarn, hive, pig

Usuários (aplicativos)

sally, fred

Grupos

hdfs (hdfs)

hadoop (hdfs, mapred,yarn, hive, pig)

users (sally, fred)

Supergrupo

hdfs

Proprietário dobucket

s3user

Grupo padrão

hadoop

ACL de grupospersonalizados

hadoop (padrão)

ACL de usuário

s3user(proprietário),sally, fred

Quando você quiser que osobjetos gravados por um usuários3 possam ser acessados comoarquivos no HDFS, um grupopadrão deve ser definido(hadoop) para que os serviços eusuários do Hadoop recebampermissões nos arquivos devido àlista de membros do grupo.

O grupo padrão tem ACLs degrupos personalizadosautomaticamente no bucket/filesystem. À medida que o grupopadrão for configurado, o filesystem raiz terá 777:

drwxrwxrwx+ - s3userhadoop 0 2015-12-0912:28 /

Os usuários podem receberacesso adicionando ACLs deusuário ou ACLs de grupospersonalizados para o grupo aoqual os usuários pertencem.

Criar um bucket para o file system do HDFS

156 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 157: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Tabela 17 Exemplo de permissões de bucket para acesso ao file system no modo Kerberos

Usuário do Hadoop Permissões debucket

Acesso ao bucket/filesystem

Usuários (serviço)

[email protected]@REALM.COM,[email protected],[email protected],[email protected]

Usuários (aplicativos)

[email protected], [email protected], [email protected]

Grupos

hdfs([email protected])

hadoop([email protected],[email protected],[email protected],[email protected],[email protected])

users([email protected],[email protected])

Supergrupo

hdfs

Proprietário dobucket

[email protected]

Grupo padrão

hadoop

ACL de grupospersonalizados

hadoop(padrão), users

ACL de usuário

[email protected] (proprietário)

ACLs de grupos personalizadosconfiguradas no bucket parapermitir que os grupos hadoop eusers tenham permissões nobucket/file system raiz

As informações do usuário obtidasdo cluster do Hadoop devem estardisponíveis para que o ECS possaoferecer acesso seguro aobucket. As informações sobreesses metadados são fornecidasem: Exemplos de permissões debucket do Hadoop e do ECS napágina 155 e um exemplo dearquivo de metadados éapresentado aqui.

Criar um bucket para o file system do HDFS

Exemplos de permissões de bucket do Hadoop e do ECS 157

Page 158: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Criar um bucket para o file system do HDFS

158 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 159: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

CAPÍTULO 22

Usar Hortonworks Ambari para configurar oHadoop com o ECS HDFS

l Implementando um cluster Hortonworks com Ambari.......................................160l Faça download do Ambari................................................................................. 160l Fazer download da biblioteca de client do ECS HDFS.......................................160l Configurar um repositório local no qual será implementada a biblioteca de client

do ECS.............................................................................................................. 161l Instalar o servidor do Ambari ............................................................................. 161l Habilitar o pacote de discos Ambari Hadoop ECS..............................................161l Instalar manualmente o agente do Ambari........................................................ 162l Instalar o Hadoop .............................................................................................163

Usar Hortonworks Ambari para configurar o Hadoop com o ECS HDFS 159

Page 160: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Implementando um cluster Hortonworks com AmbariO Ambari torna mais fácil a implementação de um cluster Hortonworks Hadoop e usa oconceito de um pacote de discos para combinar os serviços que são necessários parauma versão específica do Hadoop. O Hortonworks 2.3 (Hadoop 2.7) oferece umpacote de discos personalizado do Hadoop para ECS que simplifica a integração doHadoop ao ECS. Para outras versões do Hortonworks, você pode usar o Ambari emseu modo normal.

O pacote de discos Hortonworks Hadoop ECS (HDP ECS) facilita a integração do ECSHDFS ao Hadoop implementando a biblioteca de client do ECS para todos os nós doHadoop e simplificando a configuração do cluster para usar o ECS HDFS.

Para implementar e configurar o pacote de discos Hortonworks HDP ECS, siga asseguintes etapas:

1. Faça download do Ambari

2. Faça download da biblioteca de client do ECS HDFS

3. Configure um repositório local no qual será implementada a biblioteca de client doECS

4. Instale o servidor do Ambari

5. Habilite o pacote de discos Ambari ECS

6. Instale manualmente o agente do Ambari

7. Instale o cluster do Hadoop

Faça download do AmbariFaça download do Ambari 2.2.

O Ambari pode ser usado para instalar e gerenciar uma distribuição do HDP (Hadoop).O Ambari 2.2 oferece a possibilidade de instalar o pacote de discos HortonworksHadoop ECS

É possível fazer download do repositório do Ambari no seguinte link:

http://hortonworks.com/hdp/downloads/

Você deve fazer download do repositório do Ambari para todos os nós de seu cluster, a fim de permitir que o servidor do Ambari seja instalado no nó do servidor e que o agente do Ambari seja instalado em todos os nós.

Fazer download da biblioteca de client do ECS HDFSFazer download do RPM da biblioteca de client do ECS HDFS a partir da zona desuporte do ECS.

http://support.emc.com

Usar Hortonworks Ambari para configurar o Hadoop com o ECS HDFS

160 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 161: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Configurar um repositório local no qual será implementada abiblioteca de client do ECS

Configure um repositório local no qual o Ambari pode implementar a biblioteca declient do ECS com a pilha do Hadoop.

Antes de você começar

Geralmente, a configuração de um repositório envolve o uso de um gerenciador depacotes para criar um conjunto de metadados sobre os pacotes contidos no diretóriode um repositório, além de oferecer um mecanismo para acessar o diretório dorepositório, como HTTP ou uma rede.

Várias ferramentas podem ser usadas para criar um repositório. As informações sobreo uso de yum para criar um repositório de pacotes são apresentadas aqui.

Procedimento

1. Crie o repositório local.

2. Adicione o RPM da biblioteca de client do ECS ao repositório local.

Instalar o servidor do AmbariInstale o servidor do Ambari.

Comandos básicos para instalar e configurar o servidor do Ambari, conformemencionado neste procedimento. Informações mais completas podem ser encontradasna documentação do Hortonworks aqui.

Procedimento

1. Instale o servidor do Ambari executando o seguinte comando:

yum install ambari-server -y

2. Configure o servidor do Ambari como segue.

ambari-server setup -s

3. Inicie o servidor do Ambari como segue

ambari-server start

Habilitar o pacote de discos Ambari Hadoop ECSO pacote de discos HDP (Hortonworks Hadoop) ECS é desabilitado por padrão e deveser habilitado antes de ser selecionado para a implementação. O pacote de discospode ser habilitado na linha de comando.

Usar Hortonworks Ambari para configurar o Hadoop com o ECS HDFS

Configurar um repositório local no qual será implementada a biblioteca de client do ECS 161

Page 162: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Procedimento

1. Na máquina do servidor Ambari, abra um prompt de comando.

2. Execute o seguinte comando:

ambari-server enable-stack --stack HDP --version 2.3.ECS

Se você deseja habilitar mais de um pacote de discos, poderá incluir a opção --version para cada pacote de discos adicional. Por exemplo:

ambari-server enable-stack --stack HDP --version 2.3.ECS --version <stack_name>

Instalar manualmente o agente do AmbariEste procedimento informa as etapas para instalar o agente do Ambari manualmenteem cada nó.

Antes de você começar

l O repositório do Ambari deve estar presente em cada nó de cluster para instalar oagente no nó.

Procedimento

1. Em um dos hosts secundários do Ambari, abra um prompt de comando.

2. Instale o agente do Ambari executando o seguinte comando:

yum install ambari-agent -y

3. Obtenha o nome de host do nó do servidor Ambari.Você pode fazer isso usando o comando hostname.

4. Edite o arquivo ambari-agent.ini para especificar o nome de host doservidor Ambari.Por exemplo, usando vi, digite:

vi /etc/ambari-agent/conf/ambari-agent.ini

O nome de host do servidor está nos parâmetros [server], exibidos a seguir, e você deve substituir "localhost" pelo nome de host do servidor Ambari.

[server]hostname=localhosturl_port=8440secure_url_port=8441

5. Inicie o agente do Ambari.

ambari-agent start

Usar Hortonworks Ambari para configurar o Hadoop com o ECS HDFS

162 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 163: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

6. Repita essas etapas para todos os nós escravos Ambari. Se você quiser usar onó do servidor Ambari como um nó de dados no cluster do Hadoop, tambémprecisará instalar o agente nessa máquina.

Instalar o HadoopInstale o cluster do Hadoop.

Procedimento

1. Siga o Assistente do Ambari para instalar um cluster do Hadoop.

As etapas a seguir identificam os principais recursos de integração do ECS.

Consulte a documentação do Hortonworks se precisar de esclarecimentos sobreos requisitos de uma etapa.

2. Quando for solicitado a informar o pacote de discos a ser implementado,selecione o pacote de discos HDP ECS.

Por exemplo, HDP 2.3.ECS, conforme exibido a seguir.

3. Especifique o repositório no qual o RPM da biblioteca de client do ECS estálocalizado.

Em seu sistema operacional, substitua http://ECS_CLIENT_REPO/ pelo localdo repositório no qual o RPM da biblioteca de client do ECS está localizado.

Usar Hortonworks Ambari para configurar o Hadoop com o ECS HDFS

Instalar o Hadoop 163

Page 164: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

4. Informe a lista de hosts do cluster do Hadoop e, em Host RegistrationInformation, selecione Perform Manual Registration.

Obs.

Se você criar uma chave SSH e implementá-la em todos os nós, poderá usaresse mecanismo para implementar o agente do Ambari em todos os nós. Comojá o implementamos manualmente, isso não será necessário.

5. Você precisará especificar propriedades para personalizar as operações dosserviços Hadoop Hive e Hbase.

Usar Hortonworks Ambari para configurar o Hadoop com o ECS HDFS

164 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 165: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

a. Para Hive, você precisará especificar um banco de dados Metastore.

Você pode solicitar que o Ambari crie um novo banco de dados (New MySQLDatabase). Nesse caso, você só precisará especificar uma senha para o novobanco de dados. Como alternativa, você pode solicitar que o Ambari utilizeum banco de dados existente.

b. Para Hbase, hbase.rootdir deve apontar para um bucket do ECS (filesystem HDFS).

Por exemplo:

viprfs://mybucket.mynamespace.Site1/apps/hbase/data

6. Você precisará especificar propriedades para personalizar as operações doserviço Hadoop HDFS/ECS.

Como parte da personalização do pacote de discos Hortonworks Hadoop ECS,as propriedades core-site específicas do ECS já foram adicionadas. Algumasdessas propriedades são fixas e nunca precisarão ser modificadas. Algumas sãodefinidas com valores padrão que são adequados para um ambiente de modosimples de Hadoop e só precisarão ser alteradas ao configurar o ambiente parausar a segurança do Kerberos.

Alguns parâmetros são específicos a seu cluster e precisarão ser especificados.

Especifique as propriedades de configuração core-site do ECS/HDFS para aspropriedades ausentes.

a. Especifique um valor para a propriedade padrão do file system: fs.defaultFS

Ou seja

viprfs://<bucket>.<namespace>.<installation>

Usar Hortonworks Ambari para configurar o Hadoop com o ECS HDFS

Instalar o Hadoop 165

Page 166: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Por exemplo:

viprfs://mybucket.mynamespace.Site1

b. Digite os endereços de nó do ECS na propriedadefs.vipr.installation.<site>.hosts (por padrão: fs.vipr.installation.Site1.hosts).

Ela pode ser uma lista de endereços IP separados por vírgulas, por exemplo:

203.0.113.10,203.0.113.11,203.0.113.12

Você pode saber mais sobre as propriedades em Editar o arquivo core-site.xmldo Hadoop na página 171, que descreve as configurações de propriedade deum cluster simples do Hadoop.

Resultado

Depois de instalada, a interface do Ambari para o cluster do Hadoop ECS épersonalizada para que o serviço HDFS seja exibido como o ECS. Além disso, aspropriedades core-site.xml específicas do ECS que, normalmente, precisariam seradicionadas já estarão presentes e os valores padrão já terão sido configurados para amaioria dos parâmetros.A interface personalizada é exibida a seguir:

Usar Hortonworks Ambari para configurar o Hadoop com o ECS HDFS

166 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 167: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

CAPÍTULO 23

Configurar a integração do ECS HDFS a umcluster simples do Hadoop

l Configurar a integração do ECS HDFS a um cluster simples do Hadoop........... 168l Planejar a integração do ECS HDFS e do Hadoop............................................. 168l Obter o pacote de instalação e suporte do ECS HDFS......................................169l Implementar a biblioteca de client do ECS HDFS..............................................169l Editar o arquivo core-site.xml do Hadoop.......................................................... 171l Editar o hbase-site.xml do HBASE.................................................................... 174l Reiniciar e verificar o acesso.............................................................................175

Configurar a integração do ECS HDFS a um cluster simples do Hadoop 167

Page 168: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Configurar a integração do ECS HDFS a um cluster simplesdo Hadoop

Este procedimento descreve como configurar sua distribuição existente do Hadooppara usar a infraestrutura de armazenamento do ECS com o ECS HDFS.

Se você estiver usando a distribuição Hortonworks Ambari, utilize o procedimentodescrito em Implementando um cluster Hortonworks com Ambari na página 160 parainstalar e configurar o Hadoop.

Para executar este procedimento de integração, você deve ter:

l O conhecimento prático da distribuição do Hadoop e das ferramentas associadas.

l As credenciais do Hadoop que permitem fazer log-in nos nós do Hadoop, modificararquivos do sistema do Hadoop, e iniciar e interromper serviços do Hadoop.

As seguintes etapas devem ser seguidas:

1. Planejar a integração do ECS HDFS e do Hadoop na página 168

2. Obter o pacote de instalação e suporte do ECS HDFS na página 169

3. Implementar a biblioteca de client do ECS HDFS na página 169 (Não é necessáriose você tiver usado o Ambari Hortonworks para ECS)

4. Editar o arquivo core-site.xml do Hadoop na página 171

5. Editar o hbase-site.xml do HBASE na página 174

6. Reiniciar e verificar o acesso na página 175

Planejar a integração do ECS HDFS e do HadoopUse esta lista para verificar se você tem as informações necessárias para assegurar aintegração com sucesso.

Tabela 18 Pré-requisitos de configuração do ECS HDFS

Elemento O que fazer

Cluster do Hadoop Verifique se o cluster está instalado e funcionando.

Registre as credenciais de admin para usar posteriormente nesteprocedimento.

Cluster do ECS: nósdo ECS

Registre os endereços IP dos nós do ECS para usar posteriormenteneste procedimento.

Cluster do ECS:bucket

O HDFS precisa que um bucket habilitado para HDFS seja criado emum grupo de replicação do ECS e que o bucket seja acessado comoum file system usando o nome do namespace e do bucket.

Registre o nome do bucket.

Cluster do ECS:namespace do tenant

Verifique se um namespace do tenant está configurado. Registre onome.

Configurar a integração do ECS HDFS a um cluster simples do Hadoop

168 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 169: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Obter o pacote de instalação e suporte do ECS HDFSA biblioteca de client do HDFS do ECS e as ferramentas de suporte do HDFS sãooferecidas em um arquivo ZIP do client do HDFS, hdfsclient-<ECS version>-<version>.zip que você pode baixar das páginas de suporte do ECS emsupport.emc.com.

O arquivo ZIP contém os diretórios /playbooks e /client. Antes de descompactaro arquivo, crie um diretório para armazenar o conteúdo do arquivo (a ferramenta dedescompactação pode fazer isso para você), e extraia o conteúdo para esse diretório.Depois que extrair os arquivos, os diretórios conterão o seguinte:

l /playbooks: contém os guias estratégicos da Ansible para a configuração de umambiente seguro do Hadoop para comunicação com o ECS HDFS.

l /client: Contém os seguintes arquivos:

n Arquivos JAR da biblioteca de client do ECS (ViPPRFS) (viprfs-client-<ECS version>-hadoop-<Hadoop version>.jar): usado paraconfigurar diferentes distribuições do Hadoop.

Implementar a biblioteca de client do ECS HDFSUse este procedimento para colocar o JAR da biblioteca de client do ECS no classpathde cada nó do client do cluster do Hadoop.

Antes de você começar

Obtenha a biblioteca de client do ECS HDFS de sua distribuição do Hadoop no site desuporte da EMC para ECS, como descrito em Obter o pacote de instalação e suportedo ECS HDFS na página 169.

A biblioteca de client do HDFS usa a convenção de nomenclatura viprfs-client-<ECS version>-hadoop-<Hadoop version>.jar a seguir e os JARs para usocom cada versão estão listados na tabela a seguir.

Tabela 19 Biblioteca de client do ECS HDFS

Distribuição doHadoop

Versão JAR do ECS HDFS

Hortonworks HWX 2.0 viprfs-client-<ECS version>-hadoop-2.2.jar

HWX 2.1 viprfs-client-<ECS version>-hadoop-2.3.jar (Hadoop 2.5 - No2.4 client)

HWX 2.2 viprfs-client-<ECS version>-hadoop-2.6.jar

HWX 2.3 viprfs-client-<ECS version>-hadoop-2.7.jar

Configurar a integração do ECS HDFS a um cluster simples do Hadoop

Obter o pacote de instalação e suporte do ECS HDFS 169

Page 170: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Obs.

l Quando você fizer upgrade para uma versão posterior do ECS, deve implementar abiblioteca de client ECS HDFS para a versão para a qual você tiver feito o upgrade.

l Para Hortonworks 2.3 (Hadoop 2.7), você pode usar o Ambari para instalar umaversão do HDP pré-configurada com a biblioteca de client do ECS.

Procedimento

1. Faça log-in em um nó de client do ECS.

2. Execute o comando classpath para obter a lista de diretórios no classpath:

# hadoop classpath3. Copie o JAR da biblioteca de client do ECS em uma das pastas listadas pelo

comando classpath que ocorre depois da pasta /conf.

Por exemplo, geralmente, o resultado do comando classpath é semelhante a:

/usr/hdp/2.2.0.0-1256/hadoop/conf:/usr/hdp/2.2.0.0-1256/hadoop/lib/*:/usr/hdp/2.2.0.0-1256/hadoop/.//*:/usr/hdp/2.2.0.0-1256/hadoop-hdfs/./:/usr/hdp/2.2.0.0-1256/hadoop-hdfs/lib/*:/

Com a pasta /conf listada primeiro. Recomenda-se você adicione o JAR dabiblioteca de client à primeira pasta /lib que, geralmente, é localizadaconforme a tabela a seguir.

Distribuição do ECS Local do classpath (sugerido)

Hortonworks /usr/hdp/<version>/hadoop/lib

4. Repita esse procedimento em cada nó do client do ECS.

5. Atualize a definição de configuração do classpath para MapReduce e YARN,

e também especifique explicitamente o caminho para o JAR de Tez.

Um exemplo dessas definições de configuração é fornecido abaixo:

mapreduce.application.classpath$PWD/mr-framework/hadoop/share/hadoop/mapreduce/*:$PWD/mr-framework/hadoop/share/hadoop/mapreduce/lib/*:$PWD/mr-framework/hadoop/share/hadoop/common/*:$PWD/mr-framework/hadoop/share/hadoop/common/lib/*:$PWD/mr-framework/hadoop/share/hadoop/yarn/*:$PWD/mr-framework/hadoop/share/hadoop/yarn/lib/*:$PWD/mr-framework/hadoop/share/hadoop/hdfs/*:$PWD/mr-framework/hadoop/share/hadoop/hdfs/lib/*:$PWD/mr-framework/hadoop/share/hadoop/tools/lib/*:/usr/hdp/${hdp.version}/hadoop/lib/hadoop-lzo-0.6.0.${hdp.version}.jar:/etc/hadoop/conf/secure:/usr/hdp/2.3.2.0-2950/hadoop/lib/*

yarn.application.classpath$HADOOP_CONF_DIR,/usr/hdp/current/hadoop-client/*,/usr/hdp/current/hadoop-client/lib/*,/usr/hdp/current/hadoop-hdfs-client/*,/usr/hdp/current/hadoop-hdfs-client/lib/*,/usr/hdp/current/hadoop-yarn-client/*,/usr/hdp/current/hadoop-yarn-client/lib/*,/usr/hdp/2.3.2.0-2950/hadoop/lib/*

Configurar a integração do ECS HDFS a um cluster simples do Hadoop

170 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 171: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

tez.cluster.additional.classpath.prefix/usr/hdp/${hdp.version}/hadoop/lib/hadoop-lzo-0.6.0.${hdp.version}.jar:/etc/hadoop/conf/secure:/usr/hdp/2.3.2.0-2950/hadoop/lib/viprfs-client-2.2.0.0-hadoop-2.7.jar

Editar o arquivo core-site.xml do HadoopUse este procedimento para atualizar o core-site.xml com as propriedadesnecessárias para integrar o ECS HDFS a um cluster do Hadoop que usa o modo deautenticação simples.

Antes de você começar

l Sempre é preferível adicionar/gerenciar essas propriedades usando umamanagement UI do Hadoop para reduzir a chance de erros e garantir que essasalterações sejam persistentes em todo o cluster. Editar manualmente os arquivosem vários nós do Hadoop é uma tarefa trabalhosa e suscetível a erros. Você deveter um conjunto de credenciais de usuário que permitem que você faça log-in namanagement UI de sua distribuição.

l Se você modificar o core-site.xml diretamente, é necessário ter um conjuntode credenciais do usuário que permitem que você faça log-in nos nós do Hadoop emodifique o core-site.xml.

Algumas propriedades são específicas do ECS e, normalmente, devem ser adicionadasao core-site.xml. Se você estiver usando o pacote de discos Hortonworks AmbariHadoop ECS, os parâmetros específicos do ECS já estarão presentes.

Se você deseja editar o core-site.xml diretamente, o local do core-site.xmldependerá da distribuição que você está usando, conforme exibido na tabela a seguir.

Tabela 20 locais do core-site.xml

Distribuiçãodo Hadoop

local do core-site.xml Nós paraatualizar

Hortonworks /etc/hadoop/conf Todos os nós

O core-site.xml reside em cada nó do cluster do Hadoop. Você deve modificar asmesmas propriedades em cada instância. Você pode fazer uma alteração em um nó, eusar o comando de cópia segura (scp) para copiar o arquivo para os outros nós nocluster.

Consulte a referência da propriedade core_site.xml para obter mais informações sobrecada propriedade que precisa definir.

Procedimento

1. Se você estiver usando uma interface de gerenciamento, como Ambari. Façalog-in como administrador e acesse a página de configuração do HDFS.

2. Se você pretende fazer as alterações editando o core-site.xmlmanualmente, siga estas etapas

a. Faça log-in em um dos nós do HDFS onde core-site.xml está localizado.

b. Faça uma cópia de backup de core-site.xml.

cp core-site.xml core-site.backup

Configurar a integração do ECS HDFS a um cluster simples do Hadoop

Editar o arquivo core-site.xml do Hadoop 171

Page 172: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

c. Usando um editor de texto de sua preferência, abra core-site.xml paraedição.

3. Adicione as seguintes propriedades e valores para definir as classes Java queimplementam o file system do ECS HDFS:

<property><name>fs.viprfs.impl</name><value>com.emc.hadoop.fs.vipr.ViPRFileSystem</value></property>

<property><name>fs.AbstractFileSystem.viprfs.impl</name><value>com.emc.hadoop.fs.vipr.ViPRAbstractFileSystem</value></property>

4. Adicione a propriedade fs.vipr.installations. No exemplo a seguir, o valor serádefinido como Site1.

<property><name>fs.vipr.installations</name><value>Site1</value>

</property>

5. Adicione a propriedade fs.vipr.installation.[installation_name].hosts como uma lista separada por vírgulas de nós de dados do ECS ou de endereços IP do balanceador de carga. No exemplo a seguir, installation_name é definido como Site1.

<property><name>fs.vipr.installation.Site1.hosts</name><value>203.0.113.10,203.0.113.11,203.0.113.12</value>

</property>

6. Adicione a propriedade fs.vipr.installation.[installation_name], e a configure com um dos seguintes valores:

Opção Descrição

dinâmico Use ao acessar os nós de dados do ECS diretamente sem umbalanceador de carga.

fixo Use ao acessar nós de dados do ECS por meio de um balanceadorde carga.

No exemplo a seguir, installation_name é definido como Site1.

<property><name>fs.vipr.installation.Site1.resolution</name><value>dynamic</value>

</property>

a. Se você definir fs.vipr.installation.[installation_name].resolution como dinâmico, adicione a propriedade fs.vipr.installation.[installation_name].resolution.dynamic.time_to_live_ms para especificar a frequência de consulta ao ECS para a lista de nós ativos.

Configurar a integração do ECS HDFS a um cluster simples do Hadoop

172 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 173: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

No exemplo a seguir, installation_name é definido como Site1.

<property><name>fs.vipr.installation.Site1.resolution.dynamic.time_to_live_ms</name><value>900000</value></property>

7. Localize a propriedade fs.defaultFS e modifique o valor para especificar o URI do file system do ECS.

Essa configuração é opcional e é possível especificar a URL completa do filesystem para se conectar ao ECS ViPRFS.

Use o seguinte formato: viprfs://<bucket_name.namespace.installation_name, onde

l bucket_name: O nome do bucket que contém os dados que deseja usarquando você executa os trabalhos de Hadoop. Se você estiver fazendo aexecução em modo de autenticação simples, o proprietário do bucket deveráconceder permissão para Everybody. No exemplo a seguir, bucket_name édefinido como mybucket.

l namespace: O namespace do tenant onde o bucket_name reside. Noexemplo a seguir, o namespace é definido como mynamespace.

l installation_name: O valor especificado pela propriedade fs.vipr.installations.No exemplo a seguir, installation_name é definido como Site1.

<property><name>fs.defaultFS</name><value>viprfs://mybucket.mynamespace.Site1/</value>

</property>

8. Localize fs.permissions.umask-mode e defina o valor como 022.

Em algumas configurações, essa propriedade pode ainda não existir. Se ela nãoexistir, adicione-a.

<property><name>fs.permissions.umask-mode</name><value>022</value>

</property>

9. Adicione a propriedade fs.viprfs.auth.anonymous_translation, usada paraespecificar o proprietário e o grupo de um arquivo ou um diretório criado usandoo HDFS.

Obs.

Antes do ECS 2.2, esse parâmetro era usado para atribuir um proprietário aosarquivos e diretórios que foram criados sem um proprietário (arquivos compropriedade anônima), para que o usuário atual tivesse permissão para modificá-los. Os arquivos e os diretórios não são mais criados anonimamente e têm umproprietário atribuído a eles de acordo com a configuração desse parâmetro.

Configurar a integração do ECS HDFS a um cluster simples do Hadoop

Editar o arquivo core-site.xml do Hadoop 173

Page 174: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Opção Descrição

LOCAL_USER Use esta configuração com um cluster do Hadoop que usea segurança simples. Atribui o usuário do Unix e o grupo decluster do Hadoop a arquivos e diretórios recém-criados.

CURRENT_USER Use esta configuração para um cluster do Hadoop quepassou por Kerberos. Atribui o principal do Kerberos([email protected]) como o proprietário do arquivo oudo diretório, e usa o grupo que foi atribuído como padrãopara o bucket.

NONE (padrão) (Preterido) Anteriormente, indicava que nenhummapeamento de objetos com propriedade anônima deviaser realizado ao usuário atual.

<property><name>fs.viprfs.auth.anonymous_translation</name><value>LOCAL_USER</value>

</property>

10. Adicione a propriedade fs.viprfs.auth.identity_translation. Oferece um modo deatribuir usuários a um realm quando o Kerberos não estiver presente.

Opção Descrição

CURRENT_USER_REALM Use esta configuração para um cluster do Hadoopque passou por Kerberos. Quando ela forespecificada, o realm será detectadoautomaticamente.

NONE (padrão) Use esta configuração com um cluster do Hadoopque use a segurança simples. Com essaconfiguração, o ECS HDFS não realiza aconversão do realm.

FIXED_REALM (Preterido) Oferece a capacidade de embutir orealm do usuário usando a propriedadefs.viprfs.auth.realm.

<property><name>fs.viprfs.auth.identity_translation</name><value>NONE</value>

</property>

11. Salve core-site.xml.

12. Atualize o core-site.xml nos nós necessários no cluster do Hadoop.

13. Use o Hortonworks Ambari para atualizar o core-site.xml com o mesmoconjunto de propriedades e valores.

Editar o hbase-site.xml do HBASEQuando você usa o HBASE com o ECS HDFS, deve configurar o hbase.rootdir dohbase-site.xml com o mesmo valor da propriedade fs.defaultFS de core-site.xml.

hbase-site.xml está localizado em algum dos seguintes locais:

Configurar a integração do ECS HDFS a um cluster simples do Hadoop

174 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 175: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Tabela 21 locais de hbase-site.xml

Distribuição doHadoop

local do hbase-site.xml

Hortonworks /etc/hbase/conf/

Procedimento

1. Abra hbase-site.xml.

2. Configure a propriedade de hbase.rootdir com o mesmo valor que fs.defaultFSadicionando /hbase como sufixo.

3. Salve suas alterações.

4. Reinicie os serviços para sua distribuição.

Distribuição do Hadoop Descrição

Hortonworks# bin/start-hbase.sh

Exemplo 1 entrada hbase.rootdir

<property> <name>hbase.rootdir</name> <value>viprfs://testbucket.s3.testsite/hbase</value></property>

Reiniciar e verificar o acessoAssim que você realizar as etapas de configuração, reinicie os serviços do Hadoop everifique se tem acesso ao HDFS.

Quando o sistema estiver configurado para usar o ECS HDFS, o HDFS NameNodepoderá falhar ao ser inicializado. Quando o ECS HDFS estiver configurado como oHDFS, o ECS HDFS realizará todas as funções de NameNode e não exigirá que oNameNode esteja ativo.

Procedimento

1. Reinicie os serviços do Hadoop.

Geralmente, eles incluirão HDFS, MapReduce, Yarn e HBase.

Se você estiver reiniciando os serviços manualmente, consulte a tabela a seguir.

Distribuição do Hadoop Comandos

Hortonworks # stop-all.sh# start-all.sh

Configurar a integração do ECS HDFS a um cluster simples do Hadoop

Reiniciar e verificar o acesso 175

Page 176: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

2. Teste a configuração executando o seguinte comando para obter uma lista dediretórios:

# hdfs dfs -ls viprfs://mybucket.mynamespace.Site1/

13/12/13 22:20:37 INFO vipr.ViPRFileSystem: InitializedViPRFS for viprfs://mybucket.mynamespace.Site1/

Se configurou fs.defaultFS, você pode usar:# hdfs dfs -ls /

Configurar a integração do ECS HDFS a um cluster simples do Hadoop

176 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 177: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

CAPÍTULO 24

Configurar a integração do ECS HDFS a umcluster seguro do Hadoop (que passou porKerberos)

l Integrar o cluster seguro do Hadoop ao ECSHDFS .......................................... 178l Planejar a migração de um cluster simples para um cluster de Kerberos........... 178l Mapear nomes de grupos..................................................................................179l Configurar os nós do ECS com o principal do serviço do ECS...........................179l Proteger o bucket do ECS usando metadados.................................................. 183l Edite o core-site.xml......................................................................................... 187l Reiniciar e verificar o acesso............................................................................. 191

Configurar a integração do ECS HDFS a um cluster seguro do Hadoop (que passou por Kerberos) 177

Page 178: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Integrar o cluster seguro do Hadoop ao ECSHDFSEste procedimento descreve como integrar sua distribuição existente do Hadoop, queé protegida por Kerberos, ao ECSHDFS.

Se você tiver configurado o ECS HDFS para trabalhar com um cluster do Hadoopconfigurado para autenticação simples, e tiver migrado o cluster do Hadoop para usara autenticação Kerberos, você também poderá usar este procedimento.

Antes de executar as etapas de integração:

l Verifique se um Key Distribution Center do Kerberos está instalado e configuradopara lidar com a autenticação dos principais do serviço do Hadoop. Se estiverusando o Active Directory para autenticar os usuários do ECS, será necessárioconfigurar uma confiança de realm cruzado entre o real do Kerberos e o real deusuários do ECS. A ajuda para configurar o Key Distribution Center do Kerberos e aconfiança é oferecida em Orientação sobre a configuração do Kerberos na página194.

l Certifique-se de que você criou um bucket para o file system do HDFS (consulte Criar um bucket para HDFS usando o Portal do ECS na página 150)

l Certifique-se de que você leu as diretrizes para planejar a integração (consulte Planejar a integração do ECS HDFS e do Hadoop na página 168).

l Certifique-se de que você fez download do pacote de instalação e suporte(consulte Obter o pacote de instalação e suporte do ECS HDFS na página 169).

Para integrar o ECS HDFS a seu cluster seguro do Hadoop, execute as seguintestarefas:

1. Planejar a migração de um cluster simples para um cluster de Kerberos na página178

2. Mapear nomes de grupos na página 179

3. Configurar os nós do ECS com o principal do serviço do ECS na página 179

4. Proteger o bucket do ECS usando metadados na página 183

5. Reiniciar e verificar o acesso na página 191

Planejar a migração de um cluster simples para um clusterde Kerberos

O ECS dá suporte à migração de um cluster do Hadoop que usa a segurança simplespara um cluster do Hadoop protegido por Kerberos.

Se você estiver migrando de um ambiente simples para um ambiente seguro, deveráler a seção sobre migração: Migração de um cluster simples para um cluster deKerberos do Hadoop na página 146.

Em geral, o recurso de migração do ECS permitirá que os arquivos e diretórios sejamacessados perfeitamente por usuários do Kerberos. No entanto, aplicam-se asseguintes observações:

l Se você migrar seu cluster do Hadoop para Kerberos e, em seguida, reiniciar ocluster, processos como o MapReduce não poderão acessar os diretórios que elecriou anteriormente. Você deve esperar até que a configuração do ECS HDFSusando este procedimento para reiniciar o Hadoop.

Configurar a integração do ECS HDFS a um cluster seguro do Hadoop (que passou por Kerberos)

178 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 179: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

l Para que os usuários e os processos possam acessar o bucket, eles precisarão sermembros do grupo que tem acesso ao bucket, ou você precisará alterar as ACLsde bucket para que os usuários do Kerberos tenham acesso.

Mapear nomes de grupos

O ECS precisa conseguir mapear os detalhes dos grupos para os principais serviçosHadoop, como hdfs, hive, etc. Se você estiver usando o Active Directory, asinformações dos grupos podem ser encontradas a partir de duas origens diferentes: osmetadados de bucket ou o Active Directory. O ECS determina qual origem usar apartir de uma configuração de parâmetro de configuração em /opt/storageos/conf/hdfssvc.conf arquivo de configuração na [hdfs.fs.request] seção.

Se você quiser que o ECS use metadados do bucket para obter informações de grupo(se disponível) em vez de Active Directory, defina o parâmetro como segue:

[hdfs.fs.request]prefer_secure_metadata_bucket_for_groups = true

Se você quiser que o ECS determine as informações dos grupos do Active Directoryem vez de usar metadados do bucket, defina o parâmetro como segue:

[hdfs.fs.request]prefer_secure_metadata_bucket_for_groups = false

O valor padrão é verdadeiro, portanto, se esse valor não for definido, o ECSdeterminará detalhes dos grupos para um principal do Kerberos a partir dos metadadosdo bucket. Se você fizer uma alteração, deve reiniciar o dataheadsvc.

Configurar os nós do ECS com o principal do serviço do ECSO principal de serviço do ECS e o arquivo keytab correspondente devem residir emcada nó de dados do ECS. Use os guias estratégicos da Ansible para automatizar essasetapas.

Antes de você começar

Você deve ter os seguintes itens antes de concluir este procedimento:

l Acesso aos guias estratégicos da Ansible. Obtenha os guias estratégicos doAnsible do ECS pacote de software do HDFS conforme descrito em Obter opacote de instalação e suporte do ECS HDFS na página 169.

l A lista de endereços IP dos nós do ECS.

l Endereço IP do Key Distribution Center.

l A resolução DNS na qual você executa esse script deve ser igual à resolução DNSdo host do Hadoop; caso contrário, o vipr/_HOST@REALM não funcionará.

O ECS oferece conteúdo reutilizável da Ansible chamado de 'funções', que consistemem scripts Python, listas de tarefas com base em YAML e arquivos de modelo.

l vipr_kerberos_config: configura um nó do ECS para o Kerberos.

l vipr_jce_config: configura um nó de dados do ECS para criptografia de forçailimitada com a instalação de arquivos de política da JCE.

Configurar a integração do ECS HDFS a um cluster seguro do Hadoop (que passou por Kerberos)

Mapear nomes de grupos 179

Page 180: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

l vipr_kerberos_principal: adquire um principal do serviço para um nó do ECS.

Neste procedimento, o Ansible será executado usando o contêiner do Docker utilitárioque é instalado com o ECS.

Procedimento

1. Faça log-in no Nó 1 do ECS e copie o hdfsclient-<ECS version>-<version>.zip para esse nó.

Por exemplo:

/home/admin/ansible

Você pode usar wget para obter o pacote diretamente de support.emc.com ouvocê pode usar scp se você baixado o pacote em outra máquina.

2. Descompacte o arquivo hdfsclient-<ECS version>-<version>.zip.

As etapas desse procedimento usam os guias estratégicos contidos no diretórioviprfs-client-<ECS version>-<version>/playbooks/samples etambém estão contidas em viprfs-client-<ECS version>-<version>/playbooks/samples/README.md.

3. Edite inventory.txt no playbooks/samples diretório para consultar osECS nós de dados e o servidor do KDC.

As entradas padrão são exibidas a seguir.

[data_nodes]192.168.2.[100:200]

[kdc]192.168.2.10

4. Faça download do arquivamento de políticas JCE "unlimited" em oracle.com.bre faça sua extração para um UnlimitedJCEPolicy diretório em viprfs-client-<ECS version>-<version>/playbooks/samples

Obs.

Essa etapa só deve ser realizada se você estiver usando o tipo de criptografiaforte.

O Kerberos pode ser configurado para usar um tipo de criptografia sólida, comoAES-256. Nessa situação, o JRE dos nós do ECS precisa ser reconfigurado parausar a política 'unlimited'.

5. Inicie o contêiner do utilitário no Nó 1 do ECS e disponibilize os guiasestratégicos da Ansible para o contêiner.

a. Carregue a imagem de contêiner do utilitário.

Por exemplo:

sudo docker load -i /opt/emc/caspian/checker/docker/images/utilities.txz

Configurar a integração do ECS HDFS a um cluster seguro do Hadoop (que passou por Kerberos)

180 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 181: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

b. Obtenha a identidade da imagem do docker.

Por exemplo:

admin@provo-lilac:~> sudo docker images

O resultado lhe dará a identidade de imagem:

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZEutilities 1.5.0.0-403.cb6738e 186bd8577a7a 2 weeks ago 738.5 MB

c. Inicie e insira a imagem dos utilitários.

Por exemplo:

sudo docker run -v /opt/emc/caspian/fabric/agent/services/object/main/log:/opt/storageos/logs -v /home/admin/ansible/viprfs-client-3.0.0.0.85325.a05145b/playbooks:/ansible --name=ecs-tools -i -t --privileged --net=host 186bd8577a7a /bin/bash

No exemplo, o local ao qual os guias estratégicos da Ansible foramdescompactados /home/admin/ansible/viprfs-client-3.0.0.0.85325.a05145b/playbooks é mapeado para o /ansible diretório no contêiner do utilitário.

6. Altere para o diretório de trabalho no contêiner.

Por exemplo:

cd /ansible

7. Copie o arquivo krb5.conf do Key Distribution Center no diretório funcional.

8. Instale as funções fornecidas pela Ansible.

ansible-galaxy install -r requirements.txt -f

9. Edite o generate-vipr-keytabs.yml conforme necessário e configure onome do domínio.

Por exemplo:

[root@nile3-vm22 samples]# cat generate-vipr-keytabs.yml---#### Generates keytabs for ViPR/ECS data nodes.### - hosts: data_nodes serial: 1 roles: - role: vipr_kerberos_principal kdc: "{{ groups.kdc | first }}" principals:

Configurar a integração do ECS HDFS a um cluster seguro do Hadoop (que passou por Kerberos)

Configurar os nós do ECS com o principal do serviço do ECS 181

Page 182: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

- name: vipr/[email protected]: keytabs/[email protected]

Nesse exemplo, o valor padrão (vipr/[email protected]) foi substituídopor (vipr/[email protected]) e o domínio é MA.EMC.COM.

10. Execute o comando a seguir.

export ANSIBLE_HOST_KEY_CHECKING=False

11. Execute o guia estratégico da Ansible para gerar keytabs.

ansible-playbook -v -k -i inventory.txt --user admin –b --become-user=root generate-vipr-keytabs.yml

12. Edite o arquivo setup-vipr-kerberos.yml conforme necessário.

O conteúdo do arquivo padrão é exibido a seguir.

# cat setup-vipr-kerberos.yml

---#### Configures ViPR/ECS for Kerberos authentication.# - Configures krb5 client# - Installs keytabs# - Installs JCE policy###

- hosts: data_nodes

roles:- role: vipr_kerberos_config

krb5:config_file: krb5.conf

service_principal:name: vipr/[email protected]: keytabs/[email protected]

- role: vipr_jce_configjce_policy:

name: unlimitedsrc: UnlimitedJCEPolicy/

Nesse exemplo, o valor padrão (vipr/[email protected]) foi substituídopor (vipr/[email protected]) e o domínio é MA.EMC.COM.

Obs.

Remova a função "vipr_jce_config" se não estiver usando um tipo decriptografia forte.

13. Execute o guia estratégico da Ansible para configurar os nós de dados com oprincipal do serviço do ECS.

Configurar a integração do ECS HDFS a um cluster seguro do Hadoop (que passou por Kerberos)

182 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 183: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Verifique se o diretório /ansible/samples/keytab existe e se o arquivokrb5.conf está no diretório funcional /ansible/samples.

ansible-playbook -v -k -i inventory.txt --user admin –b --become-user=root setup-vipr-kerberos.yml

Verifique se o principal do serviço correto do ECS, um por nó de dados, foicriado (no Key Distribution Center):

# kadmin.local -q "list_principals" | grep viprvipr/[email protected]/[email protected]

Verifique se o keytab correto foi gerado e armazenado no local: /data/hdfs/krb5.keytab de todos os nós de dados do ECS. É possível usar o comando"strings" do keytab para extrair o texto legível e verificar se ele contém oprincipal correto. Por exemplo:

dataservice-10-247-199-69:~ # strings /data/hdfs/krb5.keytabMA.EMC.COMviprnile3-vm42.centera.lab.emc.com

Nesse caso, o principal é vipr/nile3-vm42.centera.lab.emc.com.

Proteger o bucket do ECS usando metadadosPara garantir que o bucket do ECS possa funcionar com um cluster seguro do Hadoop,o bucket deverá ter acesso às informações sobre o cluster.

Em um cluster seguro do Hadoop, o principal do Kerberos deve ser associado a umnome de usuário do HDFS. Além disso, o usuário deve ser associado a um grupo doUnix. No cluster do Hadoop, o NameNode coleta essas informações dos nós doHadoop e dos arquivos de configuração (core-site.xml e hdfs.xml).

Para permitir que os nós ECS determinem essas informações e validem as solicitaçõesde client, os seguintes dados devem ser disponibilizados aos nós do ECS:

l Mapeamento do usuário do Kerberos a usuários e grupos do Unix

l Grupo de superusuários

l Configurações do usuário proxy

Os dados são disponibilizados aos nós do ECS como um conjunto de pares de valoralfabético mantidos como metadados.

Usuários do KerberosAs informações sobre todos os usuários do Kerberos (não usuários do AD) queprecisam ter acesso de Hadoop a um bucket precisam ser transferidos por upload aoECS. Os seguintes dados são necessários:

l Nome do principal

l Nome abreviado do principal (nome mapeado)

l Grupos de principais

Se existirem 10 principais do Kerberos em seu nó do Hadoop, você deverá criar 30pares de valor alfabético no arquivo de entrada JSON. Todos os nomes devem ser

Configurar a integração do ECS HDFS a um cluster seguro do Hadoop (que passou por Kerberos)

Proteger o bucket do ECS usando metadados 183

Page 184: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

exclusivos; portanto, você precisará atribuir um nome exclusivamente para cada nomede principal, nome abreviado de principal e grupos de principais. O ECS espera umprefixo e um sufixo constantes para os nomes de entradas JSON.

O prefixo necessário para todas as entradas de usuários do Kerberos é"internal.kerberos.user", e os três sufixos possíveis são name, shortname e groups.Um exemplo é exibido a seguir.

{"name": "internal.kerberos.user.hdfs.name","value": "hdfs-cluster999@EXAMPLE_HDFS.EMC.COM"

},{

"name": "internal.kerberos.user.hdfs.shortname","value": "hdfs"

},{

"name": "internal.kerberos.user.hdfs.groups","value": "hadoop,hdfs"

},

O valor entre o prefixo e o sufixo pode ser qualquer um, desde que ele identifique aentrada exclusivamente. Por exemplo, você pode usar:

"name": "internal.kerberos.user.1.name","name": "internal.kerberos.user.1.shortname","name": "internal.kerberos.user.1.groups",

Os principais podem ser associados a diferentes usuários. Por exemplo, o usuárioprincipal "rm" geralmente é associado aos usuários "yarn" usando a configuraçãoauth_to_local para o cluster do Hadoop, como a seguir.

RULE:[2:$1@$0](rm@EXAMPLE_HDFS.EMC.COM)s/.*/yarn/

Assim, para qualquer principal que seja associado a um principal diferente (porexemplo, o principal rm é associado ao principal yarn), você deverá usar o principal'mapeado' no valor do nome abreviado; portanto, a entrada do principal rm seria:

{"name": "internal.kerberos.user.rm.name","value": "rm@EXAMPLE_HDFS.EMC.COM"},{"name": "internal.kerberos.user.yarn.shortname","value": "yarn@EXAMPLE_HDFS.EMC.COM"},{"name": "internal.kerberos.user.yarn.groups","value": "hadoop"},

SupergrupoVocê precisará informar ao ECS que o grupo de usuários Linux dos nós do Hadoop teráprivilégios de superusuário com base em seu grupo. Somente uma entrada do arquivo

Configurar a integração do ECS HDFS a um cluster seguro do Hadoop (que passou por Kerberos)

184 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 185: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

de entrada JSON será esperada para a designação de supergrupo. Ela deve sersemelhante a esta:

{ "name": "dfs.permissions.supergroup", "value": "hdfs"}

Configurações proxyPara obter suporte a proxy, você precisará identificar todas as configurações proxyque são permitidas para cada aplicativo Hadoop, onde aplicativo significa um dosaplicativos compatíveis com Hadoop, por exemplo, hive, hbase etc.

No exemplo a seguir, o suporte a proxy para o aplicativo hive é concedido aos usuáriosque são membros do grupo s3users (grupo do AD ou do Linux), e o aplicativo hivepode ser executado em qualquer um dos hosts do cluster do Hadoop. Portanto, aentrada JSON para isso seria dois pares de valor alfabético, um para a configuraçãodos hosts e um para a configuração de grupos.

{ "name": "hadoop.proxyuser.hive.hosts", "value": "*"},{ "name": "hadoop.proxyuser.hive.groups", "value": "s3users"}

O arquivo completoOs três tipos de metadados devem ser combinados em um só arquivo JSON. Oformato do arquivo JSON é apresentado a seguir.

{ "head_type": "hdfs", "metadata": [ { "name": "METADATANAME_1", "value": "METADATAVALUE_1" }, { "name": "METADATANAME_2", "value": "METADATAVALUE_2" },

:

{ "name": "METADATANAME_N", "value": "METADATAVALUE_N" } ]}

Obs.

O último par de valor alfabético não têm um caractere ',' final.

Um exemplo de um arquivo JSON é exibido em: Proteger metadados do bucket napágina 216.

Configurar a integração do ECS HDFS a um cluster seguro do Hadoop (que passou por Kerberos)

Proteger o bucket do ECS usando metadados 185

Page 186: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Buckets seguros e não segurosAssim que os metadados forem carregados em um bucket, ele será chamado de"bucket seguro" e você deve ter principais do Kerberos para acessá-lo. Umasolicitação de um nó não seguro do Hadoop será rejeitada. Se os metadados não foremcarregados, o bucket não será seguro e uma solicitação de um nó seguro do Hadoopserá rejeitada.

O erro a seguir será visto se você tentar acessar um bucket seguro em um cluster nãoseguro. Uma mensagem semelhante será vista se você tentar acessar um bucket nãoseguro a partir de um cluster seguro.

[hdfs@sandbox ~]$ hadoop fs -ls -R viprfs://hdfsBucket3.s3.site1/ls: ViPRFS internal error (ERROR_FAILED_TO_PROCESS_REQUEST).

Carregar valores de metadados no ECS usando a API REST de gerenciamentoOs valores de metadados necessários para proteger um bucket do ECS para uso comum cluster seguro do Hadoop podem ser oferecidos executando os comandos da APIREST ECS Management.

Antes de você começar

Você deve ter credenciais de administrador de sistema do ECS.

Se o administrador do Hadoop NÃO for o administrador do ECS, o administrador doHadoop precisará trabalhar em conjunto com o administrador de sistema do ECS paracarregar os metadados seguros no bucket.

O administrador do Hadoop pode disponibilizar o arquivo de metadados JSON para oadministrador de sistema ECS que, por sua vez, pode usar este procedimento paracarregar os metadados. Se as duas funções forem assumidas pelo mesmo usuário,esse usuário será responsável por criar o arquivo de metadados JSON e carregá-lo nobucket do ECS.

Procedimento

1. Crie o arquivo JSON que contém os metadados descritos em: Proteger o bucketdo ECS usando metadados na página 183.

2. Faça log-in usando suas credenciais de administrador de sistema para obter umtoken de autenticação que pode ser usado ao executar comandos degerenciamento do ECS.

Você pode executar esse comando com curl. No exemplo a seguir, seránecessário substituir <username>:<password> pelas credenciais deadministrador de sistema do ECS e especificar o endereço IP ou o nome de hostde um nó do ECS.

TOKEN=$(curl -s -k -u <username>:<password> -D - -o /dev/nullhttps://<ECS node IP or hostname>:4443/login | grep X-SDS-AUTH-TOKEN | tr -cd '\40-\176')

3. Execute o comando da API REST ECS Management para implementar osmetadados.

A API é: PUT object/bucket/<bucketname>/metadata. Um exemplo deexecução desse comando com curl é apresentado a seguir.

curl -s -k -X PUT -H "$TOKEN" -H "Accept: application/json" -H "Content-Type: application/json" -T <bucketDetails>.json

Configurar a integração do ECS HDFS a um cluster seguro do Hadoop (que passou por Kerberos)

186 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 187: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

https:/<hostname>:4443/object/bucket/<bucketname>/metadata?namespace=<namespace>

Você precisará substituir:

l <username> por um nome de usuário de administrador de sistema do ECS.

l <password> pela senha do nome de usuário de administrador de sistema doECS especificado.

l <bucketname> pelo nome do bucket você está usando para dados do HDFS.

l <hostname> pelo endereço IP ou o nome de host de um nó do ECS.

l <bucketdetails> pelo nome do arquivo JSON que contém pares de valoralfabético.

l <namespace> pelo nome do namespace no qual o bucket reside.

Assim que forem implementados, os metadados estarão disponíveis para todosos nós do ECS.

Edite o core-site.xmlUse este procedimento para atualizar o core-site.xml com as propriedades quesão necessárias ao usar o ECS HDFS com um cluster do ECS que usa o modo deautenticação Kerberos.

Antes de você começar

l Sempre é preferível adicionar/gerenciar essas propriedades usando umamanagement UI do Hadoop para reduzir a chance de erros e garantir que essasalterações sejam persistentes em todo o cluster. Editar manualmente os arquivosem vários nós do Hadoop é uma tarefa trabalhosa e suscetível a erros. Você deveter um conjunto de credenciais de usuário que permitem que você faça log-in namanagement UI de sua distribuição.

l Se você modificar o core-site.xml diretamente, é necessário ter um conjuntode credenciais do usuário que permitem que você faça log-in nos nós do Hadoop emodifique o core-site.xml.

Algumas propriedades são específicas do ECS e, normalmente, devem ser adicionadasao core-site.xml. Se você estiver usando o pacote de discos Hortonworks AmbariHadoop ECS, os parâmetros específicos do ECS já estarão presentes.

Se você deseja editar o core-site.xml diretamente, o local do core-site.xmldependerá da distribuição que você está usando, conforme exibido na tabela a seguir.

Tabela 22 Local dos arquivos core-site.xml

Distribuiçãodo ECS

local do core-site.xml Nós paraatualizar

Hortonworks /etc/hadoop/conf Todos os nós

core-site.xml reside em cada nó do cluster do Hadoop, e você deve modificar asmesmas propriedades em cada instância. Você pode fazer uma alteração em um nó, eusar o comando de cópia segura (scp) para copiar o arquivo para os outros nós nocluster. Como prática recomendada, faça backup do core-site.xml antes de iniciaro procedimento de configuração.

Configurar a integração do ECS HDFS a um cluster seguro do Hadoop (que passou por Kerberos)

Edite o core-site.xml 187

Page 188: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Consulte a referência da propriedade core_site.xml para obter mais informações sobrecada propriedade que precisa definir.

Procedimento

1. Se você estiver usando uma interface de gerenciamento, como HortonworksAmbari, faça log-in como administrador e acesse a página de configuração doHDFS.

2. Se você pretende fazer as alterações editando o core-site.xmlmanualmente, siga as etapas a seguir.

a. Faça log-in em um dos nós do HDFS onde core-site.xml está localizado.

b. Faça uma cópia de backup de core-site.xml.

cp core-site.xml core-site.backupc. Usando um editor de texto de sua preferência, abra core-site.xml para

edição.

3. Adicione as seguintes propriedades e valores para definir as classes Java queimplementam o file system do ECS HDFS:

<property><name>fs.viprfs.impl</name><value>com.emc.hadoop.fs.vipr.ViPRFileSystem</value></property>

<property><name>fs.AbstractFileSystem.viprfs.impl</name><value>com.emc.hadoop.fs.vipr.ViPRAbstractFileSystem</value></property>

4. Adicione a propriedade fs.vipr.installations. No exemplo a seguir, o valor serádefinido como Site1.

<property><name>fs.vipr.installations</name><value>Site1</value>

</property>

5. Adicione a propriedade fs.vipr.installation.[installation_name].hosts como uma lista separada por vírgulas de nós de dados do ECS ou de endereços IP do balanceador de carga. No exemplo a seguir, installation_name é definido como Site1.

<property><name>fs.vipr.installation.Site1.hosts</name><value>203.0.113.10,203.0.113.11,203.0.113.12</value>

</property>

6. Adicione a propriedade fs.vipr.installation.[installation_name], e a configure com um dos seguintes valores:

Opção Descrição

dinâmico Use ao acessar os nós de dados do ECS diretamente sem umbalanceador de carga.

Configurar a integração do ECS HDFS a um cluster seguro do Hadoop (que passou por Kerberos)

188 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 189: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Opção Descrição

fixo Use ao acessar nós de dados do ECS por meio de um balanceadorde carga.

No exemplo a seguir, installation_name é definido como Site1.

<property><name>fs.vipr.installation.Site1.resolution</name><value>dynamic</value>

</property>

a. Se você definir fs.vipr.installation.[installation_name].resolution como dinâmico, adicione a propriedade fs.vipr.installation.[installation_name].resolution.dynamic.time_to_live_ms para especificar a frequência de consulta ao ECS para a lista de nós ativos.

No exemplo a seguir, installation_name é definido como Site1.

<property><name>fs.vipr.installation.Site1.resolution.dynamic.time_to_live_ms</name><value>900000</value></property>

7. Localize a propriedade fs.defaultFS e modifique o valor para especificar o URIdo file system do ECS .

Essa configuração é opcional e é possível especificar a URL completa do filesystem para se conectar ao ECS ViPRFS.

Use o seguinte formato: viprfs://<bucket_name.namespace.installation_name, onde

l bucket_name: O nome do bucket que contém os dados que deseja usarquando você executa os trabalhos de Hadoop. Se você estiver fazendo aexecução em modo de autenticação simples, o proprietário do bucket deveráconceder permissão para Everybody. No exemplo a seguir, bucket_name édefinido como mybucket.

l namespace: O namespace do tenant onde o bucket_name reside. Noexemplo a seguir, o namespace é definido como mynamespace.

l installation_name: O valor especificado pela propriedade fs.vipr.installations.No exemplo a seguir, installation_name é definido como Site1.

<property><name>fs.defaultFS</name><value>viprfs://mybucket.mynamespace.Site1/</value>

</property>

8. Localize fs.permissions.umask-mode e defina o valor como 022.

Em algumas configurações, essa propriedade pode ainda não existir. Se ela nãoexistir, adicione-a.

<property><name>fs.permissions.umask-mode</name>

Configurar a integração do ECS HDFS a um cluster seguro do Hadoop (que passou por Kerberos)

Edite o core-site.xml 189

Page 190: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

<value>022</value></property>

9. Adicione a propriedade fs.viprfs.auth.anonymous_translation, usada paraespecificar o proprietário e o grupo de um arquivo ou um diretório criado usandoo HDFS.

Obs.

Antes do ECS 2.2, esse parâmetro era usado para atribuir um proprietário aosarquivos e diretórios que foram criados sem um proprietário (arquivos compropriedade anônima), para que o usuário atual tivesse permissão para modificá-los. Os arquivos e os diretórios não são mais criados anonimamente e têm umproprietário atribuído a eles de acordo com a configuração desse parâmetro.

Opção Descrição

LOCAL_USER Use esta configuração com um cluster do Hadoop que usea segurança simples. Atribui o usuário do Unix e o grupo decluster do Hadoop a arquivos e diretórios recém-criados.

CURRENT_USER Use esta configuração para um cluster do Hadoop quepassou por Kerberos. Atribui o principal do Kerberos([email protected]) como o proprietário do arquivo oudo diretório, e usa o grupo que foi atribuído como padrãopara o bucket.

NONE (padrão) (Preterido) Anteriormente, indicava que nenhummapeamento de objetos com propriedade anônima deviaser realizado ao usuário atual.

<property><name>fs.viprfs.auth.anonymous_translation</name><value>LOCAL_USER</value>

</property>

10. Adicione a propriedade fs.viprfs.auth.identity_translation, e configure-a paraCURRENT_USER_REALM, que associa ao escopo do usuário registrado viakinit.

<property><name>fs.viprfs.auth.identity_translation</name><value>CURRENT_USER_REALM</value>

</property>

11. Adicione a propriedade viprfs.security.principal. Esta propriedade informa o KeyDistribution Center quem é o usuário do ECS.

O nome do principal pode incluir "_HOST", que é substituído automaticamentepelo FQDN real do nó de dados no momento da execução.

<property><name>viprfs.security.principal</name><value>vipr/[email protected]</value>

</property>

Configurar a integração do ECS HDFS a um cluster seguro do Hadoop (que passou por Kerberos)

190 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 191: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

12. adicione o local armazenado em cache dos tíquetes do Kerberos.

Por exemplo:

<property><name>hadoop.security.kerberos.ticket.cache.path</name> <value>/tmp/<krbcc_1000</value></property>

o valor pode ser obtido no resultado do comando klist.

13. Use o Hortonworks Ambari para atualizar o core-site.xml com o mesmoconjunto de propriedades e valores.

Reiniciar e verificar o acessoAssim que você realizar as etapas de configuração, reinicie os serviços do Hadoop everifique se tem acesso ao HDFS.

Quando o sistema estiver configurado para usar o ECS HDFS, o HDFS NameNodepoderá falhar ao ser inicializado. Quando o ECS HDFS estiver configurado como oHDFS, o ECS HDFS realizará todas as funções de NameNode e não exigirá que oNameNode esteja ativo.

Procedimento

1. Reinicie os serviços do Hadoop.

Geralmente, eles incluirão HDFS, MapReduce, Yarn e HBase.

Se você estiver reiniciando os serviços manualmente, consulte a tabela a seguir.

Distribuição do Hadoop Comandos

Hortonworks # stop-all.sh# start-all.sh

2. Teste a configuração executando o seguinte comando para obter uma lista dediretórios:

# kinit <service principal>

# hdfs dfs -ls viprfs://mybucket.mynamespace.Site1/

13/12/13 22:20:37 INFO vipr.ViPRFileSystem: Initialized ViPRFS for viprfs://mybucket.mynamespace.Site1/

Configurar a integração do ECS HDFS a um cluster seguro do Hadoop (que passou por Kerberos)

Reiniciar e verificar o acesso 191

Page 192: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Configurar a integração do ECS HDFS a um cluster seguro do Hadoop (que passou por Kerberos)

192 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 193: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

CAPÍTULO 25

Orientação sobre a configuração do Kerberos

l Orientação sobre a configuração do Kerberos.................................................. 194l Configurar um ou mais novos nós do ECS com o principal do serviço do ECS...197

Orientação sobre a configuração do Kerberos 193

Page 194: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Orientação sobre a configuração do KerberosOferece orientação sobre a configuração do Kerberos no cluster do Hadoop.

Configurar o KDC do KerberosConfigure o Key Distribution Center do Kerberos seguindo estas etapas.

Procedimento

1. Instale o krb5-workstation.

Use o comando:

yum install -y krb5-libs krb5-server krb5-workstation

2. Modifique /etc/krb5.conf e altere o nome e as extensões do realm.

3. Modifique /var/kerberos/krb5kdc/kdc.conf e altere o nome do real paracorresponder ao do seu.

4. Se seu KDC for um VM, recrie /dev/random (caso contrário, sua próximaetapa de criação do banco de dados do KDC demorará muito).

a. Remova usando:

# rm -rf /dev/random

b. Recrie usando:

# mknod /dev/random c 1 9

5. Crie o banco de dados do KDC.

# kdb5_util create -s

Obs.

Se você cometeu um erro com os principais iniciais, por exemplo, executou "kdb5_util create -s" incorretamente, poderá ser necessário excluir esses principais explicitamente no diretório /var/kerberos/krb5kdc/.

6. Modifique kadm5.acl para especificar os usuários com permissãoadministrativa.

*/[email protected] *

Orientação sobre a configuração do Kerberos

194 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 195: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

7. Modifique /var/kerberos/krb5kdc/kdc.conf e retire todos os tipos decriptografia exceto des-cbc-crc:normal. Além disso, modifique o nome dorealm.

8. Desligue iptables e selinux em todos os nós (nós do servidor KDC e do Hadoop).

9. Inicie os serviços do KDC e crie um principal administrativo local.

kadmin.local

# service krb5kdc start

# service kadmin start

# /usr/kerberos/sbin/kadmin.local-q "addprinc root/admin"

# kinit root/admin

10. Copie o arquivo krb5.conf em todos os nós do Hadoop.

Sempre que fizer uma modificação em qualquer um dos arquivos deconfiguração, reinicie os serviços a seguir e copie o arquivo krb5.conf no hostrelevante do Hadoop e nos nós relevantes do ECS.

11. Reinicie os serviços.

service krb5kdc restart

service kadmin restart

12. Acesse o seguinte link para configurar um KDC do Kerberos com base emetapas: http://www.centos.org/docs/4/html/rhel-rg-en-4/s1-kerberos-server.html.

Configurar a autenticação de usuários do AD para KerberosQuando você tem um ambiente do Hadoop configurado com a segurança do Kerberos,é possível configurá-lo para se autenticar no domínio do AD do ECS.

Verifique se há um usuário do AD para seu ADREALM. O usuário "detscr" doADREALM CAMBRIDGE.ACME.COM é usado no exemplo a seguir. Crie uma confiançaunidirecional entre o KDCREALM e o ADREALM, como exibido no exemplo. Não tentevalidar esse realm usando "netdom trust".

No Active DirectoryÉ necessário configurar uma confiança de realm cruzado unidirecional do realm doKDC (Key Distribution Center) ao realm do AD. Para isso, execute os seguintescomandos em um prompt de comando.

ksetup /addkdc KDC-REALM <KDC hostname>netdom trust KDC-REALM /Domain:AD-REALM /add /realm /passwordt:<TrustPassword>ksetup /SetEncTypeAttr KDC-REALM <enc_type>

Por exemplo:

ksetup /addkdc LSS.EMC.COM lcigb101.lss.emc.comnetdom trust LSS.ACME.COM /Domain:CAMBRIDGE.ACME.COM /add /realm /

Orientação sobre a configuração do Kerberos

Configurar a autenticação de usuários do AD para Kerberos 195

Page 196: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

passwordt:ChangeMeksetup /SetEncTypeAttr LSS.ACME.COM DES-CBC-CRC

Nesse exemplo, foi utilizada a criptografia des-cbc-crc. No entanto, essa é umacriptografia fraca que só foi escolhida para fins de demonstração. Independentementeda criptografia escolhida, o AD, o KDC e os clients devem ser compatíveis com ela.

Em seu KDC (como root)Para configurar uma confiança unidirecional, será necessário criar um principal doserviço "krbtgt". Para fazer isso, use o nome krbtgt/KDC-REALM@AD-REALM. Dê aele a senha ChangeMe ou qualquer outra senha especificada no argumento /passwordt anterior.

1. No KDC (como root)

# kadminkadmin: addprinc -e "des-cbc-crc:normal" krbtgt/[email protected]

Obs.

Durante a implementação, é melhor limitar os tipos de criptografia ao tipoescolhido. Assim que essa opção estiver funcionando, será possível incluir tiposadicionais de criptografia.

2. Adicione as seguintes regras à propriedade hadoop.security.auth_to_local de seucore-site.xml:

RULE:[1:$1@$0](^.*@CAMBRIDGE\.ACME\.COM$)s/^(.*)@CAMBRIDGE\.ACME\.COM$/$1/gRULE:[2:$1@$0](^.*@CAMBRIDGE\.ACME\.COM$)s/^(.*)@CAMBRIDGE\.ACME\.COM$/$1/g

3. Verifique se o AD ou o LDAP está configurado corretamente com o servidorKerberos (KDC). O usuário deve poder executar o comando "kinit" para um usuáriodo AD e relacionar o diretório local do HDFS.

Obs.

Se você estiver configurando seu cluster do Hadoop e o ECS para autenticaçãopor meio de um AD, crie contas locais de usuários Linux em todos os nós doHadoop para o usuário do AD com o qual você executará o comando kinit. Alémdisso, verifique se todos os hosts do Hadoop executaram o comando kinit usandoesse usuário do AD. Por exemplo, se você executou o comando kinit comouserX@ADREALM, crie o userX como um usuário local em todos os hosts doHadoop e execute o kinit usando: 'kinit userX@ADREALM' em todos os hostsdesse usuário.

No exemplo a seguir, nós nos autenticaremos como "[email protected]"; portanto, criaremos um usuário chamado "detscr"e executaremos o kinit como esse usuário no host do Hadoop, como exibido a seguir:

[root@lviprb159 ~]# su detscr [detscr@lviprb159 root]$ whoami detscr [detscr@lviprb159 root]$ kinit [email protected]

Orientação sobre a configuração do Kerberos

196 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 197: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Password for [email protected]: [detscr@lviprb159 root]$ klist Ticket cache: FILE:/tmp/krb5cc_1010 Default principal: [email protected] Valid starting Expires Service principal 12/22/14 14:28:27 03/02/15 01:28:30 krbtgt/[email protected] renew until 09/17/17 15:28:27 [detscr@lviprb159 root]$ hdfs dfs -ls /Found 4 itemsdrwx---rwx - yarn hadoop 0 2014-12-23 14:11 /app-logsdrwx---rwt - hdfs 0 2014-12-23 13:48 /appsdrwx---r-x - mapred 0 2014-12-23 14:11 /mapreddrwx---r-x - hdfs 0 2014-12-23 14:11 /mr-history

Configurar um ou mais novos nós do ECS com o principal doserviço do ECS

Quando você estiver adicionando um ou mais novos nós a uma configuração do ECS, oprincipal do serviço do ECS e o keytab correspondente devem ser implementados paraos novos nós.

Antes de você começar

l Este procedimento pressupõe que você tenha realizado anteriormente estasetapas, e que os guias estratégicos de Ansible já foram instalados e estãoacessíveis.

Você deve ter os seguintes itens antes de concluir este procedimento:

l A lista de endereços IP dos nós do ECS.

l Endereço IP do Key Distribution Center.

l A resolução DNS na qual você executa esse script deve ser igual à resolução DNSdo host do Hadoop; caso contrário, o vipr/_HOST@REALM não funcionará.

Procedimento

1. Log-in no Nó 1 e verifique se as ferramentas foram instaladas anteriormente eos guias estratégicos estão disponíveis.

O exemplo usado anteriormente era:

/home/admin/ansible/viprfs-client-<ECS version>-<version>/playbooks

2. Editar inventory.txt no playbooks/samples diretório para adicionar osECS nós adicionados.

As entradas padrão são exibidas a seguir.

[data_nodes]192.168.2.[100:200]

[kdc]192.168.2.10

Orientação sobre a configuração do Kerberos

Configurar um ou mais novos nós do ECS com o principal do serviço do ECS 197

Page 198: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

3. Inicie o contêiner do utilitário no Nó 1 do ECS e disponibilize os guiasestratégicos da Ansible para o contêiner.

a. Carregue a imagem de contêiner do utilitário.

Por exemplo:

sudo docker load -i /opt/emc/caspian/checker/docker/images/utilities.txz

b. Obtenha a identidade da imagem do docker.

Por exemplo:

admin@provo-lilac:~> sudo docker images

O resultado lhe dará a identidade de imagem:

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZEutilities 1.5.0.0-403.cb6738e 186bd8577a7a 2 weeks ago 738.5 MB

c. Inicie e insira a imagem dos utilitários.

Por exemplo:

sudo docker run -v /opt/emc/caspian/fabric/agent/services/object/main/log:/opt/storageos/logs -v /home/admin/ansible/viprfs-client-3.0.0.0.85325.a05145b/playbooks:/ansible --name=ecs-tools -i -t --privileged --net=host 186bd8577a7a /bin/bash

No exemplo, o local ao qual os guias estratégicos da Ansible foramdescompactados /home/admin/ansible/viprfs-client-3.0.0.0.85325.a05145b/playbooks é mapeado para o /ansible diretório no contêiner do utilitário.

4. Altere para o diretório de trabalho no contêiner.

Por exemplo:

cd /ansible

5. Execute o guia estratégico da Ansible para gerar keytabs.

ansible-playbook -v -k -i inventory.txt generate-vipr-keytabs.yml

6. Execute o guia estratégico da Ansible para configurar os nós de dados com oprincipal do serviço do ECS.

Orientação sobre a configuração do Kerberos

198 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 199: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Verifique se o diretório /ansible/samples/keytab existe e se o arquivokrb5.conf está no diretório funcional /ansible/samples.

ansible-playbook -v -k -i inventory.txt setup-vipr-kerberos.yml

Verifique se o principal do serviço correto do ECS, um por nó de dados, foicriado (no Key Distribution Center):

# kadmin.local -q "list_principals" | grep viprvipr/[email protected]/[email protected]

Verifique se o keytab correto foi gerado e armazenado no local: /data/hdfs/krb5.keytab de todos os nós de dados do ECS. É possível usar o comando"strings" do keytab para extrair o texto legível e verificar se ele contém oprincipal correto. Por exemplo:

dataservice-10-247-199-69:~ # strings /data/hdfs/krb5.keytabMA.EMC.COMviprnile3-vm42.centera.lab.emc.com

Nesse caso, o principal é vipr/nile3-vm42.centera.lab.emc.com.

Orientação sobre a configuração do Kerberos

Configurar um ou mais novos nós do ECS com o principal do serviço do ECS 199

Page 200: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Orientação sobre a configuração do Kerberos

200 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 201: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

CAPÍTULO 26

Solução de problemas

l Solução de problemas...................................................................................... 202l Verificar se o AD/LDAP está corretamente configurado com o cluster seguro do

Hadoop............................................................................................................ 202l Reiniciar serviços após a configuração do hbase.............................................. 203l Falhas do teste do Pig: unable to obtain Kerberos principal..............................203l Permissão negada para o usuário do AD...........................................................203l Erros de permissões.........................................................................................204l Falha ao processar solicitação.......................................................................... 207l Ativar o registro e a depuração do Kerberos no lado do client.......................... 207l Depurar o Kerberos no KDC............................................................................. 208l Eliminar a precisão do relógio...........................................................................208

Solução de problemas 201

Page 202: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Solução de problemasEsta área oferece soluções temporárias para os problemas que podem ser encontradosao configurar o ECS HDFS.

Verificar se o AD/LDAP está corretamente configurado como cluster seguro do Hadoop

É necessário verificar se o AD ou o LDAP estão configurados corretamente com ocluster KDC (Key Distribution Center) do Kerberos e do Hadoop.

Quando sua configuração estiver correta, será possível executar o comando "kinit"para um usuário do AD/LDAP. Além disso, se o cluster do Hadoop for configurado parao HDFS local, será necessário verificar se é possível listar o diretório local HDFS antesde o ECS ser adicionado ao cluster.

Solução temporáriaSe não for possível se autenticar com sucesso como um usuário do AD/LDAP no KDCdo cluster do Hadoop, será necessário abordar esse problema antes de avançar àconfiguração de ECS do Hadoop.

Um exemplo de log-in feito com sucesso é exibido a seguir:

[kcluser@lvipri054 root]$ kinit [email protected] for [email protected]:

[kcluser@lvipri054 root]$ klistTicket cache: FILE:/tmp/krb5cc_1025Default principal: [email protected]

Valid starting Expires Service principal04/28/15 06:20:57 04/28/15 16:21:08 krbtgt/[email protected] renew until 05/05/15 06:20:57

Se o log-in anterior não for feito com sucesso, é possível investigar usando a seguintelista de verificação:

l Verifique a correção e sintaxe do arquivo /etc/krb5.conf do servidor KDC. Osrealms podem distinguir maiúsculas de minúsculas nos arquivos de configuração equando usados com o comando kinit.

l Verifique se o arquivo /etc/krb5.conf do servidor KDC está copiado em todosos nós do Hadoop.

l Verifique se a confiança unidirecional entre o AD/LDAP e o servidor KDC foi feitacom sucesso. Consulte a documentação adequada para saber como fazer isso.

l Verifique se o tipo de criptografia do servidor do AD/LDAP corresponde ao doservidor KDC.

l Verifique se /var/kerberos/krb5kdc/kadm5.acl e /var/kerberos/krb5kdc/kdc.conf estão corretos.

l Tente fazer log-in como um principal do serviço no servidor KDC para indicar se opróprio servidor KDC está funcionando corretamente.

Solução de problemas

202 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 203: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

l Tente fazer log-in como o mesmo usuário do AD/LDAP diretamente no servidorKDC. Se isso não funcionar, provavelmente o problema estará diretamente noservidor KDC.

Reiniciar serviços após a configuração do hbaseApós editar a propriedade hbase.rootdir no hbase-site.xml, o serviço hbase não éreiniciado corretamente.

Solução temporáriaAs etapas a seguir devem ser realizadas quando esse problema acontecer naHortonworks para colocar o hbase-master em execução.

1. Conecte-se à CLI do zookeeper.

hbase zkcli

2. Remova o diretório hbase.

rmr /hbase

3. Reinicie o serviço hbase.

Falhas do teste do Pig: unable to obtain Kerberos principalO teste do Pig falha com o seguinte erro: "Info:Error: java.io.IOException: Unable toobtain the Kerberos principal" mesmo depois de executar o comando kinit como umusuário do AD, ou com o erro "Unable to open iterator for alias firstten".

Esse problema ocorre porque o Pig (<0,13) não gera um token de delegação para oViPRFS como um armazenamento secundário.

Solução temporáriaAcrescente viprfs://bucket.ns.installation/ à configuraçãomapreduce.job.hdfs-servers. Por exemplo:

set mapreduce.job.hdfs-servers viprfs://KcdhbuckTM2.s3.site1

Permissão negada para o usuário do ADAo executar um aplicativo como um usuário do AD, um erro "Permission denied" éemitido.

Solução temporáriaConfigure as permissões do diretório /user como:

hdfs dfs -chmod 1777 /user

Solução de problemas

Reiniciar serviços após a configuração do hbase 203

Page 204: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Erros de permissõesErros de permissões suficientes podem ocorrer por vários motivos. Você pode recebê-los ao executar um comando hadoop fs ou vê-los no registro do aplicativo, como oregistro de mapreduce ou hive.

Erros INSUFFICIENT_PERMISSIONS

No exemplo a seguir, o principal "jhs" tentou criar um diretório (/tmp) e recebeu umerro INSUFFICIENT_PERMISSIONS. Nesse caso, as permissões do diretório raiz nãopermitiram que esse usuário criasse um diretório. A causa desse erro deve ser óbviapara a maioria dos usuários.

root@lrmk042:/etc/security/keytabs# hadoop fs -mkdir /tmp15/11/08 21:03:09 ERROR vipr.ViPRFileSystemClientBase: Permissions failure for request: User: jhs/lrmk042.lss.emc.com@HOP171_HDFS.EMC.COM (auth:KERBEROS), host: hdfsBucket3.s3.site1, namespace: s3, bucket: hdfsBucket315/11/08 21:03:09 ERROR vipr.ViPRFileSystemClientBase: Request message sent: MkDirRequestMessage[kind=MKDIR_REQUEST,namespace=s3,bucket=hdfsBucket3,path=/tmp,hdfsTrustedStatus=HDFS_USER_NOT_TRUSTED,permissions=rwxr-xr-x,createParent=true]mkdir: java.security.AccessControlException: ERROR_INSUFFICIENT_PERMISSIONS

root@lrmk042:/etc/security/keytabs# hadoop fs -ls -d /drwxr-xr-x - hdfs hdfs 0 2015-11-08 16:58 /root@lrmk042:/etc/security/keytabs#

Quando a causa de um erro de permissões suficientes não for óbvia no client, pode sernecessário analisar os registros do servidor. Comece com dataheadsvc-error.logpara localizar o erro. Abra uma janela de terminal para cada nó do ECS e edite oarquivo dataheadsvc-error.log. Localize o erro que corresponde ao horário emque o erro foi visto no client.

Falha ao obter credenciais

Quando você vir um erro como este no dataheadsvc-error.log:

2015-11-08 22:36:21,985 [pool-68-thread-6] ERROR RequestProcessor.java (line 1482) Unable to get group credentials for principal 'jhs@HOP171_HDFS.EMC.COM'. This principal will default to use local user groups. Error message: java.io.IOException: Failed to get group credentials for 'jhs@HOP171_HDFS.EMC.COM', status=ERROR

Essa mensagem não é um erro. A mensagem significa que o servidor tentou procurar onome do principal para ver se há algum grupo do Active Directory armazenado emcache para o usuário principal que fez a solicitação. Para um usuário do Kerberos, esseprocesso exibirá esse erro.

O erro informará o nome de usuário que fez a solicitação. Anote-o.

Erro de acesso ao bucket

Solução de problemas

204 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 205: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Se um usuário estiver solicitando o acesso a um bucket, mas não tiver permissões deACL, você pode ver essa pilha de erros em dataheadsvc-error.log.

2015-11-08 21:35:26,652 [pool-68-thread-1] ERROR BucketAPIImpl.java (line 220) Getting bucket failed withcom.emc.storageos.objcontrol.object.exception.ObjectAccessException: you don't have GET_KEYPOOL_ACL permission to this keypoolat com.emc.storageos.objcontrol.object.exception.ObjectAccessException.createExceptionForAPI(ObjectAccessException.java:286)at com.emc.storageos.data.object.ipc.protocol.impl.ObjectAccessExceptionParser.parseFrom(ObjectAccessExceptionParser.java:61)

Nesse caso, você deve adicionar uma ACL explícita de usuário para o bucket ouadicionar uma ACL personalizada de grupo para um dos grupos dos quais o usuário émembro.

Erro de acesso a object

Outro tipo de erro de permissão é um erro de acesso a object. O acesso aos objects(arquivos e diretórios) não devem ser confundidos com o acesso a um bucket. Umusuário pode ter controle total (leitura/gravação/exclusão) de um bucket, mas podereceber um erro INSUFFICIENT_PERMISSIONS porque não tem acesso a um ou maisobjects do caminho que está tentando acessar. A pilha a seguir é um exemplo de umerro de acesso a object:

2015-11-08 22:36:21,995 [pool-68-thread-6] ERROR FileSystemAccessHelper.java (line 1364) nfsProcessOperation failed to process path: mr-history/done2015-11-08 22:36:21,995 [pool-68-thread-6] ERROR ObjectControllerExceptionHelper.java (line 186) Method nfsGetSMD failed due to exceptioncom.emc.storageos.data.object.exception.ObjectControllerException: directory server returns error ERROR_ACCESS_DENIEDat com.emc.storageos.data.object.FileSystemAccessLayer.FileSystemAccessHelper.nfsProcessOperation(FileSystemAccessHelper.java:1368)at com.emc.storageos.data.object.FileSystemAccessLayer.FileSystemAccessHelper.getSystemMetadata(FileSystemAccessHelper.java:466)at com.emc.storageos.data.object.FileSystemAccessLayer.FileSystemAccessLayer.getSystemMetadata(FileSystemAccessLayer.java:532)at com.emc.storageos.data.object.blob.client.BlobAPI.getStat(BlobAPI.java:1294)at com.emc.vipr.engine.real.RealBlobEngine.stat(RealBlobEngine.java:1976)at com.emc.vipr.engine.real.RealBlobEngine.stat(RealBlobEngine.java:802)at com.emc.vipr.hdfs.fs.RequestProcessor.accept(RequestProcessor.java:499)at com.emc.vipr.hdfs.net.ConnectionManager$RequestThread.run(ConnectionManager.java:136)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)at java.util.concurrent.ThreadPoolExecutor

Solução de problemas

Erros de permissões 205

Page 206: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

$Worker.run(ThreadPoolExecutor.java:617)at java.lang.Thread.run(Thread.java:745)

Os dois pontos importantes a serem observados aqui são a ação solicitada (stat) e ocaminho do object (mr-history/done). Observe que o caractere de barra à esquerdanão é exibido; portanto, o caminho real é /mr-history/done. Agora, você tem trêsinformações que são importantes para depuração:

l principal do usuário (jhs@HOP171_HDFS.EMC.COM)

l ação (stat é hadoop fs -ls)

l caminho (/mr-history/done)

Há duas abordagens para depuração adicional:

l Depuração de registros blobsvc na página 206

l Depuração de clients do Hadoop na página 206

Depuração de registros blobsvcUma solicitação de permissão com falha terá um erro de blobsvc como este:

2015-11-08 22:36:21,994[TaskScheduler-BlobService-COMMUNICATOR-ParallelExecutor-5892]ERROR ObjectAclChecker.java (line 101) not permit, cred jhs@HOP171_HDFS.EMC.COM[hadoop]false1 withaction GET_OBJECT_ACL on object with acl/owner/group user={hdfs@hop171_hdfs.emc.com=[FULL_CONTROL]},groups={hdfs=[READ_ACL, EXECUTE, READ]}, other=[], owner=hdfs@hop171_hdfs.emc.com, group=hdfs

Apenas procure o texto 'not permit'. Isso nos informa o usuário que fez a solicitação(jhs), o proprietário do object (hdfs), o grupo de object (hdfs) e as permissões doproprietário, do grupo e outras. O que esse processo não nos informa é o object realque falhou na verificação de permissão. No nó do Hadoop, torne-se o principal hdfs,comece com o caminho e trabalhe na árvore, o que levará a outro método dedepuração, analisando o file system do Hadoop a partir do client.

Depuração de clients do HadoopQuando um erro de permissão é recebido, você deve saber o principal do usuário quefez a solicitação, qual ação se refere à solicitação, e quais itens estão sendosolicitados. Em nosso exemplo, o usuário jhs recebeu um erro ao listar o diretório /mr-history/done. Você pode fazer algumas análises para determinar a causa raiz. Se vocêtiver acesso à conta de superusuário, execute essas etapas usando essa conta.

root@lrmk042:/var/log/hadoop-mapreduce/mapred# hadoop fs -ls -d /mr-history/donedrwxrwxrwt - mapred hadoop 0 2015-11-08 16:58 /mr-history/done

Isso mostra que o principal jhs deveria ter tido acesso para listar esse diretório.

root@lrmk042:/var/log/hadoop-mapreduce/mapred# hadoop fs -ls -d /mr-historydrwxr-xr-x - hdfs hdfs 0 2015-11-08 16:58 /mr-history

Solução de problemas

206 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 207: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Da mesma forma, esse diretório não tem problemas de acesso

root@lrmk042:/var/log/hadoop-mapreduce/mapred# hadoop fs -ls -d /drwxr-x--- - hdfs hdfs 0 2015-11-08 16:58 /

O problema é que o diretório raiz pertence ao hdfs, o nome do grupo é hdfs, mas asoutras configurações são '-' (0). O usuário que fez a solicitação é jhs@REALM, e esseusuário é membro do hadoop, mas não do hdfs; portanto, esse usuário não temnenhuma ACL de object para listar o diretório /mr-history/done. Executar umcomando chmod no diretório raiz permitirá que esse usuário realize suas tarefas.

root@lrmk042:/var/log/hadoop-mapreduce/mapred# hadoop fs -chmod 755 /

root@lrmk042:/var/log/hadoop-mapreduce/mapred# hadoop fs -ls -d /drwxr-xr-x - hdfs hdfs 0 2015-11-08 16:58 /

Falha ao processar solicitaçãoAo listar um bucket, um erro: Failed to Process Request é gerado.

Ao executar a lista de buckets, por exemplo:

# hadoop fs -ls viprfs://hdfsBucket2.s3.site1/

O seguinte erro interno do ViPRFS ocorre:

ERROR_FAILED_TO_PROCESS_REQUEST

Solução temporáriaAs possíveis razões para esse erro são:

1. Seu arquivo JAR viprfs-client do nó do Hadoop não está sincronizado com osoftware ECS

2. Você está tentando acessar um bucket protegido (Kerberos) a partir de um nó doHadoop não protegido (não submetido a Kerberos)

3. Você está tentando acessar um bucket não protegido (não submetido a Kerberos)a partir de um nó protegido (Kerberos) do Hadoop.

Ativar o registro e a depuração do Kerberos no lado do clientPara solucionar os problemas de autenticação, é possível ativar o registro e adepuração detalhados no nó de cluster do Hadoop que estiver sendo usado.

Ativar o registro detalhado no lado do clientO registro detalhado é ativado usando uma variável de ambiente que se aplica apenas asua sessão atual de SSH (Secure Shell Protocol).

export HADOOP_OPTS="-Dsun.security.krb5.debug=true"

Solução de problemas

Falha ao processar solicitação 207

Page 208: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Ativar a depuração do Hadoop no lado do clientPara solucionar os problemas da atividade do Hadoop entre o nó do Hadoop e o ECS, épossível ativar o registro detalhado do Hadoop da seguinte maneira:

export HADOOP_ROOT_LOGGER="Debug,console"

Depurar o Kerberos no KDCVerifique atentamente o arquivo /var/log/krb5kdc.log do KDC ao fazer umaoperação do HDFS para facilitar a depuração.

tail -f /var/log/krb5kdc.log

Eliminar a precisão do relógioÉ importante garantir que o horário esteja sincronizado entre o client e o servidor, jáque o Kerberos depende da precisão do horário.

Se seu AD tiver uma precisão do relógio com seus nós de dados/KDC, será necessárioconfigurar seu servidor NTP (Network Time Protocol). Isso pode ser feito comosegue:

1. Use a área de trabalho remota para conectar-se a seu servidor do AD.

2. Execute os seguintes comandos:

a. w32tm /config /syncfromflags:manual /manualpeerlist:<ntp-server1>,<ntp-server2>

b. net stop w32time

c. net start w32time

Solução de problemas

208 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 209: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

CAPÍTULO 27

Propriedades do core-site.xml do Hadoop paraECS HDFS

l Propriedades do core-site.xml do Hadoop para HDFS ECS...............................210

Propriedades do core-site.xml do Hadoop para ECS HDFS 209

Page 210: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Propriedades do core-site.xml do Hadoop para HDFS ECSAo configurar o arquivo Hadoopcore-site.xml, use esta tabela como referênciapara as propriedades e seus valores relacionados.

Tabela 23 Propriedades do core-site.xml do Hadoop

Propriedade Descrição

Propriedades da implementação do file system

fs.viprfs.impl<property><name>fs.viprfs.impl</name><value>com.emc.hadoop.fs.vipr.ViPRFileSystem</value></property>

fs.AbstractFileSystem.viprfs.impl <property>

<name>fs.AbstractFileSystem.viprfs.impl</name> <value>com.emc.hadoop.fs.vipr.ViPRAbstractFileSystem</value> </property>

Propriedades que definem a seção de autoridade da URI do file system do ECS HDFS

fs.vipr.installations Uma lista de nomes separados por vírgula. Os nomes são definidos pela propriedadefs.vipr.installation.[installation_name].hosts para identificar exclusivamente os conjuntos de nós dedados do ECS. Os nomes são usados como um componente da seção de autoridade da URI do filesystem do ECS HFDS. Por exemplo:

<property> <name>fs.vipr.installations</name> <value><site1>,<abc>,<testsite></value> </property>

fs.vipr.installation.[installation_name].hosts

Os endereços IP dos nós de dados do cluster do ECS ou os balanceadores de carga para cada nomelistado na propriedade fs.vipr.installations. Especifique o valor na forma de uma lista de endereços IPseparados por vírgulas. Por exemplo:

<property> <name>fs.vipr.installation.<site1>.hosts</name> <value>203.0.113.10,203.0.113.11,203.0.113.12</value> </property>

<property> <name>fs.vipr.installation.<abc>.hosts</name> <value>198.51.100.0,198.51.100.1,198.51.100.2</value> </property>

<property>

Propriedades do core-site.xml do Hadoop para ECS HDFS

210 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 211: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Tabela 23 Propriedades do core-site.xml do Hadoop (continuação)

Propriedade Descrição

<name>fs.vipr.installation.<testsite>.hosts</name> <value>198.51.100.10,198.51.100.11,198.51.100.12</value> </property>

fs.vipr.installation.[installation_name].resolution

Especifique como o software do ECS HDFS sabe como acessar os nós de dados do ECS. Os valoressão:

l dinâmico: Use esse valor ao acessar nós de dados do ECS diretamente sem um balanceador decarga.

l fixo: use esse valor ao acessar os nós de dados do ECS por meio de um balanceador de carga.

<property> <name>fs.vipr.installation.testsite.resolution</name> <value>dynamic</value> </property>

fs.vipr.installation.[installation_name].resolution.dynamic.time_to_live_ms

Quando a propriedade fs.vipr.installation.[installation_name].resolution é definida como dinâmica, elaespecifica com que frequência consultar ECS para a lista de nós ativos. Os valores são emmilissegundos. O padrão é 10 minutos.

<property> <name>fs.vipr.installation.<testsite>.resolution.dynamic.time_to_live_ms</name> <value>600000</value> </property>

URI do file system do ECS

fs.defaultFS Uma propriedade padrão do Hadoop que especifica o URI ao file system padrão. Configurar essapropriedade para o file system do ECS HDFS é opcional. Se você não a configurar para o file systemdo ECS HDFS, você deve especificar o URI completo em cada operação do file system. O URI do filesystem do ECS HDFS tem este formato:

viprfs://[bucket_name].[namespace].[installation_name]

l bucket_name: O nome do bucket habilitado para o HDFS que contém os dados que deseja usarquando executa trabalhos do Hadoop.

l namespace: o namespace do tenant associado ao bucket habilitado para HDFS.

l installation_name: o nome associado ao conjunto de nós de dados do ECS que o Hadoop podeusar para acessar os dados do ECS. O valor dessa propriedade deve corresponder a um dosvalores especificados na propriedade fs.vipr.installations.

Por exemplo:

<property>

Propriedades do core-site.xml do Hadoop para ECS HDFS

Propriedades do core-site.xml do Hadoop para HDFS ECS 211

Page 212: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Tabela 23 Propriedades do core-site.xml do Hadoop (continuação)

Propriedade Descrição

<name>fs.defaultFS</name> <value>viprfs://testbucket.s3.testsite</value> </property>

HBase exige que um file system padrão seja definido.

Propriedade UMASK

fs.permissions.umask-mode

Esta propriedade padrão do Hadoop especifica como o ECS HDFS deve computar permissões emobjetos. As permissões são computadas aplicando um umask nas permissões de entrada. O valorrecomendado para configurações simples e do Kerberos é: 022. Por exemplo:

<property><name>fs.permissions.umask-mode</name><value>022</value></property>

Propriedades da tradução de identidade

fs.viprfs.auth.identity_translation

Esta propriedade especifica como o client do ECS HDFS determina a qual realm do Kerberos umdeterminado usuário pertence se nenhum for especificado. Os nós de dados do ECS armazenamproprietários de arquivos como username@REALM, enquanto o Hadoop armazena os proprietáriosde arquivos como apenas o nome de usuário.Os valores possíveis são:

l NONE: Padrão. Os usuários não estão associados a um realm. Use esta configuração com umcluster do Hadoop que use a segurança simples. Com essa configuração, o ECS HDFS nãorealiza a conversão do realm.

l CURRENT_USER_REALM: Válido quando Kerberos está presente. O realm do usuário édetectado automaticamente, e é o realm do usuário registrado atualmente. No exemplo a seguir,o realm é EMC.COM porque sally está no realm EMC.COM. A propriedade do arquivo é alteradapara [email protected].

# kinit [email protected]# hdfs dfs -chown john /path/to/file

Os realms fornecidos na linha de comando têm precedência sobre as configurações de propriedades.

<property> <name>fs.viprfs.auth.identity_translation </name> <value>CURRENT_USER_REALM</value> </property>

Obs.

A opção FIXED_REALM é obsoleta.

fs.viprfs.auth.realm O realm atribuído aos usuários quando a propriedade fs.viprfs.auth.identity_translation é definidacomo FIXED_REALM.

Propriedades do core-site.xml do Hadoop para ECS HDFS

212 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 213: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Tabela 23 Propriedades do core-site.xml do Hadoop (continuação)

Propriedade Descrição

Essa opção é obsoleta.

fs.viprfs.auth.anonymous_translation

Esta propriedade é usada para determinar como o usuário e o grupo são atribuídos a arquivos recém-criados

Obs.

Esta propriedade foi usada anteriormente para determinar o que aconteceu com os arquivos que nãotinham proprietário. Esses arquivos eram considerados como pertencentes a "anonymous". Osarquivos e diretórios são têm mais propriedade anônima e .

Os valores são:

l LOCAL_USER: use esta configuração com um cluster do Hadoop que use a segurança simples.Atribui o usuário do Unix e o grupo de cluster do Hadoop a arquivos e diretórios recém-criados.

l CURRENT_USER: use esta configuração para um cluster do Hadoop que passou por Kerberos.Atribui o principal do Kerberos ([email protected]) como o proprietário do arquivo ou dodiretório, e usa o grupo que foi atribuído como padrão para o bucket.

l NONE: (obsoleto) anteriormente, indicava que nenhum mapeamento de objetos compropriedade anônima devia ser realizado ao usuário atual.

<property> <name>fs.viprfs.auth.anonymous_translation</name> <value>CURRENT_USER</value> </property>

Propriedades do realm Kerberos e do principal do serviço

viprfs.security.principal Esta propriedade especifica o principal de serviço do ECS. Esta propriedade informa o KeyDistribution Center sobre o serviço do ECS. Esse valor é específico para sua configuração.O nome do principal pode incluir "_HOST", que é substituído automaticamente pelo FQDN real do nóde dados no momento da execução.

Por exemplo:

<property> <name>viprfs.security.principal</name> <value>vipr/[email protected]</value></property>

Amostra de core-site.xml para o modo de autenticação simplesEste core-site.xml é um exemplo das propriedades do ECS HDFS para o modo deautenticação simples.

Propriedades do core-site.xml do Hadoop para ECS HDFS

Amostra de core-site.xml para o modo de autenticação simples 213

Page 214: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Exemplo 2 core-site.xml

<property> <name>fs.viprfs.impl</name> <value>com.emc.hadoop.fs.vipr.ViPRFileSystem</value></property>

<property> <name>fs.AbstractFileSystem.viprfs.impl</name> <value>com.emc.hadoop.fs.vipr.ViPRAbstractFileSystem</value></property>

<property> <name>fs.vipr.installations</name> <value>Site1</value></property>

<property> <name>fs.vipr.installation.Site1.hosts</name> <value>203.0.113.10,203.0.113.11,203.0.113.12</value></property>

<property> <name>fs.vipr.installation.Site1.resolution</name> <value>dynamic</value></property>

<property> <name>fs.vipr.installation.Site1.resolution.dynamic.time_to_live_ms</name> <value>900000</value></property>

<property> <name>fs.defaultFS</name> <value>viprfs://mybucket.mynamespace.Site1/</value></property>

<property> <name>fs.viprfs.auth.anonymous_translation</name> <value>CURRENT_USER</value></property>

<property> <name>fs.viprfs.auth.identity_translation</name> <value>FIXED_REALM</value></property>

<property> <name>fs.viprfs.auth.realm</name> <value>MY.TEST.REALM</value></property>

Propriedades do core-site.xml do Hadoop para ECS HDFS

214 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 215: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

CAPÍTULO 28

Exemplo de metadados seguros de bucket

l Proteger metadados do bucket.........................................................................216

Exemplo de metadados seguros de bucket 215

Page 216: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Proteger metadados do bucketA lista a seguir

{ "head_type": "hdfs", "metadata": [ { "name": "internal.kerberos.user.ambari-qa.name", "value": "ambari-qa@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.ambari-qa.shortname", "value": "ambari-qa" }, { "name": "internal.kerberos.user.ambari-qa.groups", "value": "hadoop,users" }, { "name": "internal.kerberos.user.amshbase.name", "value": "amshbase@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.amshbase.shortname", "value": "ams" }, { "name": "internal.kerberos.user.amshbase.groups", "value": "hadoop" }, { "name": "internal.kerberos.user.cmaurer.name", "value": "cmaurer@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.cmaurer.shortname", "value": "cmaurer" }, { "name": "internal.kerberos.user.cmaurer.groups", "value": "cmaurer,adm,cdrom,sudo,dip,plugdev,users,lpadmin,sambashare" }, { "name": "internal.kerberos.user.dn.name", "value": "dn@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.dn.shortname", "value": "hdfs@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.dn.groups", "value": "hadoop,hdfs" }, { "name": "internal.kerberos.user.hbase.name", "value": "hbase@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.hbase.shortname", "value": "hbase" }, {

Exemplo de metadados seguros de bucket

216 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 217: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

"name": "internal.kerberos.user.hbase.groups", "value": "hadoop" }, { "name": "internal.kerberos.user.hdfs.name", "value": "hdfs@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.hdfs.shortname", "value": "hdfs" }, { "name": "internal.kerberos.user.hdfs.groups", "value": "hadoop,hdfs" }, { "name": "internal.kerberos.user.hive.name", "value": "hive@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.hive.shortname", "value": "hive" }, { "name": "internal.kerberos.user.hive.groups", "value": "hadoop" }, { "name": "internal.kerberos.user.jhs.name", "value": "jhs@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.jhs.shortname", "value": "mapred" }, { "name": "internal.kerberos.user.jhs.groups", "value": "hadoop" }, { "name": "internal.kerberos.user.nm.name", "value": "nm@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.nm.shortname", "value": "yarn@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.nm.groups", "value": "hadoop" }, { "name": "internal.kerberos.user.nn.name", "value": "nn@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.nn.shortname", "value": "hdfs@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.nn.groups", "value": "hadoop,hdfs" }, { "name": "internal.kerberos.user.oozie.name", "value": "oozie@EXAMPLE_HDFS.EMC.COM" }, {

Exemplo de metadados seguros de bucket

Proteger metadados do bucket 217

Page 218: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

"name": "internal.kerberos.user.oozie.shortname", "value": "oozie" }, { "name": "internal.kerberos.user.oozie.groups", "value": "hadoop,users" }, { "name": "internal.kerberos.user.rm.name", "value": "rm@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.rm.shortname", "value": "yarn@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.rm.groups", "value": "hadoop" }, { "name": "internal.kerberos.user.spark.name", "value": "spark@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.spark.shortname", "value": "spark" }, { "name": "internal.kerberos.user.spark.groups", "value": "hadoop" }, { "name": "internal.kerberos.user.yarn.name", "value": "yarn@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.yarn.shortname", "value": "yarn" }, { "name": "internal.kerberos.user.yarn.groups", "value": "hadoop" }, { "name": "internal.kerberos.user.zookeeper.name", "value": "zookeeper@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.zookeeper.shortname", "value": "ams" }, { "name": "internal.kerberos.user.zookeeper.groups", "value": "hadoop" }, { "name": "hadoop.proxyuser.hcat.groups", "value": "*" }, { "name": "hadoop.proxyuser.hcat.hosts", "value": "*" }, { "name": "hadoop.proxyuser.yarn.users", "value": "*" }, {

Exemplo de metadados seguros de bucket

218 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados

Page 219: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

"name": "hadoop.proxyuser.yarn.hosts", "value": "*" }, { "name": "hadoop.proxyuser.hbase.hosts", "value": "*" }, { "name": "hadoop.proxyuser.hbase.users", "value": "cmaurer" }, { "name": "hadoop.proxyuser.hive.hosts", "value": "10.247.179.42" }, { "name": "hadoop.proxyuser.hive.users", "value": "*" }, { "name": "hadoop.proxyuser.hcat.groups", "value": "*" }, { "name": "hadoop.proxyuser.hcat.hosts", "value": "*" }, { "name": "dfs.permissions.supergroup", "value": "hdfs" } ]}

Exemplo de metadados seguros de bucket

Proteger metadados do bucket 219

Page 220: Elastic Cloud Storage (ECS) · 2020. 3. 16. · Elastic Cloud Storage (ECS) Versão 3.0 Guia de acesso a dados 302-003-221 04

Exemplo de metadados seguros de bucket

220 Elastic Cloud Storage (ECS) 3.0 Guia de acesso a dados