Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do...

208
ECS Versão 3,3 Guia de Acesso a dados 302-005-555 02

Transcript of Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do...

Page 1: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

ECSVersão 3,3

Guia de Acesso a dados302-005-555

02

Page 2: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Copyright © 2018-2019 Dell Inc. ou suas subsidiárias. Todos os direitos reservados.

Publicado em Março 2019

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 ECS 3,3 Guia de Acesso a dados

Page 3: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Bem-vindo ao ECS 7

S3 9Suporte à API Amazon S3 no ECS.............................................................. 10Recursos compatíveis e não compatíveis da API do S3............................... 10

Comportamento em que o bucket já existe.....................................13Suporte à política de bucket........................................................................13

Criando, atribuindo e gerenciando políticas de bucket....................16Cenários de política de bucket........................................................16Operações de política de bucket compatíveis................................. 18Condições compatíveis da política de bucket................................. 19

Gerenciamento do ciclo de vida de objetos................................................. 21Extensões S3..............................................................................................29

Extensões de intervalo de bytes.................................................... 29Retenção....................................................................................... 34File system habilitado.................................................................... 34Suporte a S3A............................................................................... 38

Pesquisa de metadados.............................................................................. 39Atribuir valores de índice de metadados a um bucket.................... 39Usando a criptografia com pesquisa de metadados........................42Atribuir metadados aos objetos usando o protocolo S3..................42Usar consultas de pesquisa de metadados..................................... 43Usando a pesquisa de metadados do ECS Java SDK .....................49Metadados de sistema do ECS e atributos opcionais..................... 49

Interoperabilidade entre S3 e Swift............................................................ 50Criar e gerenciar chaves secretas...............................................................52

Criar uma chave para um usuário de objeto................................... 52Criar uma chave secreta S3: autoatendimento.............................. 53

Autenticação com o serviço do S3..............................................................56Autenticando com a V2 da signature............................................. 56Autenticando com a V4 da signature..............................................57

Usando o s3curl com o ECS........................................................................57Use SDKs para acessar o serviço do S3......................................................58

Usando o SDK do Java Amazon .................................................... 58SDK Java client para ECS..............................................................60

Códigos de erro do ECS S3.........................................................................61

OpenStack Swift 71Suporte a OpenStack Swift no ECS............................................................72Operações compatíveis com o OpenStack Swift........................................ 72Extensões do Swift.....................................................................................74Extensões de intervalo de bytes do Swift................................................... 74

Atualizando um intervalo de bytes em um objeto........................... 74Sobregravação de parte de um objeto........................................... 76Acrescentando dados a um objeto................................................. 77Lendo vários intervalos de bytes em um objeto..............................78

Retenção.................................................................................................... 78File system habilitado................................................................................. 79Interoperabilidade entre S3 e Swift............................................................ 79

Capítulo 1

Capítulo 2

CONTEÚDO

ECS 3,3 Guia de Acesso a dados 3

Page 4: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Autenticação do OpenStack Swift..............................................................80Criar usuários Swift no Portal do ECS........................................... 80Autenticação do OpenStack Versão 1 ............................................81Autenticação do OpenStack Versão 2............................................83Autenticação usando a integração do ECS Keystone V3................85

Autorização de recipiente........................................................................... 87Códigos de erro do ECS Swift.................................................................... 89

EMC Atmos 91Suporte à API do EMC Atmos no ECS........................................................ 92Chamadas API REST compatíveis do EMC Atmos...................................... 92Chamadas API REST incompatíveis do EMC Atmos................................... 94Suporte a sub-tenants nas chamadas API REST do EMC Atmos................ 95Extensões da API........................................................................................95

Acrescentando dados a um objeto................................................. 95Suporte do ECS para períodos de retenção e expiração da retençãode objetos do Atmos......................................................................96

Códigos de erro do ECS Atmos..................................................................101

CAS 105Configurando o suporte a CAS no ECS..................................................... 106Armazenamento estático.......................................................................... 106Conformidade........................................................................................... 107

Fortalecimento de plataforma e conformidade............................. 107Política de conformidade e retenção............................................ 108Agente de conformidade.............................................................. 108

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

API REST de gerenciamento do ECS 127Introdução à API REST de gerenciamento do ECS.................................... 128Autenticar-se na API REST de gerenciamento do ECS..............................128

Autenticar sem cookies ............................................................... 128Logout..........................................................................................130Comando whoami da API REST de gerenciamento do ECS.......... 130Resumo da API REST de gerenciamento do ECS.......................... 131

ECS HDFS 137Introdução ao ECS HDFS.......................................................................... 138Configuração do Hadoop para usar o ECS HDFS ......................................139Modos de autenticação do Hadoop........................................................... 139

Acessando o bucket como um file system.................................... 140Grupo padrão e ACLs de grupos personalizados dos buckets........141Superusuário e supergrupo do Hadoop......................................... 141

Capítulo 3

Capítulo 4

Capítulo 5

Capítulo 6

CONTEÚDO

4 ECS 3,3 Guia de Acesso a dados

Page 5: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Acesso multiprotocolo (cruzado)................................................. 142Usuário proxy............................................................................... 142Usuário de equivalência................................................................ 142

Migração de um cluster simples para um cluster de Kerberos do Hadoop..143Modo de autenticação Kerberos do Hadoop................................. 144

Interação do file system............................................................................ 144Aplicativos Hadoop compatíveis................................................................ 144Integrar um cluster simples do Hadoop com o ECS HDFS......................... 145

Instale o Hortonworks HDP usando o Ambari............................... 145Criar um bucket para HDFS usando o Portal do ECS....................146Planejar a integração entre o ECS HDFS e o Hadoop................... 152Obter o pacote de instalação e suporte do ECS HDFS................. 152Implementar a biblioteca de client do ECS HDFS......................... 152Configurar propriedades do client do ECS....................................153Configurar o Hive......................................................................... 155Verificar acesso de Hadoop ao ECS............................................. 156Proteger o bucket........................................................................ 156Realoque o file system padrão do HDFS para um bucket do ECS....157

Integrar um cluster seguro do Hadoop com o ECS HDFS ......................... 159Planejar a migração de um cluster simples para um cluster deKerberos...................................................................................... 159Planejar a migração de um cluster simples para um cluster deKerberos...................................................................................... 160Mapear nomes de grupos............................................................. 160Configurar os nós do ECS com o principal do serviço do ECS...... 160Habilitar o Kerberos usando o Ambari...........................................164Proteger o bucket do ECS usando metadados............................. 165Reconfigurar propriedades do client do ECS................................ 168Inicie os serviços do Hadoop e verifique o acesso do Hadoop ao ECS.....................................................................................................169

Solução de problemas da configuração do ECS HDFS 171Verifique se o AD/LDAP está configurado corretamente com o clusterseguro do Hadoop..................................................................................... 172Falhas no teste do Pig: impossível obter principal do Kerberos..................173Permissão negada para o usuário do AD.................................................... 173Erros de permissões.................................................................................. 173Falha ao processar solicitação................................................................... 176Ativar o registro e a depuração do Kerberos no lado do client................... 176Depurar o Kerberos no KDC.......................................................................177Eliminar a precisão do relógio.................................................................... 177Configurar um ou mais novos nós do ECS com o principal do serviço do ECS.................................................................................................................. 177Solução temporária para o erro Diretório Yarn não existe.......................... 179

Orientações sobre a configuração do Kerberos no cluster doHadoop 183Configurar o KDC do Kerberos.................................................................. 184Configurar a autenticação de usuários do AD para Kerberos..................... 185

Exemplo de metadados seguros de bucket do HDFS 189Proteger metadados do bucket................................................................. 190

Apêndice A

Apêndice B

Apêndice C

CONTEÚDO

ECS 3,3 Guia de Acesso a dados 5

Page 6: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Propriedades do core-site.xml do Hadoop 193Propriedades do core-site.xml do Hadoop para ECS HDFS....................... 194

Amostra de core-site.xml para o modo de autenticação simples...197Propriedades do core-site.xml do Hadoop para ECS S3............................ 198

Exemplo de core-site.xml para ECS S3........................................ 199

Gerenciamento externo de chaves 207Gerenciamento de chaves externas..........................................................208

Apêndice D

Apêndice E

CONTEÚDO

6 ECS 3,3 Guia de Acesso a dados

Page 7: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Bem-vindo ao ECS

O ECS é uma plataforma completa de armazenamento em nuvem definida porsoftware que dá suporte ao armazenamento, à manipulação e à análise de dados nãoestruturados de forma massiva em hardware genérico. Ele pode ser implementadocomo um equipamento de armazenamento turnkey ou como um produto de softwareque pode ser instalado em servidores e discos commodity qualificados. Ele oferecetodas as vantagens de custo da infraestrutura commodity, mas com a confiabilidade, adisponibilidade e a facilidade de manutenção corporativas dos arrays tradicionais.

A documentação on-line do ECS compreende os seguintes guias:

l Guia de Administração

l Guia de monitoramento

l Guia de Acesso a dados

l Guia de hardware

Guia de Administração

O Guia de Administração dá suporte à configuração inicial do ECS e aoprovisionamento de armazenamento para atender aos requisitos de replicação dedados e disponibilidade. Além disso, ele dá suporte ao gerenciamento contínuo detenants e usuários, e à criação e à configuração de buckets.

Guia de monitoramento

O Guia de monitoramento dá suporte ao uso do Portal do ECS pelo administradordo ECS para monitorar a integridade e o desempenho do ECS e para exibir suautilização da capacidade.

Guia de Acesso a dados

O Guia de acesso aos dados descreve os protocolos compatíveis com o ECS paraacesso do usuário ao armazenamento em object do ECS. Além das APIs de objetoS3, EMC Atmos, OpenStack Swift e Centera (CAS), ele introduz a API degerenciamento do ECS, que pode ser usada para realizar a configuração do ECSantes do acesso do usuário final e para detalhar o uso do ECS como um HDFS(Hadoop File System) e a integração do ECS HDFS a um cluster Hadoop.

Guia de hardware

O Guia de hardware descreve as configurações de hardware e os caminhos deupgrade compatíveis, e detalha os requisitos de conexão por cabo dos racks.

As versões em PDF desses guias on-line e links para outros PDFs, como o Guia deconfiguração de segurança do ECS e as Notas da versão do ECS, estão disponíveis em support.emc.com.

Bem-vindo ao ECS 7

Page 8: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Bem-vindo ao ECS

8 ECS 3,3 Guia de Acesso a dados

Page 9: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

CAPÍTULO 1

S3

Esta seção descreve o suporte que o ECS oferece à API e à extensão do S3. Elatambém descreve como se autenticar no serviço e usar o SDK (Software DevelopmentKit) para desenvolver clients para acessar o serviço.

Alguns aspectos do endereçamento e da autenticação de buckets são específicos aoECS. Para configurar um aplicativo existente para se comunicar com o ECS ou paradesenvolver um novo aplicativo que use a API do S3 para se comunicar com o ECS,consulte o Guia de Administração do ECS Página de Documentação do produto ECS.

l Suporte à API Amazon S3 no ECS...................................................................... 10l Recursos compatíveis e não compatíveis da API do S3....................................... 10l Suporte à política de bucket............................................................................... 13l Gerenciamento do ciclo de vida de objetos......................................................... 21l Extensões S3..................................................................................................... 29l Pesquisa de metadados......................................................................................39l Interoperabilidade entre S3 e Swift....................................................................50l Criar e gerenciar chaves secretas...................................................................... 52l Autenticação com o serviço do S3..................................................................... 56l Usando o s3curl com o ECS............................................................................... 57l Use SDKs para acessar o serviço do S3............................................................. 58l Códigos de erro do ECS S3.................................................................................61

S3 9

Page 10: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Suporte à API Amazon S3 no ECSO ECS dá suporte à API (Application Programming Interface, interface deprogramação de aplicativos) do Amazon S3 (Amazon Simple Storage Service).

O Amazon S3 Object Service está disponível nas portas a seguir.

Protocolo Portas

HTTP 9020

HTTPS 9021

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

As seções a seguir detalham as APIs compatíveis e não compatíveis.

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 O ECS dá suporte aos parâmetros de marcadores e max-keys para permitir a paginação dalista 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 de vida. As políticas relacionadas aarquivamento (AWS Glacier) não são compatíveis. Não há suporte para o ciclo de vida nosbuckets habilitados para file system.

DELETE Bucket policy

GET Bucket (List Objects) Para os buckets habilitados para o file system, / é o único delimitador compatível ao listar os

objetos do bucket.

GET Bucket (List Objects)Version 2

Para os buckets habilitados para o file system, / é o único delimitador compatível ao listar os

objetos do bucket.

GET Bucket cors

GET Bucket acl

S3

10 ECS 3,3 Guia de Acesso a dados

Page 11: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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

Recurso Observações

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

GET Bucket policy

GET Bucket Object versions

GET Bucket versioning

HEAD Bucket

List Multipart Uploads

PUT Bucket Quando o PUT for executado em um bucket existente, consulte Comportamento quando o

bucket já existe.

PUT Bucket cors

PUT Bucket acl

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

PUT Bucket policy Não é possível configurar políticas de bucket para buckets ativados para file system ou CAS.Não é possível configurar políticas de bucket para operações às quais o ECS não dá suporte.Mais informações sobre o suporte às políticas de bucket são apresentadas em Suporte apolíticas de bucket.

PUT Bucket versioning

DELETE Object

Delete Multiple Objects

GET Object

GET Object ACL

HEAD Object

PUT Object Compatível com PUT fragmentado

PUT Object acl

PUT Object - Copy

OPTIONS object

Initiate Multipart Upload

Upload Part

Upload Part - Copy

Complete Multipart Upload O ECS exibe uma ETag 00 para essa solicitação, que é diferente da resposta do Amazon S3.

Abort Multipart Upload

List Parts

S3

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

Page 12: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Obs.

l A criação de buckets usando nomes com menos de três caracteres apresenta afalha 400 Bad Request, InvalidBucketName.

l Ao criar um bucket ou um objeto com conteúdo vazio, o ECS exibe 400 invalidcontent-length value; isso é diferente da AWS, que exibe 400 BadRequest.

l Não há suporte à cópia de um objeto em outro bucket que indexe a mesma chavede índice de metadados do usuário, mas com um tipo de dados diferente; issoapresenta a falha 500 Server Error.

l Ao listar os objetos de um bucket, se você usar um prefixo e um delimitador, masfornecer um marcador inválido, o ECS gera 500 Server Error ou 400 Bad Requestde um bucket habilitado para file system. No entanto, a AWS exibe 200 OK e osobjetos não são listados.

Tabela 2 Recursos adicionais

Recurso Observações

Presigned URLs O ECS dá suporte ao uso de URLs pré-assinadas para conceder acesso aos objetos semnecessidade de credenciais.

Mais informações podem ser encontradas em: https://docs.aws.amazon.com/AmazonS3/latest/dev/PresignedUrlUploadObject.html.

Chunked PUT A operação PUT pode ser usada para fazer upload de objetos em fragmentos, o que permite

que o conteúdo seja enviado antes que o tamanho total da carga útil seja conhecido. Atransferência fragmentada usa o cabeçalho Transfer-Encoding (Transfer-Encoding: chunked)para especificar que o conteúdo é transmitido em fragmentos.

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

Tabela 3 APIs do S3 incompatíveis

Recurso Observações

DELETE Bucket tagging

DELETE Bucket website

GET Bucket location O ECS reconhece apenas um só VDC (Virtual Data Center, data center virtual).

GET Bucket logging

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

GET Bucket tagging

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

GET Bucket website

PUT Bucket logging

S3

12 ECS 3,3 Guia de Acesso a dados

Page 13: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Tabela 3 APIs do S3 incompatíveis (continuação)

Recurso Observações

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

PUT Bucket tagging

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

PUT Bucket website

Object APIs

GET Object torrent

POST Object

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

SELECT Object Content

PUT Object legal hold

GET Object legal hold

PUT Object retention O ECS ainda não dá suporte à nova API da AWS, mas tem suporte em suas própriasextensões. Consulte Extensões S3 na página 29.

GET Object retention O ECS ainda não dá suporte à nova API da AWS, mas tem suporte em suas própriasextensões. Consulte Extensões S3 na página 29.

PUT Object tagging

GET Object tagging

Comportamento em que o bucket já existeQuando é feita uma tentativa de criar um bucket com um nome que já existe, ocomportamento do ECS pode ser diferente do AWS.

O AWS sempre devolve Conflito 409 quando um usuário que tem permissões FULLCONTROL no bucket ou outras permissões tenta recriar o bucket. Quando um usuáriodo ECS que tem FULL_CONTROL ou WRITE_ACP no bucket tenta recriar o bucket, oECS retorna 200 OK e a ACL é sobregravada; no entanto, o proprietário não éalterado. Um usuário do ECS com permissões WRITE/READ terá o Conflito 409 setentar recriar um bucket.

Quando o proprietário do bucket tenta recriar um bucket, o ECS retorna 200 OK esobregrava a ACL. O AWS se comporta da mesma forma.

Quando um usuário não tem privilégios de acesso no bucket, uma tentativa de recriar obucket lança um erro de Conflito 409. O AWS se comporta da mesma forma.

Suporte à política de bucket

O ECS é compatível com a definição de políticas de acesso de bucket do S3. Aocontrário das ACLs, que permitem todas as ações ou nenhuma, as políticas de acessooferecem a capacidade de conceder a usuários específicos, ou a todos os usuários,

S3

Comportamento em que o bucket já existe 13

Page 14: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

permissões granulares e condicionais para ações específicas. As condições da políticapodem ser usadas para atribuir permissões para uma variedade de objetos quecorrespondem à condição e podem ser usadas para atribuir automaticamente aspermissões a objetos transferidos por upload recentemente.

O modo de gerenciamento do acesso aos recursos ao usar o protocolo S3 é descritoem http://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html e épossível usar essas informações como base para entender e usar as políticas de bucketdo S3 no ECS. Esta seção apresenta informações básicas sobre o uso de políticas debucket e sobre como identificar as diferenças ao usar as políticas de bucket com oECS.

A seguir, é apresentado um exemplo de uma política de bucket do ECS.

{ "Version": "2012-10-17", "Id": "S3PolicyIdNew2", "Statement":[ { "Sid":"Granting PutObject permission to user2 ", "Effect":"Allow", "Principal": "user_n2", "Action":["s3:PutObject"], "Resource":["PolicyBuck1/*"], "Condition": { "StringEquals": {"s3:x-amz-server-side-encryption": [ "AES256"]} } } ]}

Cada política é um documento de Notação de objeto do JavaScript (JSON) que écomposto por uma versão, um identificador e uma ou mais declarações.

Versão

O campo Version especifica a versão da linguagem da política e pode ser2012-10-17 ou 2008-10-17. Se a versão não for especificada, 2008-10-17será inserido automaticamente.

É uma boa prática definir o idioma de uma nova política para a versão maisrecente, 2012-10-17.

Id

O campo Id é opcional.

Cada declaração compreende os seguintes elementos:

SID

Um ID de instrução é uma string que descreve o que faz a instrução.

Recursos

O bucket ou um objeto que é o assunto da declaração. O recurso pode serassociado a uma declaração Resource ou NotResource.

S3

14 ECS 3,3 Guia de Acesso a dados

Page 15: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

O nome do recurso é o nome do bucket e da chave e é especificado de maneiradiferente, dependendo de você usar o endereçamento em estilo de host virtual ouem estilo de caminho, conforme exibido a seguir:

Host Style: http://bucketname.ns1.emc.com/objectnamePath Style: http://ns1.emc.com/bucketname/objectname

Em qualquer caso, o nome do recurso é: bucketname/objectname .

Você pode usar os caracteres curinga (*) e (?), em que o asterisco (*)representa qualquer combinação de zero ou mais caracteres, e o ponto deinterrogação (?) representa qualquer caractere único. Por exemplo, você poderepresentar todos os objetos de um bucket que se chama bucketname usando:

bucketname/*

Ações

O conjunto de operações ao qual você deseja atribuir permissões (permitir ounegar). Todas as operações compatíveis estão listadas em Operações de políticade bucket compatíveis na página 18.

A operação pode ser associada a uma declaração Action ou NotAction.

Efeito

Pode ser definido como Allow ou Deny para determinar se você deseja permitirou negar as ações especificadas.

Principal

O usuário de objeto do ECS para o qual as ações especificadas são permitidas ounegadas.

Para conceder permissões a todos, o que se chama de acesso anônimo, vocêpode definir o valor principal para um caractere curinga, "*", como exibido aseguir:

"Principal":"*"

Obs.

As políticas de bucket do ECS não são compatíveis com os usuários federadosnem com os usuários e funções do Amazon IAM.

Condições

As condições com base nas quais a política entra em vigor. A expressão dacondição é usada para corresponder uma condição especificada na política a umacondição especificada na solicitação.

Os seguintes operadores de condição não são compatíveis: Binary, ARN, IfExists,Check Key Exists. As chaves de condição compatíveis são listadas em Condiçõescompatíveis da política de bucket na página 19.

S3

Suporte à política de bucket 15

Page 16: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Mais informações sobre os elementos que você pode usar em uma política sãodescritas na documentação do Amazon S3, http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html.

Criando, atribuindo e gerenciando políticas de bucket

Você pode criar uma política para um bucket no Portal do ECS (consulte o Guia deAdministração do ECS, que está disponível em Página de Documentação do produtoECS). Também é possível criar uma política usando outro editor e associar a políticaum bucket usando a API REST de gerenciamento do ECS ou usando a API S3 do ECS.

A API REST de gerenciamento do ECS oferece as seguintes APIs para permitir quesub-recursos da política de bucket sejam adicionados, recuperados e excluídos:

l PUT /object/bucket/{bucketName}/policyl GET /object/bucket/{bucketName}/policyl DELETE /object/bucket/{bucketName}/policyPara definir uma política usando a API REST de gerenciamento do ECS, você deve tera função de administrador do sistema ECS ou administrador de namespace.

A API S3 do ECS oferece as seguintes APIs:

l PUT Bucket Policyl GET Bucket Policyl DELETE Bucket Policy

Obs.

Para definir uma política usando a API S3, você deve ser o proprietário do bucket.

Os detalhes dessas APIs podem ser encontrados em Referência da API do ECS.

Cenários de política de bucket

Em geral, o proprietário do bucket tem controle completo em um bucket e podeconceder permissões a outros usuários e definir as políticas de bucket do S3 usandoum client do S3. No ECS, também é possível que um Administrador do sistema ECS oude Namespace defina políticas de bucket usando o Bucket Policy Editor no Portal doECS.

Você pode usar políticas de bucket nos seguintes cenários típicos:

l Conceder permissões de bucket a um usuáriol Conceder permissões de bucket a todos os usuáriosl Atribuir automaticamente as permissões aos objetos criados

Conceder permissões de bucket a um usuárioPara conceder permissão em um bucket a um usuário que não seja o proprietário dobucket, especifique o recurso cujas permissões você deseja alterar. Defina o atributoprincipal como o nome do usuário e especifique uma ou mais ações que desejahabilitar.

O seguinte exemplo a seguir mostra uma política que concede a um usuário chamadouser1 a permissão para atualizar e ler os objetos do bucket chamado mybucket:

{ "Version": "2012-10-17",

S3

16 ECS 3,3 Guia de Acesso a dados

Page 17: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

"Id": "S3PolicyId1", "Statement": [ { "Sid": "Grant permission to user1", "Effect": "Allow", "Principal": ["user1"], "Action": [ "s3:PutObject","s3:GetObject" ], "Resource":[ "mybucket/*" ] } ]}

Você também pode adicionar condições. Por exemplo, se você quiser que o usuárioapenas leia e grave o objeto ao acessar o bucket de um endereço IP específico,adicione uma condição IpAddress conforme exibido na seguinte política:

{ "Version": "2012-10-17", "Id": "S3PolicyId1", "Statement": [ { "Sid": "Grant permission ", "Effect": "Allow", "Principal": ["user1"], "Action": [ "s3:PutObject","s3:GetObject" ], "Resource":[ "mybucket/*" ] "Condition": {"IpAddress": {"aws:SourceIp": "<Ip address>"} } ]}

Conceder permissões de bucket a todos os usuáriosPara conceder permissão em um bucket a um usuário que não seja o proprietário dobucket, especifique o recurso cujas permissões você deseja alterar. Defina o atributoprincipal como qualquer pessoa (*) e especifique uma ou mais ações que desejahabilitar.

O seguinte exemplo mostra uma política que concede a qualquer pessoa a permissãopara ler os objetos do bucket chamado mybucket:

{ "Version": "2012-10-17", "Id": "S3PolicyId2", "Statement": [ { "Sid": "statement2", "Effect": "Allow", "Principal": ["*"], "Action": [ "s3:GetObject" ], "Resource":[ "mybucket/*" ] } ]}

Atribuir automaticamente as permissões aos objetos criadosVocê pode usar políticas de bucket para permitir automaticamente o acesso aos dadosde objetos incluídos. No exemplo de política de bucket a seguir, user1 e user2podem criar sub-recursos (ou seja, objetos) no bucket chamado mybucket e definirACLs de objeto. Com a capacidade de definir ACLs, os usuários podem então definirpermissões para outros usuários. Se você definir a ACL na mesma operação, uma

S3

Cenários de política de bucket 17

Page 18: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

condição poderá ser definida para que uma ACL predefinida de leitura pública preciseser especificada quando o objeto for criado. Isso garantirá que qualquer pessoa possaler todos os objetos criados.

{ "Version": "2012-10-17", "Id": "S3PolicyId3", "Statement": [ { "Sid": "statement3", "Effect": "Allow", "Principal": ["user1", "user2"], "Action": [ "s3:PutObject, s3:PutObjectAcl" ], "Resource":[ "mybucket/*" ] "Condition":{"StringEquals":{"s3:x-amz-acl":["public-read"]}} } ]}

Operações de política de bucket compatíveis

As tabelas a seguir mostram as palavras-chave de permissão compatíveis e asoperações no bucket, objeto e sub-recurso que elas controlam.

Tabela 4 Permissões para as operações de objeto

Palavra-chave depermissão

Operações do S3 compatíveis

s3:GetObject aplica-se àversão mais recente de umbucket habilitado para aversão

GET Object, HEAD Object

s3:GetObjectVersion GET Object, HEAD ObjectEssa permissão é compatível com as solicitações que especificam um número de versão

s3:PutObject PUT Object, POST Object, Initiate Multipart Upload, Upload Part, Complete Multipart UploadPUT Object - Copy

s3:GetObjectAcl GET Object ACL

s3:GetObjectVersionAcl GET ACL (para uma versão específica do objeto)

s3:PutObjectAcl PUT Object ACL

s3:PutObjectVersionAcl PUT Object (para uma versão específica do objeto)

s3:DeleteObject DELETE Object

s3:DeleteObjectVersion DELETE Object (uma versão específica do objeto)

s3:ListMultipartUploadParts List Parts

s3:AbortMultipartUpload Abort Multipart Upload

S3

18 ECS 3,3 Guia de Acesso a dados

Page 19: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Tabela 5 Permissões para as operações de bucket

Palavra-chave depermissão

Operações do S3 compatíveis

s3:DeleteBucket DELETE Bucket

s3:ListBucket GET Bucket (List Objects), HEAD Bucket

S3:ListBucketVersions GET Bucket Object versions

s3:GetLifecycleConfiguration GET Bucket lifecycle

s3:PutLifecycleConfiguration PUT Bucket lifecycle

Tabela 6 Permissões para as operações de sub-recurso do bucket

Palavra-chave depermissão

Operações do S3 compatíveis

s3:GetBucketAcl GET Bucket acl

s3:PutBucketAcl PUT Bucket acl

s3:GetBucketCORS GET Bucket cors

s3:PutBucketCORS PUT Bucket cors

s3:GetBucketVersioning GET Bucket versioning

s3:PutBucketVersioning PUT Bucket versioning

s3:GetBucketPolicy GET Bucket policy

s3:DeleteBucketPolicy DELETE Bucket policy

s3:PutBucketPolicy PUT Bucket policy

Condições compatíveis da política de bucketO elemento de condição é usado para especificar as condições que determinamquando uma política está em vigor.

As tabelas a seguir mostram as chaves de condição compatíveis com o ECS quepodem ser usadas em expressões de condição.

Tabela 7 Chaves de condição genéricas do AWS compatíveis

Nome da chave Descrição Operadoresaplicáveis

aws:CurrentTime Usado para verificar as condições de data/hora Operador de data

aws:EpochTime Usado para verificar as condições de data/hora usando uma data na épocaou horário do UNIX (consulte Operadores de condição de data).

Operador de data

aws:principalType Usado para verificar o tipo de entidade (usuário, conta, usuário federadoetc.) para a solicitação atual.

Operador de string

aws:SourceIp Usado para verificar o endereço IP do solicitante. Operador de string

aws:UserAgent Usado para verificar o aplicativo client do solicitante. Operador de string

S3

Condições compatíveis da política de bucket 19

Page 20: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Tabela 7 Chaves de condição genéricas do AWS compatíveis (continuação)

Nome da chave Descrição Operadoresaplicáveis

aws:username Usado para verificar o nome de usuário do solicitante. Operador de string

Tabela 8 Chaves de condição específicas do S3 compatíveis, para operações de objeto

Nome da chave Descrição Permissões aplicáveis

s3:x-amz-acl Define uma condição para exigirpermissões de acesso específicasquando o usuário faz upload de umobjeto.

s3:PutObject, s3:PutObjectAcl,s3:PutObjectVersionAcl

s3:x-amz-grant-permission (parapermissões explícitas), em que apermissão pode ser: leitura, gravação,read, write, read-acp, write-acp, full-control

O proprietário do bucket pode adicionarcondições usando essas chaves paraexigir certas permissões.

s3:PutObject, s3:PutObjectAcl,s3:PutObjectVersionAcl

s3:x-amz-server-side-encryption Exige que o usuário especifique estecabeçalho na solicitação.

s3:PutObject, s3:PutObjectAcl

s3:VersionId Restringem o usuário para acessarapenas os dados de uma versãoespecífica do objeto

s3:PutObject, s3:PutObjectAcl,s3:DeleteObjectVersion

Tabela 9 Chaves de condição específicas do S3 compatíveis, para operações de bucket

Nome da chave Descrição Permissões aplicáveis

s3:x-amz-acl Definem uma condição para exigirpermissões de acesso específicasquando o usuário faz upload de umobjeto

s3:CreateBucket, s3:PutBucketAcl

s3:x-amz-grant-permission (parapermissões explícitas), em que apermissão pode ser: leitura, gravação,read, write, read-acp, write-acp, full-control

O proprietário do bucket pode adicionarcondições usando essas chaves paraexigir certas permissões

s3:CreateBucket, s3:PutBucketAcl

s3:prefix Recuperam apenas as chaves de objetocom um prefixo específico.

s3:ListBucket, s3:ListBucketVersions

s3:delimiter Exigem que o usuário especifique oparâmetro delimitador na solicitação GetBucket (Objetos de lista).

s3:ListBucket, s3:ListBucketVersions

s3:max-keys Limitam o número de chaves que o ECSretorna em resposta à solicitação GetBucket (Objetos de lista), exigindo que ousuário especifique o parâmetro max-keys.

s3:ListBucket, s3:ListBucketVersions

S3

20 ECS 3,3 Guia de Acesso a dados

Page 21: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Gerenciamento do ciclo de vida de objetosO ECS dá suporte à configuração de ciclo da vida do S3 nos buckets ativados paraversão e nos buckets não ativados para versão.

Quando for necessário modificar e excluir objetos, mas for preciso garantir que osobjetos ainda permaneçam retidos por um período, é possível habilitar o controle deversões em um bucket e usar o recurso de ciclo da vida para determinar quando asversõ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 da vida expirar antes do período de retenção, o objeto sóserá excluído quando o período de retenção terminar.

Obs.

l O ciclo da vida não pode ser ativado nos buckets ativados para FS.

l O ciclo da vida é um conceito de nível de bucket.

l É possível aplicar no máximo 1.000 regras de ciclo da vida por bucket.

l Pode haver um atraso entre a data de expiração e a data em que o S3 remove umobjeto.

l Sempre arredonde o horário resultante para a meia-noite do dia seguinte, nohorário UTC.

l Para a expiração, os dias são calculados desde a data da última modificação (=data de criação para os objetos ainda não modificados/excluídos).

l Para a expiração de objeto não atual, os dias são calculados desde que o objeto setornou não atual.

l As regras baseadas em data acionam ações em todos os objetos criados nessadata ou antes dela.

Exemplo de configurações de ciclo da vida do ECSA seguir, há alguns exemplos de configurações de ciclo da vida.

Abortar MPUs antigas (buckets ativados ou não para controle de versão)

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Rule> <ID>lifecycle-v2-expire-non-current-and-dmarkers-and-mpu</ID> <Filter/> <Status>Enabled</Status> <AbortIncompleteMultipartUpload> <DaysAfterInitiation>1</DaysAfterInitiation> </AbortIncompleteMultipartUpload> </Rule></LifecycleConfiguration>

S3

Gerenciamento do ciclo de vida de objetos 21

Page 22: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Expirar objetos depois de determinado número de dias (buckets ativados ou não paracontrole de versão)

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Rule> <ID>lifecycle-v2-expire-one-year</ID> <Filter/> <Status>Enabled</Status> <Expiration> <Days>365</Days> </Expiration> </Rule></LifecycleConfiguration>

Expirar versões não atuais de objetos depois de determinado número de dias (somentebuckets ativados para controle de versão)

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Rule> <ID>lifecycle-v2-expire-non-current</ID> <Filter/> <Status>Enabled</Status> <NoncurrentVersionExpiration> <NoncurrentDays>1</NoncurrentDays> </NoncurrentVersionExpiration> </Rule></LifecycleConfiguration>

Remover marcadores de exclusão de objetos expirados (somente buckets ativadospara controle de versão)

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Rule> <ID>lifecycle-v2-expire-dmarkers</ID> <Filter/> <Status>Enabled</Status> <Expiration> <ExpiredObjectDeleteMarker>true</ExpiredObjectDeleteMarker> </Expiration> </Rule></LifecycleConfiguration>

Expirar todas as versões não atuais, dmarkers e MPUs incompletas após um dia

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Rule> <ID>lifecycle-v2-expire-non-current-and-dmarkers-and-mpu</ID> <Filter/> <Status>Enabled</Status> <Expiration> <ExpiredObjectDeleteMarker>true</ExpiredObjectDeleteMarker> </Expiration> <AbortIncompleteMultipartUpload>

S3

22 ECS 3,3 Guia de Acesso a dados

Page 23: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

<DaysAfterInitiation>1</DaysAfterInitiation> </AbortIncompleteMultipartUpload> <NoncurrentVersionExpiration> <NoncurrentDays>1</NoncurrentDays> </NoncurrentVersionExpiration> </Rule></LifecycleConfiguration>

Exemplos de ciclo da vida de PUT/GET com s3curlA seguir, há exemplos de ciclos de vida de PUT and GET com s3curl. Consulte Usandos3curl com o ECS para obter mais informações.

Ciclo da vida de PUT

admin@:/usr/share/s3curl> cat lifecycle.xml<?xml version="1.0" encoding="UTF-8" standalone="yes"?><LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Rule> <ID>lifecycle-v2-non-current-expiration</ID> <Filter/> <Status>Enabled</Status> <NoncurrentVersionExpiration> <NoncurrentDays>1</NoncurrentDays> </NoncurrentVersionExpiration> </Rule></LifecycleConfiguration>admin@:/usr/share/s3curl>admin@:/usr/share/s3curl> sudo perl ./s3curl.pl --debug --id=emc --put=lifecycle.xml --calculateContentMd5 -- "http://192.0.2.0:9020/emc_lifecycle?lifecycle" -vs3curl: Found the url: host=10.32.169.121; port=9020; uri=/emc_lifecycle; query=lifecycle;s3curl: replaced string: lifecycles3curl: ordinary endpoint signing cases3curl: StringToSign='PUT\nFjZKcAgVegBUaGdqfEh/Ig==\n\nTue, 06 Nov 2018 17:28:58 +0000\n/tom_lifecycle?lifecycle's3curl: exec curl -v -H 'Date: Tue, 06 Nov 2018 17:28:58 +0000' -H 'Authorization: AWS emc:xDTXdXSF+qVIQ4EreEe+iqlHRns=' -L -H 'content-type: ' -H 'Content-MD5: FjZKcAgVegBUaGdqfEh/Ig==' -T lifecycle.xml http://192.0.2.0:9020/tom_lifecycle?lifecycle -v* Hostname was NOT found in DNS cache* Trying 192.0.2.0...* Connected to 192.0.2.0 (192.0.2.0) port 9020 (#0)> PUT /emc_lifecycle?lifecycle HTTP/1.1> User-Agent: curl/7.37.0> Host: 192.0.2.0:9020> Accept: */*> Date: Tue, 06 Nov 2018 17:28:58 +0000> Authorization: AWS emc:xDTXdXSF+qVIQ4EreEe+iqlHRns=> Content-MD5: FjZKcAgVegBUaGdqfEh/Ig==> Content-Length: 376> Expect: 100-continue>< HTTP/1.1 100 Continue* We are completely uploaded and fine< HTTP/1.1 200 OK< Date: Tue, 06 Nov 2018 17:28:58 GMT* Server ViPR/1.0 is not blacklisted< Server: ViPR/1.0< x-amz-request-id: 0a20a979:166c6842ba5:82ba:5< x-amz-id-2: 6687ce5967202724ed9a94d44c939438d39cabae9abc5a2c48a60c2c5355f95e< Content-Length: 0<

S3

Gerenciamento do ciclo de vida de objetos 23

Page 24: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

* Connection #0 to host 10.32.169.121 left intact

Troubleshooting LDS:Enabling debug logging for LDSLDS log is in resourcesvc-log4j2.xml<Logger name="com.emc.storageos.data.object.impl.resource.LifeCycleDeleteScanner" level="DEBUG"/> Other relevant classes for troubleshooting lifecycle issues from blobsvc-log4j2.xml <Logger name="com.emc.storageos.data.object.impl.gc.DeleteJobScanner" level="DEBUG"/><Logger name="com.emc.storageos.data.object.impl.file.directoryTable.ObjectDirectoryOperation" level="DEBUG"/><Logger name="com.emc.storageos.data.object.impl.file.directoryTable.BlobsvcOperationBase" level="DEBUG"/><Logger name="com.emc.storageos.data.object.impl.file.ObjectExpirationHelper" level="DEBUG"/> dataheadsvc-log4j2.xml<Logger name="com.emc.storageos.data.object.RESTAccess.ObjectListingHelper" level="DEBUG"/>

Ciclo da vida de GET

:/usr/share/s3curl # perl ./s3curl.pl --id=EMC -- "http://192.0.2.0:9020/test-bucket/?lifecycle" -s | xmllint --format -<?xml version="1.0" encoding="UTF-8" standalone="yes"?><LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Rule> <ID>lifecycle-v2-abortmpu-one-week</ID> <Filter/> <Status>Enabled</Status> <NoncurrentVersionExpiration> <NoncurrentDays>1</NoncurrentDays> </NoncurrentVersionExpiration> </Rule></LifecycleConfiguration>:/usr/share/s3curl #

Elementos compatíveis de configuração do ciclo da vida

Tabela 10 Elementos compatíveis de configuração do ciclo da vida

Nome Descrição Obrigatório

AbortIncompleteMultipartUpload

l Contêiner para especificar quando um uploadincompleto de várias partes se torna elegívelpara uma operação de anulação.

l Quando você especifica essa ação de ciclo davida, a regra não pode especificar um filtrobaseado em tag.

l Secundário: DaysAfterInitiation

Sim, se nenhuma outra ação for especificadapara a regra.

S3

24 ECS 3,3 Guia de Acesso a dados

Page 25: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Tabela 10 Elementos compatíveis de configuração do ciclo da vida (continuação)

Nome Descrição Obrigatório

l Tipo: Container

l Antecessor: Rule

And l Contêiner para especificar filtros de regra.Esses filtros determinam o subconjunto deobjetos ao qual a regra se aplica.

l Tipo: String

l Antecessor: Rule

Sim, se você especificar mais de uma condiçãode filtro (por exemplo, um prefixo e uma ou maistags).

Date l Data em que você quer que o S3 realize aação.

l O valor de data deve estar em conformidadecom o formato ISO 8601. A hora é sempremeia-noite, no horário UTC.

l Tipo: String

l Antecessor: Expiration ou Transition

Sim, se Days e

ExpiredObjectDeleteMarker estiverem

ausentes.

Days l Especifica o número de dias após a criaçãodo objeto em que a ação de regra específicaentra em vigor.

l Tipo: Número inteiro não negativo, quandousado com transição; número inteiro positivo,quando usado com expiração.

l Antecessor: Expiration, Transition

Sim, se Date e

ExpiredObjectDeleteMarker estiverem

ausentes.

DaysAfterInitiation

l Especifica o número de dias após o início deum upload de várias partes em que o uploadde várias partes deve ser concluído. Se elenão for concluído até o número especificadode dias, ele se tornará elegível para umaoperação de anulação e o S3 abortará oupload incompleto de várias partes.

l Tipo: Número inteiro positivo.

l Antecessor:AbortIncompleteMultipartUpload

Sim, se o antecessor for especificado.

Expiration l Essa ação especifica um período na vida útilde um objeto em que o S3 deve realizar aação de expiração adequada. A ação que oS3 realiza depende de o bucket estar ou nãoativado para controle de versão.

l Se o controle de versão nunca foi ativado nobucket, o S3 excluirá a única cópia do objetode modo permanente. Caso contrário, se seubucket estiver ativado para controle deversão (ou o controle de versão estiver

Sim, se nenhuma outra ação estiver presente naregra.

S3

Gerenciamento do ciclo de vida de objetos 25

Page 26: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Tabela 10 Elementos compatíveis de configuração do ciclo da vida (continuação)

Nome Descrição Obrigatório

suspenso), a ação se aplicará somente àversão atual do objeto. Um bucket ativadopara controle de versão pode ter muitasversões do mesmo objeto, uma versão atual ezero ou mais versões não atuais.

l Em vez de excluir a versão atual, o S3 atransformará em uma versão não atual,adicionando um marcador de exclusão comoa nova versão atual.

Obs.

n Se o estado de seu bucket estiver com ocontrole de versão suspenso, o S3 criaráum marcador de exclusão com o ID deversão nulo. Se você tiver uma versãocom o ID de versão nulo, o S3 substituiráessa versão.

n Para configurar a expiração de objetosnão atuais, você deve usar a açãoNoncurrentVersionExpiration.

l Tipo: Contêiner

l Secundários: Days ou Date

l Antecessor: Rule

Filter l Contêiner para elementos que descrevem ofiltro que identifica um subconjunto deobjetos ao qual a regra de ciclo da vida seaplica. Se você especificar um filtro vazio(<Filter></Filter>), a regra se aplicará atodos os objetos do bucket.

l Tipo: String

l Secundários: Prefix, Tag

l Antecessor: Rule

Sim

ID l Identificador exclusivo da regra. O valor nãopode ter mais de 255 caracteres.

l Tipo: String

l Antecessor: Rule

Não

Key l Especifica a chave de uma tag. Uma chavede tag pode ter até 128 caracteres Unicode.

l As chaves de tag que você especificar em umfiltro de regras de ciclo da vida devem serexclusivas.

l Tipo: String

Sim, se o elemento principal <Tag> forespecificado.

S3

26 ECS 3,3 Guia de Acesso a dados

Page 27: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Tabela 10 Elementos compatíveis de configuração do ciclo da vida (continuação)

Nome Descrição Obrigatório

l Antecessor: Tag

LifecycleConfiguration

l Contêiner para regras de ciclo da vida. Vocêpode adicionar até 1.000 regras.

l Tipo: Contêiner

l Secundários: Rule

l Antecessor: Nenhum

Sim

ExpiredObjectDeleteMarker

l Em um bucket com controle de versão(bucket ativado para controle de versão oucom esse recurso suspenso), você podeadicionar esse elemento à configuração dociclo da vida para instruir o S3 a excluir osmarcadores de exclusão de objetosexpirados. Em um bucket sem controle deversão, adicionar esse elemento em umapolítica não faz sentido, já que não é possívelter marcadores de exclusão e o elemento nãorealiza nenhuma ação.

l Quando você especifica essa ação de ciclo davida, a regra não pode especificar um filtrobaseado em tag.

l Tipo: String

l Valores válidos: true | false (o valor false épermitido, mas é no-op e o S3 não realizaráações se o valor for false)

l Antecessor: Expiration.

Sim, se Date e Days estiverem ausentes.

NoncurrentDays l Especifica o número de dias que um objeto énão atual antes que o S3 possa executar aação associada.

l Tipo: Número inteiro não negativo, quandousado comNoncurrentVersionTransition;

número inteiro positivo, quando usado comNoncurrentVersionExpiration.

l Antecessor:NoncurrentVersionExpiration ouNoncurrentVersionTransition

Sim

NoncurrentVersionExpiration

l Especifica quando as versões de objetos nãoatuais expiram. Após a expiração, o S3 excluias versões de objetos não atuais de modopermanente.

l Você define essa ação de configuração deciclo da vida em um bucket que tem ocontrole de versão ativado (ou suspenso)

Sim, se nenhuma outra ação estiver presente emRule.

S3

Gerenciamento do ciclo de vida de objetos 27

Page 28: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Tabela 10 Elementos compatíveis de configuração do ciclo da vida (continuação)

Nome Descrição Obrigatório

para solicitar que o S3 exclua as versões deobjetos não atuais em um período específicona vida útil do objeto.

l Tipo: Contêiner

l Secundários: NoncurrentDays

l Antecessor: Rule

Prefix l Prefixo de chave de objeto que identifica umou mais objetos aos quais a regra se aplica.Um prefixo vazio (<Prefix></Prefix>) indicaque não há um filtro baseado no prefixo dachave.

Obs.

O ECS dá suporte a <Prefix> com e sem<Filter>.Ciclo da vida de PUT do bucket com <Filter>

<Filter> <Prefix>value</Prefix></Filter>

Ciclo da vida de PUT do bucket (obsoleto)sem <Filter>

<Prefix>value</Prefix>

l Pode haver no máximo um prefixo em umfiltro de regras de ciclo da vida.

l Tipo: String

l Antecessor: Filter ou And (se vocêespecificar vários filtros, como um prefixo euma ou mais tags)

Não

Rule l Contêiner para uma regra de ciclo da vida.Uma configuração de ciclo da vida podeconter até 1.000 regras.

l Tipo: Contêiner

l Antecessor: LifecycleConfiguration

Sim

Status l Se estiver ativado, o S3 executa a regraconforme agendado. Se estiver desativado, oS3 ignorará a regra.

l Tipo: String

l Antecessor: Rule

Sim

S3

28 ECS 3,3 Guia de Acesso a dados

Page 29: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Tabela 10 Elementos compatíveis de configuração do ciclo da vida (continuação)

Nome Descrição Obrigatório

l Valores válidos: Enabled, Disabled.

Value l Especifica o valor de uma chave de tag. Cadatag de objeto é um par de chave-valor.

l O valor da tag pode ter até 256 caracteresUnicode.

l Tipo: String

l Antecessor: Tag

Sim, se o elemento principal <Tag> for

especificado.

Habilitando o LDS (Lifecycle Delete Scanner)A finalidade do scanner LDS é iniciar a expiração de objetos/versões criados antes deo ciclo da vida ser aplicado. Por exemplo, se um bucket tiver sido criado há algumtempo e estiver em uso e, agora, houver um requisito para aplicar o ciclo da vida,nesses casos, o LDS deverá ser ativado para que as políticas de ciclo da vida abranjamos objetos/versões anteriores.

Obs.

O LDS é desativado por padrão. Para habilitar versões anteriores à 3.2.1, entre emcontato com Suporte remoto do ECS.

Para habilitar as versões 3.2.1 e posteriores, defina o valor do parâmetrocom.emc.ecs.resource.lifecycledeletescanner.enable como true.

svc_param set com.emc.ecs.resource.lifecycledeletescanner.enable -v "true" -r "Enable LDS"

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 na página 29

l Retenção na página 34

l File system habilitado na página 34

l Pesquisa de metadados na página 39

l Suporte a S3A na página 38

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

l Sobregravação de parte de um objeto

l Acrescentando dados a um objeto

l Lendo vários intervalos de byte em um objeto

S3

Extensões S3 29

Page 30: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Obs.

Uma operação de faixa de bytes (atualizar/acrescentar/substituir) em um objeto comcontrole de versão não criará uma nova versão, e a versão mais recente em si seráatualizada.Uma operação de intervalo de bytes (atualizar/acrescentar/sobregravar) em umaversão antiga de um objeto atualiza a versão mais recente.

Atualizando um intervalo de bytes em um objetoVocê pode usar as extensões do ECS para o protocolo S3 para atualizar uma faixa debytes em um objeto.

A atualização parcial de um objeto pode ser muito útil em diversos casos. Por exemplo,para modificar um cabeçalho binário armazenado no início de um arquivo grande. NoAmazon ou em outras plataformas compatíveis com S3, é necessário enviar o arquivocompleto novamente.

O exemplo a seguir demonstra o uso da atualização do intervalo de bytes. No exemplo,object1 tem o valor The quick brown fox jumps over the lazy dog

GET /bucket1/object1 HTTP/1.1Date: Mon, 12 Mar 2018 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, 12 Mar 2018 20:04:40 GMTContent-Type: application/octet-streamLast-Modified: Mon, 12 Mar 2018 20:04:28 GMTETag: 6Content-Type: application/jsonContent-Length: 43 The quick brown fox jumps over the lazy dog.

Para atualizar um intervalo de bytes específico dentro deste objeto, o cabeçalhoRange na solicitação de dados de objeto deve incluir os deslocamentos do início e dofim do objeto que você está atualizando. O formato é: Range:bytes=<startOffset>-<endOffset>.

No exemplo, a solicitação PUT inclui o cabeçalho Range com o valor bytes=10-14,que indica que os bytes 10, 11, 12, 13 e 14 devem ser substituídos pelo valor enviado nasolicitaçã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, 12 Mar 2018 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 Content

S3

30 ECS 3,3 Guia de Acesso a dados

Page 31: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

ETag: 10x-amz-id-2: object1x-amz-request-id: 027f037c-29ea-4670-8670-de82d0e9f52aContent-Length: 0Date: Mon, 12 Mar 2018 20:15:16 GMT

Ao ler o objeto novamente, o novo valor agora será The quick green fox jumpsover the lazy dog. Um intervalo de bytes específico dentro do objeto éatualizado, substituindo a palavra brown pela palavra green.

GET /bucket1/object1 HTTP/1.1Cookie: JSESSIONID=wdit99359t8rnvipinz4tbtuACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 12 Mar 2018 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, 12 Mar 2018 20:16:00 GMTContent-Type: application/octet-streamLast-Modified: Mon, 12 Mar 2018 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 objetoVocê pode usar as extensões do ECS do protocolo S3 para sobrescrever parte de umobjeto.

Para sobregravar parte de um objeto, forneça os dados que serão gravados e odeslocamento de início. Os dados na solicitação são gravados com início nodeslocamento fornecido. O formato é: Range: <startingOffset>- .

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

PUT /bucket1/object1 HTTP/1.1Content-Length: 9Range: bytes=10-ACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 12 Mar 2018 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, 12 Mar 2018 20:51:41 GMT

S3

Extensões de intervalo de bytes 31

Page 32: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Quando o objeto é recuperado, parte dos dados é substituída no deslocamento inicialfornecido (green fox é substituído por brown cat) e o valor final é: The quickbrown cat jumps over the lazy dog and cat.

GET /bucket1/object1 HTTP/1.1Date: Mon, 12 Mar 2018 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, 12 Mar 2018 20:51:55 GMTContent-Type: application/octet-streamLast-Modified: Mon, 12 Mar 2018 20:51:41 GMTETag: 25Content-Type: application/jsonContent-Length: 51 The quick brown cat jumps over the lazy dog and cat.

Observe que quando você sobrescreve as partes existentes de um objeto, o tamanho eos números das novas partes são adicionados ao tamanho e números das partesexistentes que você substituiu. Por exemplo, em um bucket que tem uma parte com20 KB de tamanho, você sobrescreve 5 KB. Quando você consulta o bucket usandoGET /object/billing/buckets/{namespace}/{bucketName}/info, oresultado mostra total_mpu_size = 25 KB (não 20 KB) e total_mpu_parts = 2(não 1).

Acrescentando dados a um objetoVocê pode usar as extensões do ECS para o protocolo S3 a fim de acrescentar dados aum objeto.

Pode haver casos em que você acrescenta dados a um objeto, mas a determinação dodeslocamento exato de bytes não é eficiente ou útil. Nesse cenário, o ECS oferece acapacidade de acrescentar dados ao objeto sem especificar um deslocamento (odeslocamento correto é exibido a você na resposta). Por exemplo, para acrescentarlinhas ao arquivo de log, no Amazon ou em outras plataformas compatíveis do S3, vocêdeve enviar o arquivo de log completo novamente.

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-Uma solicitação de amostra, que apresenta o acréscimo a um objeto existente usandoum valor de Range de bytes=-1-, é mostrada no exemplo a seguir. Aqui o valor andcat é enviado na solicitação.

PUT /bucket1/object1 HTTP/1.1Content-Length: 8Range: bytes=-1-ACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 12 Mar 2018 20:46:01 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:/sqOFL65riEBSWLg6t8hL0DFW4c=Accept-Encoding: gzip, deflate, compress and cat

S3

32 ECS 3,3 Guia de Acesso a dados

Page 33: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

HTTP/1.1 204 No ContentETag: 24x-amz-id-2: object1x-amz-request-id: 087ac237-6ff5-43e3-b587-0c8fe5c08732Content-Length: 0Date: Mon, 12 Mar 2018 20:46:01 GMT

Quando o objeto é recuperado, and cat foi acrescentado e você pode ver o valortotal:The quick green fox jumps over the lazy dog and cat.

GET /bucket1/object1 HTTP/1.1ACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 12 Mar 2018 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, 12 Mar 2018 20:46:56 GMTContent-Type: application/octet-streamLast-Modified: Mon, 12 Mar 2018 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 bytes em um objetoVocê pode usar as extensões do ECS para o protocolo S3 para ler vários intervalos debytes de um objeto.

Ler várias partes de um objeto pode ser muito útil em diversos casos. Por exemplo,para obter várias partes do vídeo. No Amazon ou em outras plataformas S3compatíveis, é necessário enviar uma solicitação diferente para cada parte.

Para ler dois intervalos específicos de bytes do objeto chamado object1, você deveemitir a seguinte solicitação GET para Range: bytes==4-8,41-44. A resposta daleitura serão as palavras quick e lazy.

GET /bucket1/object1 HTTP/1.1Date: Mon, 12 Mar 2018 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, 12 Mar 2018 20:51:55 GMTContent-Type: multipart/byteranges;boundary=bound04acf7f0ae3cccLast-Modified: Mon, 12 Mar 2018 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/50

S3

Extensões de intervalo de bytes 33

Page 34: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

lazy--bound04acf7f0ae3ccc--

Retenção

A interface principal do ECS S3 dá suporte à retenção de objetos para impedir quesejam excluídos ou modificados durante um período especificado. O ECS S3 é umaextensão do ECS e não está disponível na API padrão do S3.

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 associado àpolítica pode ser configurado para o namespace. A política de retenção permiteque o período de retenção de um grupo de objetos seja configurado com o mesmovalor usando uma política, e possa ser alterado para todos os objetos, alterando-se a política. O uso de uma política oferece muito mais flexibilidade do que aaplicação do período de retenção a um objeto. Além disso, várias políticas deretenção podem ser configuradas para um namespace para permitir quediferentes grupos de objetos tenham diferentes períodos de retenção.

Ao aplicar uma política de retenção a um objeto usando um cabeçalho x-emc-retention-policy no objeto, o período de retenção da política deve serdefinido. O administrador do ECS deve definir o período de retenção da política noPortal do ECS ou usando a API REST de gerenciamento do ECS.

Período de retenção no bucket

Um período de retenção que é armazenado em relação a um bucket define umperíodo de retenção. O período de retenção é definido para todos os objetos, e operíodo ou a política de retenção em nível de objeto é usada para oferecer umaconfiguração específica ao objeto, quando uma retenção mais longa é necessária.O período de retenção é configurado usando-se um cabeçalho x-emc-retention-period no bucket.

Quando se faz uma tentativa de modificar ou excluir o objeto, o maior período deretenção do bucket ou período do objeto é usado para determinar se a operação podeser realizada. O período do objeto é definido diretamente no objeto ou usando apolítica de retenção de objeto.

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

File system habilitado

Os buckets do S3 podem ser ativados para FS (File System) para que os arquivosgravados usando o protocolo S3 possam ser lidos usando os protocolos de arquivo,como NFS (Network File System, sistema de arquivos de rede) e HDFS (HadoopDistributed File System), e vice-versa.

S3

34 ECS 3,3 Guia de Acesso a dados

Page 35: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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

Limitação no suporte do FSQuando um bucket está ativado para FS, o gerenciamento de ciclo de vida do S3 nãopode ser ativado.

Suporte cruzado para FSO suporte cruzado refere-se a acessar objetos gravados usando um protocolodiferente compatível com o ECS. Objetos gravados usando a interface principal do S3podem ser lidos e gravados usando protocolos de file system NFS e HDFS.

Um aspecto importante do suporte cruzado é a forma como as permissões de objeto earquivo se convertem entre os protocolos e, para acesso ao file system, a forma comoos conceitos de grupo e usuário se convertem entre os protocolos de objeto e arquivo.

Você pode encontrar mais informações sobre o suporte cruzado com file systems noGuia de Administração do ECS, que está disponível em Página de Documentação doproduto ECS.

WORM (Write Once, Read Many) do NFSOs dados do NFS se tornarão compatíveis com WORM (Write Once Read ManyTimes) quando a confirmação automática for implementada neles.Em detalhes, a criação de arquivos por meio do NFS é um processo de várias etapas.Para gravar em um novo arquivo, primeiramente, o client do NFS envia a solicitaçãoCREATE sem carga útil ao servidor NFS. Depois de receber uma resposta, o servidoremite uma solicitação WRITE. Isso é um problema para os buckets ativados para FSsob retenção, pois o arquivo criado com 0 bytes bloqueia quaisquer gravações nele.Por isso, até o ECS 3.3, a retenção dos buckets ativados para FS torna todo o filesystem montado somente leitura. Não há nenhum conceito de EOF (End of File, fim dearquivo) no NFS. A configuração de uma retenção para os arquivos nos bucketsativados para FS, após a gravação nesses arquivos, não funciona como esperado.

Para remover as restrições que são colocadas nos arquivos NFS em um bucket ativadopara retenção, o período de confirmação automática é implementado nos dados doNFS. Por isso, decidiu-se introduzir o período de confirmação automática durante oqual determinados tipos de atualizações (por enquanto, identificados como gravações,atualizações de ACL e exclusões que são necessárias para rsync, e renomeações quesão necessárias para o editor Vim) são permitidos, o que remove as restrições deretenção somente daquele período.

Obs.

l A confirmação automática e o atraso do início da retenção do Atmos são valoresiguais. Consulte Janela de atraso do início da retenção na página 100.

l O período de confirmação automática é uma propriedade de bucket, como operíodo de retenção.

l O período de confirmação automática é:

n Aplicável somente aos buckets ativados para file system com período deretenção

n Aplicável aos buckets em namespace não compatível

n Aplicável somente às solicitações do NFS e do Atmos

S3

File system habilitado 35

Page 36: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Vedar arquivoA funcionalidade de vedação de arquivo ajuda a confirmar o arquivo para o estadoWORM quando o arquivo é gravado, ignorando o período de confirmação automáticarestante. A função de vedação é realizada por meio do comando: chmod ugo-w<file> no arquivo.

Obs.

A funcionalidade de vedação não causa nenhum efeito fora do período de retenção.

Visão geral de alto nível

Tabela 11 Termos de confirmação automática

Termo Descrição

Período deconfirmaçãoautomática

Intervalo de tempo relacionado ao horário da última modificação doobjeto durante o qual determinadas restrições de retenção (exemplo:modificações de arquivo, exclusões de arquivo, entre outras) não sãoaplicadas. Isso não causa nenhum efeito fora do período de retenção.

Atraso do início daretenção

A interface principal do Atmos usa o atraso de início para indicar operíodo de confirmação automática.

O diagrama a seguir apresenta uma visão geral do comportamento do período deconfirmação automática.

Configuração da confirmação automáticaO período de confirmação automática pode ser definido na interface do usuário, na APIREST do bucket, na interface principal do S3 ou na API de subtenant do Atmos.

Interface do usuárioA interface do usuário tem o seguinte suporte durante a criação e edição de buckets:

l Quando o file system não está ativado, nenhuma opção de confirmação automáticaé exibida.

l Quando o file system está ativado/não há um valor de retenção especificado, aconfirmação automática é exibida, mas desativada.

l Quando o file system está ativado/há um valor de retenção selecionado/aconfirmação automática é exibida e ativada para seleção.

Obs.

O período máximo de confirmação automática é limitado ao menor valor entre operíodo de retenção do bucket ou o período máximo padrão de um dia.

S3

36 ECS 3,3 Guia de Acesso a dados

Page 37: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

API RESTA API REST Create do bucket é modificada com o novo cabeçalho, x-emc-autocommit-period.

lglou063:~ # curl -i -k -T /tmp/bucket -X POST https://10.247.99.11:4443/object/bucket -H "$token" -H "Content-Type: application/xml" -v

The contents of /tmp/bucket<object_bucket_create> <name>bucket2</name> <namespace>s3</namespace> <filesystem_enabled>true</filesystem_enabled> <autocommit_period>300</autocommit_period> <retention>1500</retention></object_bucket_create>

Interface principal do S3Criação de bucketsO fluxo de criação de buckets por meio da interface principal do S3 pode usar ocabeçalho opcional de solicitação, x-emc-auto-commit-period:seconds, paradefinir o período de confirmação automática. As seguintes verificações são feitasnesse fluxo:

l Permitir somente inteiros positivos

l Configurável somente para buckets do file system

l Configurável somente quando o valor de retenção estiver presente

./s3curl.pl --ord --id=naveen --key=+1Zh4YC2r2puuUaj3Lbnj3u0G9qgPRj0RIWJhPxH --createbucket -- -H 'x-emc-autocommit-period:600' -H 'x-emc-file-system-access-enabled:true' -H 'x-emc-namespace:ns1' http://10.249.245.187:9020/bucket5 -v

AtmosO Atmos cria um cabeçalho de solicitação de subtenant, x-emc-retention-start-delay, que registra o intervalo de confirmação automática.

./atmoscurl.pl -user USER1 -action PUT -pmode TID -path / -header "x-emc-retention-period:300" -header "x-emc-retention-start-delay:120" -include

Comportamento das operações de arquivo

Tabela 12 Comportamento das operações de arquivo

Operação de arquivo Esperada no períodode confirmaçãoautomática

Esperada no período de retenção(após o período de confirmaçãoautomática)

Alterar permissão doarquivo

Permitido Recusada

Alterar a propriedade doarquivo

Permitido Recusada

S3

File system habilitado 37

Page 38: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Tabela 12 Comportamento das operações de arquivo (continuação)

Operação de arquivo Esperada no períodode confirmaçãoautomática

Esperada no período de retenção(após o período de confirmaçãoautomática)

Gravar no arquivoexistente

Permitido Recusada

Criar arquivo vazio Permitido Permitido

Criar arquivo não vazio Permitido Recusada

Remover arquivo Permitido Recusada

Mover arquivo Permitido Recusada

Renomear arquivo Permitido Recusada

Criar dir Permitido Permitido

Remover diretório Recusada Recusada

Mover diretório Recusada Recusada

Renomear diretório Recusada Recusada

Alterar permissão nodiretório

Recusada Recusada

listar Permitido Permitido

Ler arquivo Permitido Permitido

Truncar arquivo Permitido Recusada

Copiar os arquivos locaissomente leitura nocompartilhamento NFS

Permitido Permitido

Copiar os arquivossomente leitura entrecompartilhamentos NFS

Permitido Permitido

Alterar atime/mtime doarquivo/diretório

Permitido Recusada

Suporte a S3A

O client AWS S3A é um conector do AWS S3 que permite que você execute trabalhosMapReduce com o ECS S3.

Obs.

l O ECS não permite que você execute o client S3A em buckets ativados para FS.

l O suporte a S3A está disponível no Hadoop 2.7 ou em uma versão posterior.

S3

38 ECS 3,3 Guia de Acesso a dados

Page 39: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Pesquisa de metadadosA API compatível com o ECS S3 oferece uma extensão de pesquisa de metadados. Apesquisa permite que os objetos de um bucket sejam indexados com base em seusmetadados e que o índice de metadados seja consultado para localizar objetos e seusdados associados.

Os metadados podem ser associados a objetos usando a API do ECS S3. Se vocêsouber a identidade de um objeto, poderá ler os metadados dele. Sem o recurso depesquisa de metadados do ECS, não é possível localizar um objeto usando seusmetadados sem fazer a iteração por meio 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 clients gravam os metadados do usuário com base nos requisitos dousuário. Os metadados do sistema e do usuário podem ser indexados e usados comobase para as pesquisas de metadados. O número de valores de metadados que podemser indexados é limitado a 30 e deve ser definido na criação do bucket.

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.

Ao consultar objetos com base em seus metadados indexados, os objetos quecorresponderem à consulta e aos valores de seus metadados indexados serão exibidos.Você também pode optar por exibir todos os metadados do sistema e/ou usuário queestão associados aos objetos exibidos. Além dos metadados do sistema, os objetostambém têm atributos que podem ser exibidos como parte dos resultados da pesquisade metadados. Os valores de metadados do sistema que estão disponíveis e podem serindexados, e os valores de metadados que podem ser exibidos opcionalmente com osresultados da consulta de pesquisa, são listados em Metadados e atributos opcionaisdo sistema ECS.

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

l Atribuir metadados aos objetos usando o protocolo S3

l Usar consultas de pesquisa de metadados

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 eatributos opcionais do sistema ECS.

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.

S3

Pesquisa de metadados 39

Page 40: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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.

Configurando valores de índice na API REST ECS Management

A API REST de gerenciamento do ECS oferece os métodos para trabalhar com osíndices listados na tabela a seguir, e são apresentados os links para a referência deAPIs.

Caminho da API Descrição

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

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

GET /object/bucket Obtém uma lista de buckets. As informações de cada bucket mostram os detalhesde pesquisa de metadados.

GET /object/bucket/{bucketname}/info Obtém os detalhes do bucket selecionado. As informações do bucket incluem osdetalhes de pesquisa de metadados.

DELETE /object/bucket/{bucketname}/searchmetadata

Interrompe a indexação usando as chaves de metadados.

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> <Datatype>datetime</Datatype> </Key> <Key> <Name>ObjectName</Name> <Datatype>string</Datatype> </Key> </IndexableKeys>

S3

40 ECS 3,3 Guia de Acesso a dados

Page 41: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

<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

A API do S3 oferece métodos para trabalhar com os índices listados na tabela a seguir,e são apresentados os links para a referência de APIs.

Caminho da API Descrição

GET /?searchmetadata Lista os nomes de todos os metadados de sistema disponíveis para a indexação emnovos buckets.

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

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

S3

Atribuir valores de índice de metadados a um bucket 41

Page 42: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Caminho da API Descrição

Obs.

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

GET /{bucket}/?searchmetadata Obtém a lista de chaves de metadados que estã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 objeto com x-amz-meta-, os valores que contêm caracteres especiaisnão precisam ser codificados em URL.

Usando a criptografia com pesquisa de metadados

Quando a criptografia é usada em um bucket, as chaves de metadados de objeto queestão indexadas são armazenadas em formato não criptografado; portanto, sempre épossível realizar pesquisas de metadados em buckets criptografados.

Quando a criptografia foi realizada usando chaves fornecidas pelo sistema, osmetadados do objeto devolvido por uma consulta serão descriptografados e exibidosem formato de texto. No entanto, se os dados foram criptografados usando umachave de criptografia fornecida pelo usuário, os metadados que não foram indexadosainda serão criptografados quando retornados por uma consulta de pesquisa demetadados, uma vez que as chaves criptografadas do usuário não podem seroferecidas por meio da consulta.

Atribuir metadados aos objetos usando o protocolo S3Os usuários finais podem atribuir metadados de usuário a objetos usando o cabeçalhox-amz-meta-. O valor atribuído pode ser qualquer cadeia de texto e distinguemaiúsculas de minúsculas, mas os nomes de metadados não fazem essa distinção;portanto, x-emc-meta-FOO e x-emc-meta-foo estão se referindo ao mesmocampo foo.

Obs.

Ao definir os campos a serem indexados e pesquisados, certifique-se de usar todas asletras 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 dados será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.

S3

42 ECS 3,3 Guia de Acesso a dados

Page 43: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Os tipos de dados 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.

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 de pesquisa estiver marcado como data/hora, a string demetadados será tratada como data e hora com o formato esperado: yyyy-MM-ddTHH:mm:ssZSe desejar que a string de caracteres seja tratada comoDateTime, você precisará usar o formato yyyy-MM-ddTHH:mm:ssZ aoespecificar 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}&max-keys=(num_keys)&marker=(marker value)

Obs.

O recurso de prefixos é adicionado àpesquisa de metadados. Consulte Recurso de prefixos na pesquisa demetadados.

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

S3

Usar consultas de pesquisa de metadados 43

Page 44: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Sintaxe da API Corpo da resposta

<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> <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 > 2018-03-01T11:22:00Z

selector

Um nome de chave pesquisável associado ao bucket.

operator

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

argument

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

S3

44 ECS 3,3 Guia de Acesso a dados

Page 45: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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 Retention

l Expiration

l Expires

Além disso, é possível devolver os metadados não indexados associados aosobjetos que são retornados pela consulta de pesquisa. O seguinte:

ALL

Lista os metadados de sistema e do usuário associados aos objetosretornados.

ALL_SMD

Lista os metadados de sistema associados aos objetos retornados.

ALL_UMD

Lista os metadados de usuário associados aos objetos retornados.

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-keys

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

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 yyyy-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 os

S3

Usar consultas de pesquisa de metadados 45

Page 46: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

valores 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:2018-03-06T12:00:00Z

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

?query=CreateTime>2018-01-01T00:00:00Z and x-amz-meta-Foo==2018-03-06T12:00:00Z

Fragmento de resultados da consulta — metadados de sistema

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

Fragmento de resultados da consulta — metadados de usuário

<key>x-amz-meta-Foo</key> <value>2018-03-06T12:00:00Z</value>

Uso de marcadores e max-keys 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>2018-01-01T00:00:00Z and x-amz-meta-Foo==2018-03-06T12:00:00Z&max-keys=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>2018-01-01T00:00:00Z and x-amz-meta-Foo==2018-03-06T12:00:00Z&max-keys=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>

S3

46 ECS 3,3 Guia de Acesso a dados

Page 47: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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 para SQL incluem operadores de comparação (=, <, >, +,-, !, ~) e separadores de sintaxe (vírgula, ponto e vírgula).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.

Recurso de prefixos na pesquisa de metadados

A pesquisa de metadados da API do S3 dá suporte aos parâmetros delimitadores e deprefixo. Ela segue a definição S3 padrão desses parâmetros. O recurso de prefixostransforma efetivamente todas as consultas de metadados em uma solicitação devárias consultas com a operação AND entre o prefixo e a string da consulta. Em outraspalavras, é possível combinar os predicados AND e OR nas consultas.

Os metadados da API do S3 são modificados para dar suporte a parâmetrosdelimitadores e de prefixo, conforme descrito a seguir:

GET /bucketName/?prefix={prefix}&delimiter={delimiter}&query={queryString}

Limitações

l Um prefixo é sempre aplicado antes da consulta real.

l A classificação personalizada não é compatível com os prefixos. Se a classificaçãofor especificada junto com um prefixo, a API exibirá o erro 400 Bad Request.

l Os objetos são exibidos em ordem lexicográfica.

l Não é permitido usar ObjectName em uma string de consulta junto com umprefixo. Isso cria ambiguidade, já que os dois objetos de filtro são baseados nonome. Se ambos forem especificados, a API exibirá o erro 400 Bad Request.

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.

S3

Usar consultas de pesquisa de metadados 47

Page 48: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Obs.

Alguns clients REST podem exigir que você codifique os "espaços" com o código deURL %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> <ObjectMatches> <object> <objectName>file4</objectName> <objectId>09998027b1b7fbb21f50e13fabb481a237ba2f60f352d437c8da3c7c1c8d7589</objectId> <versionId>0</versionId> <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> <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>

S3

48 ECS 3,3 Guia de Acesso a dados

Page 49: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

<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

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) Type Descrição

ObjectName string Nome do objeto.

Proprietário string Identidade do proprietário do objeto.

S3

Usando a pesquisa de metadados do ECS Java SDK 49

Page 50: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Nome (alias) Type Descrição

Tamanho 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) Type

ContentType string

Expiração datetime

ContentEncoding string

Expires datetime

Retenção integer

Interoperabilidade entre S3 e SwiftOs protocolos S3 e Swift podem interoperar, de modo que os aplicativos S3 possamacessar objetos nos buckets do Swift e os aplicativos Swift possam acessar os objetosnos buckets do S3.

Ao considerar se os objetos criados usando a interface principal do S3 serão acessíveisusando a interface principal do Swift e vice-versa, primeiramente, você deveconsiderar se os usuários podem ou não acessar o bucket (chamado de contêiner noSwift). Um bucket é atribuído a um tipo de bucket (S3 ou Swift, por exemplo) combase na interface principal do ECS que o criou. Os usuários de objeto devem ter aspermissões adequadas para o tipo de bucket para que um aplicativo acesse os bucketsdo Swift e do S3. Considere conceder essas permissões porque a forma como aspermissões são determinadas para os buckets do Swift e do S3 é diferente.

Obs.

A interoperabilidade entre Swift e S3 não é compatível com o uso de políticas debucket. As políticas de bucket se aplicam somente ao acesso ao bucket usando ocabeçalho S3 e não são impostas ao acessar um bucket usando a API Swift.

No ECS, o mesmo nome de usuário do objeto pode ser fornecido às credenciais do S3e do Swift. Então, no que se refere ao ECS, um usuário chamado john que seautentique como um usuário do Swift poderá acessar quaisquer recursos do S3 que ojohn tenha permissão para acessar.

S3

50 ECS 3,3 Guia de Acesso a dados

Page 51: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

O acesso a um recurso é determinado pelo proprietário do bucket ou por ter apermissão atribuída no bucket usando ACLs. Quando um usuário do S3 cria um bucket,por exemplo, esse bucket pertence ao nome de usuário do S3. Esse usuário, bem comoum usuário do Swift com o mesmo nome, tem permissões completas no bucket.

Quando você quiser que os usuários que não são o proprietário possam acessar umbucket, as permissões podem ser atribuídas usando ACLs. É possível conceder acessoaos contêineres do Swift usando ACLs de grupo (no ECS, elas são as ACLs de grupopersonalizadas), e a interface principal do Swift executa uma verificação da lista demembros do grupo antes de verificar as permissões da ACL de grupo. Os contêineresdo Swift adicionam o grupo admin implicitamente, e qualquer usuário que sejamembro do grupo admin (um usuário admin) pode acessar os contêineres dequalquer outro usuário admin. Somente os usuários admin têm permissões para criar,excluir e listar todos os contêineres. As permissões de usuário do admin se aplicamapenas ao namespace ao qual o usuário pertence. O acesso aos buckets do S3depende de permissões de usuário (ACLs de usuário), não de permissões de grupo.Para determinar o acesso a um bucket, o cabeçalho S3 verifica se o usuário tempermissões de ACL no bucket. Consulte a ilustração a seguir.

Figura 1 Verificações de acesso de usuários do S3

S3 HEAD SWIFT HEAD

S3 APPLICATION

S3 BUCKET ACCESS SWIFT BUCKET ACCESS

GROUP ACLUSER ACL

SWIFT APPLICATION

ECS OBJECT USER

S3 KEY

SWIFT PASSWORDSWIFT GROUP

Swift user accessto Swift containerS3 user access

to S3 bucket

check Swift group ACLpermissions

Swift user access to S3 bucket

S3 user access to Swift container

check S3user ACL

CROSSHEAD

O Swift usa grupos para permitir o acesso aos recursos, para que um usuário do S3possa acessar um contêiner do Swift. O usuário do S3 deve ser atribuído a um grupodo Swift, seja o grupo admin ou um grupo que tenha recebido ACLs de grupopersonalizadas no contêiner.

Em resumo, uma das seguintes condições deve ser atendida para o acesso aos bucketsdo S3:

l O usuário do Swift ou S3 deve ser o proprietário do bucket.

S3

Interoperabilidade entre S3 e Swift 51

Page 52: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

l O usuário do Swift ou S3 deve ter sido adicionado a ACL do usuário ao bucket.

Uma das seguintes condições deve ser atendida para acessar os contêineres do Swift:

l O usuário do Swift ou S3 deve ser o proprietário do contêiner.

l O usuário do S3 também deve ser um usuário do Swift e deve ter sido adicionado aum grupo do Swift. O grupo do Swift deve ser adicionado como um grupopersonalizado, a menos que o usuário seja um membro do grupo admin do Swift,que é adicionado automaticamente aos grupos personalizados.

l O usuário do Swift deve ter sido adicionado a um grupo de ACL para o contêinerou deve estar no grupo admin do Swift, que é adicionado automaticamente aosgrupos personalizados.

Obs.

A leitura de um objeto DLO do Swift por meio da API do S3 não funciona. A solicitaçãosegue um caminho de código genérico para a leitura, sem confirmar a presença dachave de metadados X-Object-Manifest, para colar o objeto de volta em seuscaminhos individuais.

Obs.

Para um upload de MPU, a operação do Swift list parts falha porque ele nãoentende o sub-recurso '?uploadId=<uploadId>'.

Criar e gerenciar chaves secretasOs usuários dos serviços de objeto 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 Um administrador cria uma chave e a distribui ao usuário de objeto (Criar umachave para um usuário de objeto).

l Um usuário de domínio cria uma conta de usuário de objeto criando uma novachave secreta usando a API de autoatendimento (Criar uma chave secreta S3:autoatendimento).

É possível ter duas chaves secretas para um usuário. Ao mudar (algumas vezeschamado de "acúmulo") uma chave secreta, um tempo de expiração em minutos podeser definido para a chave antiga. Durante o intervalo de expiração, ambas as chavessão aceitas para solicitações. Isso oferece um período de tolerância em que umaplicativo pode 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

l Criar uma chave secreta do S3 usando a API REST de gerenciamento do ECS

Para obter mais informações sobre usuários do ECS, consulte o Guia de Administraçãodo ECS, que está disponível em Página de Documentação do produto ECS.

S3

52 ECS 3,3 Guia de Acesso a dados

Page 53: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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 administrador do sistema ECS ou um administrador denamespace.

Caso seja um administrador do sistema, pode criar uma chave secreta para um usuáriode objeto que pertença a qualquer namespace. Caso seja um administrador denamespace, poderá criar uma chave secreta para um usuário de objeto que pertença aseu namespace.

Procedimento

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

2. Na tabela Object Users, selecione New Object User ou Edit para um usuárioexistente ao qual deseja atribuir uma chave secreta.

3. Em S3, selecione Generate & Add Password.

Para alterar a chave secreta de um usuário, você pode gerar uma segundachave secreta e especificar a expiração da primeira chave.

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

Criar uma chave secreta do 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.

A API é a seguinte:

Caminho da API Descrição

/object/user-secret-keys/{uid}

API que permite que chaves secretas sejam gerenciadas e atribuídas aos usuáriosde objeto.

O administrador do namespace pode criar chaves para os usuários de seunamespace. O administrador do sistema pode atribuir chaves aos usuários dequalquer namespace.

Para alterar uma chave, uma segunda chave pode ser atribuída e a hora em que aprimeira chave expira pode ser especificada.

Encontre mais informações sobre a chamada API em Referência da API do ECS.

Criar uma chave secreta 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.

O Referência da API do ECS pode ser usado quando você quiser criar um clientpersonalizado para realizar determinadas operações de gerenciamento do ECS. Paraas operações simples, os usuários de domínio podem usar curl ou um client HTTPbaseado 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.

S3

Criar uma chave secreta S3: autoatendimento 53

Page 54: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Caminho da API Descrição

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

Também é conhecida como API de autoatendimento.

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 <user_secret_key> <secret_key>...</secret_key> <key_timestamp>...</key_timestamp> <link rel="..." href="..." /> </user_secret_key>

Trabalhando com chaves de autoatendimentoOs exemplos apresentados aqui ajudarão você a usar a API REST de gerenciamento doECS para criar, ler e gerenciar chaves secretas.

Para executar operações com chaves secretas, você deve primeiro autenticar com aAPI de gerenciamento. Os exemplos fornecidos usam a ferramenta curl.

l Fazer log-in como usuário de domínio

l Gerar a primeira chave

l Gerar a segunda chave

l Verificar chaves

l Excluir todas as chaves secretas

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, 05 Mar 2018 17:29:38 GMTContent-Type: application/xmlContent-Length: 107Connection: keep-aliveX-SDS-AUTH-TOKEN: BAAcaVAzNU16eVcwM09rOWd2Y1ZoUFZ4QmRTK2JVPQMAQQIADTE0MzAwNzQ4ODA1NTQDAC51cm46VG9rZW46YWJmODA1NTEtYmFkNC00ZDA2LWFmMmMtMTQ1YzRjOTdlNGQ0AgAC0A8=

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

S3

54 ECS 3,3 Guia de Acesso a dados

Page 55: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

<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>2018-03-05 17:39:13.813</key_timestamp></user_secret_key>

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>2018-03-05 17:40:12.506</key_timestamp></user_secret_key>

Verificar chavesVocê pode verificar as chaves às quais foi atribuído. Nesse 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>2018-03-05 17:50:12.369</key_expiry_timestamp_1> <key_expiry_timestamp_2/> <key_timestamp_1>2018-03-05 17:39:13.813</key_timestamp_1> <key_timestamp_2>2018-03-05 17:40:12.506</key_timestamp_2> <link rel="self" href="/object/secret-keys"/></user_secret_keys>

S3

Criar uma chave secreta S3: autoatendimento 55

Page 56: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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

Autenticação com o serviço do S3O serviço ECS S3 permite a autenticação usando o Signature versão 2 e versão 4.Este tópico identifica alguns aspectos específicos ao ECS do processo deautenticaçã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, você precisa de um Id da chave de acesso doAWS e uma Chave de acesso secreta. No ECS, o ID da chave de acesso da AWS éassociado ao UID (User ID, ID do usuário) do ECS. Um ID de chave de acesso da AWStem 20 caracteres (alguns clients S3, como o S3 Browser, verificam 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 UID pode ser configurado (por meio da API RESTdo ECS ou do Portal do ECS) com duas chaves secretas. O serviço de dados doECS tenta usar a primeira chave secreta e, se a assinatura calculada nãocorresponder, tenta usar a segunda chave secreta. Se a segunda chave falhar, elerejeitará a solicitação. Quando os usuários adicionam ou alteram a chave secreta,eles devem esperar dois minutos para que todos os nós do serviço de dadospossam ser atualizados com a nova chave secreta antes de usá-la.

l No serviço de dados do ECS, o namespace também é levado em consideração nocálculo de assinatura de HMAC.

Autenticando com a V2 da signatureO 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

S3

56 ECS 3,3 Guia de Acesso a dados

Page 57: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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 signatureO cabeçalho de autorização ao usar a V4 da signature é apresentada assim:

Authorization: AWS4-HMAC-SHA256 Credential=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 calcular a assinatura, o ECS usa 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

Usando o s3curl com o ECSUma versão modificada do s3curl é necessária para o uso com o ECS.

Ao usar os cabeçalhos personalizados do ECS (x-emc), o elemento de signature docabeçalho de Autorização deve ser desenvolvido para incluir cabeçalhospersonalizados. Além disso, ao se conectar ao ECS 3.0 e versões posteriores, osparâmetros de "search" e "searchmetadata" fazem parte da computação da signature.

S3

Autenticando com a V4 da signature 57

Page 58: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Você pode obter uma versão do s3curl específica do ECS, modificada para lidar comessas condições do Repositório EMCECS Git.

Use SDKs para acessar o serviço do S3Ao desenvolver aplicativos que se comunicam com o serviço ECS S3, há vários SDKsque dão suporte a suas atividades de desenvolvimento.

A Comunidade ECS apresenta informações sobre vários clients que estão disponíveis,bem como orientações sobre seu uso: Comunidade ECS: Recursos paradesenvolvedor.

Os tópicos a seguir descrevem o uso do SDK Amazon S3 e o uso do SDK ECS Java.

l Usando o SDK Java Amazon>

l SDK Java client para ECS

Obs.

Se você quiser utilizar as extensões da API REST do ECS, o suporte a essas extensõesé oferecido no SDK ECS Java. Caso você não precise de suporte para as extensões doECS ou tenha aplicativos existentes que as usem, poderá utilizar o SDK Amazon Java.

Obs.

A compatibilidade do SDK ECS Java com a extensão de pesquisa de metadados édescrita em Usando a pesquisa de metadados do SDK ECS Java.

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 funcionardiretamente em amazon.com. Esta seção mostra como configurar o AmazonS3Clientpara funcionar 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(new BasicAWSCredentials(uid, secret));

Por padrão, o client Amazon tentará entrar em contato com o Amazon WebServices.Para anular 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).

S3

58 ECS 3,3 Guia de Acesso a dados

Page 59: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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 apresentará 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 data center em que 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, em seguida, 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));

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

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

S3

Usando o SDK do Java Amazon 59

Page 60: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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 ECS Java 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() { String bucketName="mybucket"; String key1 = "test1.txt"; String content = "Hello World!"; try { s3.createBucket(bucketName); s3.putObject(bucketName, key1, new StringInputStream(content), null); }

S3

60 ECS 3,3 Guia de Acesso a dados

Page 61: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

catch (Exception e) { } }}

Códigos de erro do ECS S3Os códigos de erro que podem ser gerados pelo título ECS S3 estão listados na tabelaa seguir.

Error Code Código destatusHTTP

Código de erro genérico Descrição do erro

Accessdenied 403 Accessdenied Acesso negado

BadDigest 400 BadDigest O Content-MD5 especificado nãocoincidiu com o recebido.

BucketAlreadyExists 409 BucketAlreadyExists O nome do bucket solicitado não estádisponível. O namespace do bucket écompartilhado por todos os usuáriosdo sistema. Selecione outro nome etente novamente.

BucketNotEmpty 409 BucketNotEmpty O bucket que você tentou excluir nãoestá vazio.

ContentMD5Empty 400 InvalidDigest O Content-MD5 especificado erainválido.

ContentMD5Missing 400 InvalidRequest O cabeçalho Content-MD5necessário para esta solicitação estáausente.

EntityTooSmall 400 EntityTooSmall O upload proposto é menor do que otamanho mínimo permitido do objeto.

EntityTooLarge 400 EntityTooLarge O upload proposto excede o tamanhomáximo permitido do objeto.

IncompleteBody 400 IncompleteBody O número de bytes especificadospelo cabeçalho Content-LengthHTTP não foi informado.

InternalError 500 InternalError Foi encontrado um erro interno.Please try again.

ServerTimeout 500 ServerTimeout Foi encontrado um erro interno detempo esgotado. Please try again.

InvalidAccessKeyId 403 InvalidAccessKeyId O ID de chave de acesso informadonão existe.

InvalidArgument 400 InvalidArgument Argumento inválido.

NoNamespaceForAnonymousRequest

403 Accessdenied O ECS não pôde determinar onamespace da solicitação anônima.

S3

Códigos de erro do ECS S3 61

Page 62: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Error Code Código destatusHTTP

Código de erro genérico Descrição do erro

Use um namespace BaseURL ouinclua um cabeçalho x-emc-namespace.

InvalidBucketName 400 InvalidBucketName O bucket especificado não é válido.

InvalidDigestBadMD5 400 InvalidDigest O Content-MD5 especificado erainválido.

InvalidDigest 403 SignatureDoesNotMatch O Content-MD5 especificado erainválido.

InvalidRequest 400 InvalidRequest Solicitação inválida.

InvalidPart 400 InvalidPart Não foi possível encontrar uma oumais das peças especificadas. A peçapode não ter sido carregada.

InvalidPartOrder 400 InvalidPartOrder A lista de peças não estava em ordemcrescente. A lista de peças deve serespecificada em ordem por númerode peça.

InvalidPartSizeZero 400 InvalidPartSizeZero O tamanho da peça para upload nãopode ser zero.

MissingEncryption 400 InvalidRequest O upload de várias peças inicia acriptografia solicitada. As solicitaçõesde peças subsequentes devem incluiros parâmetros de criptografiaapropriados.

NoEncryptionNeed 400 InvalidRequest A solicitação de iniciar várias peçasnão solicitou criptografia. Reenvie asolicitação sem enviar parâmetros decriptografia.

BadMD5 400 InvalidRequest O hash MD5 calculado da chave nãocoincidiu com o hash informado.

BadEncryptKey 400 InvalidRequest Os parâmetros de criptografiainformados não coincidiram com osusados originalmente.

InvalidRange 416 InvalidRange O intervalo solicitado não pode seratendido.

KeyTooLong 400 KeyTooLong A chave especificada é muito longa.

MalformedACLError 400 MalformedACLError O XML informado não foi bemformado ou não foi validado com oesquema ECS publicado.

MalformedXML 400 MalformedXML XML malformado (que não está deacordo com o xsd publicado) daconfiguração foi enviado.

S3

62 ECS 3,3 Guia de Acesso a dados

Page 63: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Error Code Código destatusHTTP

Código de erro genérico Descrição do erro

MaxMessageLengthExceeded 400 MaxMessageLengthExceeded A solicitação era muito grande.

MetadataTooLarge 400 MetadataTooLarge Os cabeçalhos de metadadosexcedem o tamanho máximo demetadados permitido.

Obs.

O cabeçalho da solicitação PUT élimitado a 8 KB de tamanho. Nocabeçalho da solicitação PUT, osmetadados definidos pelo usuário sãolimitados a 2 KB de tamanho. Osmetadados definidos pelo usuário sãoum conjunto de pares de chave-valor.O tamanho dos metadados definidospelo usuário é medido usando-se asoma do número de bytes de cadachave e valor mais quatro: dois-pontos e espaço para separar o nomee o valor, e dois bytes para o feed delinha do caractere carriage return.

InvalidProject 400 InvalidProject O projeto especificado é inválido.

InvalidVPool 400 InvalidVPool O vPool especificado (grupo dereplicação) é inválido.

InvalidNamespace 400 InvalidNamespace O namespace especificado é inválido.

MethodNotAllowed 405 MethodNotAllowed O método especificado não épermitido para esse recurso.

MissingContentLength 411 MissingContentLength O cabeçalho HTTP conteúdo-comprimento deve ser informado.

MissingRequestBodyError 400 MissingRequestBodyError Um documento XML vazio foienviado. The error message is: Ocorpo da solicitação está vazio.

MissingSecurityHeader 400 MissingSecurityHeader Faltou um cabeçalho necessário nasolicitação.

IncompleteLifecycleConfig 400 IncompleteLifecycleConfig Pelo menos uma ação precisa serespecificada em uma regra.

MalformedLifecycleConfig 400 MalformedLifecycleConfig O XML informado não foi bemformado ou não foi validado com oesquema publicado.

MalformedDateLifecycleConfig 400 MalformedDateLifecycleConfig O XML informado não foi bemformado ou não foi validado com oesquema publicado. Data ou diasinválidos.

NoSuchBucket 404 NoSuchBucket O bucket especificado não existe.

S3

Códigos de erro do ECS S3 63

Page 64: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Error Code Código destatusHTTP

Código de erro genérico Descrição do erro

NoSuchBucketPolicy 404 NoSuchBucketPolicy A política de bucket não existe.

NoSuchKey 404 NoSuchKey A chave especificada não existe.

NoSuchRetention 404 NoSuchRetention A retenção especificada não existe.

ObjectUnderRetention 409 ObjectUnderRetention O objeto está sob retenção e nãopode ser excluído nem modificado.

NoSuchUpload 404 NoSuchUpload O upload de várias peçasespecificado não existe. O ID deupload pode ser inválido.

Notimplemented 501 Notimplemented A funcionalidade solicitada não estáimplementada.

OperationAborted 409 OperationAborted Uma operação condicional conflitanteestá atualmente em andamento nesterecurso. Please try again.

PermanentRedirect 301 PermanentRedirect O bucket que você está tentandoacessar deve ser solucionado usandoo endpoint especificado. Envie todasas solicitações futuras para esteendpoint.

PreconditionFailed 412 PreconditionFailed Pelo menos uma das pré-condiçõesespecificadas não foi retida.

RequestIsNotMultiPartContent 400 RequestIsNotMultiPartContent O POST do bucket deve ser do tipocompartimento multipart/form-data.

Requesttimeout 400 Requesttimeout A conexão de soquete com o servidornão foi lida nem gravada no períodode tempo limite.

RequestTimeTooSkewed 403 RequestTimeTooSkewed A diferença entre o tempo desolicitação e o tempo do servidor émuito grande.

DateIsRequired 403 Accessdenied É necessária uma data ou cabeçalhox-amz-date válidos.

SignatureDoesNotMatch 403 SignatureDoesNotMatch A assinatura da solicitação calculadanão coincide com a assinaturainformada. Verifique a chave deacesso secreto e o método deassinatura.

ZeroAmzExpires 403 Proibido Valor zero especificado para x-amz-expires.

InvalidAmzExpires 400 Solicitação incorreta Valor inválido especificado para x-amz-expires.

ServiceUnavailableindica 503 ServiceUnavailableindica Reduza a taxa de solicitação.

S3

64 ECS 3,3 Guia de Acesso a dados

Page 65: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Error Code Código destatusHTTP

Código de erro genérico Descrição do erro

TemporaryRedirect 307 TemporaryRedirect As solicitações estão sendoredirecionadas para o bucketenquanto o DNS é atualizado.

TooManyBuckets 400 TooManyBuckets A solicitação tentou criar maisbuckets do que o permitido.

UnexpectedContent 400 UnexpectedContent A solicitação não oferece suporte aesse conteúdo.

UnresolvableGrantByEmailAddress 400 UnresolvableGrantByEmailAddress O endereço de e-mail que vocêinformou não corresponde a umaconta registrada.

InvalidBucketState 409 InvalidBucketState A solicitação não é válida com oestado atual do bucket.

SlowDown 503 SlowDown Reduza a taxa de solicitação.

AccountProblem 403 AccountProblem Há um problema com a contaespecificada que impede a conclusãobem-sucedida da operação.

CrossLocationLoggingProhibited 403 CrossLocationLoggingProhibited O registro de localização cruzada nãoé permitido. Os buckets em umalocalização geográfica não podemregistrar informações em um bucketem outro local.

ExpiredToken 400 ExpiredToken O token informado expirou.

IllegalVersioningConfigurationException

400 IllegalVersioningConfigurationException

A configuração de versãoespecificada na solicitação é inválida.

IncorrectNumberOfFilesInPostRequest

400 IncorrectNumberOfFilesInPostRequest

O POST requer exatamente umupload de arquivo por solicitação.

InvalidAddressingHeader 500 InvalidAddressingHeader A função especificada deve serAnônima.

InvalidLocationConstraint 400 InvalidLocationConstraint A restrição de localizaçãoespecificada não é válida.

InvalidPolicyDocument 400 InvalidPolicyDocument O conteúdo do formulário nãosatisfaz as condições especificadasno documento de política.

InvalidStorageClass 400 InvalidStorageClass A classe de armazenamentoespecificada não é válida.

InvalidTargetBucketForLogging 400 InvalidTargetBucketForLogging O bucket de destino para registrosnão existe, não é de sua propriedade,ou não tem as garantias apropriadaspara o grupo de entrega de registros.

InvalidToken 400 InvalidToken O token fornecido é malformado ouinválido.

S3

Códigos de erro do ECS S3 65

Page 66: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Error Code Código destatusHTTP

Código de erro genérico Descrição do erro

InvalidURI 400 InvalidURI Não é possível analisar o URIespecificado.

MalformedPOSTRequest 400 MalformedPOSTRequest O corpo da solicitação POST nãoestá bem formado multipart/form-data.

ErroMaxPostPreDataLengthExceeded

400 ErroMaxPostPreDataLengthExceeded

Os campos de solicitação POSTanteriores ao arquivo de upload erammuito grandes.

NoLoggingStatusForKey 400 NoLoggingStatusForKey Não existe algo como um sub-recursode status de registro para uma chave.

NoSuchLifecycleConfiguration 404 NoSuchLifecycleConfiguration A configuração do ciclo de vida nãoexiste.

NoSuchVersion 404 NoSuchVersion Indica se o ID de versão especificadona solicitação não coincide com umaversão existente.

RequestTorrentOfBucketError 400 RequestTorrentOfBucketError Não é permitido solicitar o arquivotorrent de um bucket.

UserKeyMustBeSpecified 400 UserKeyMustBeSpecified O POST do bucket deve conter onome do campo especificado. Se forespecificado, verifique a ordem doscampos.

AmbiguousGrantByEmailAddress 400 AmbiguousGrantByEmailAddress O endereço de e-mail informado estáassociado a mais de uma conta.

BucketAlreadyOwnedByYou 409 BucketAlreadyOwnedByYou A solicitação anterior de criar obucket nomeado deu certo e você jáo tem.

CredentialsNotSupported 400 CredentialsNotSupported A solicitação não aceita credenciais.

InlineDataTooLarge 400 InlineDataTooLarge Os dados em linha excederam otamanho máximo permitido.

InvalidPayer 403 InvalidPayer Todo o acesso a este objeto foidesativado.

TokenRefreshRequired 400 TokenRefreshRequired O token informado deve seratualizado.

AccessModeNotSupported 409 AccessModeNotSupported O bucket não aceita o acesso dearquivo ou o modo de acessosolicitado não é permitido.

AccessModeInvalidToken 409 AccessModeInvalidToken O token para a solicitação da chavede acesso ao arquivo é inválido.

NoSuchBaseUrl 400 NoSuchBaseUrl O BaseUrl especificado não existe.

S3

66 ECS 3,3 Guia de Acesso a dados

Page 67: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Error Code Código destatusHTTP

Código de erro genérico Descrição do erro

NoDataStoreForVirtualPool 404 NoDataStoreForVirtualPool Nenhum armazenamento de dadosencontrado para o Grupo dereplicação do bucket.

VpoolAccessNotAllowed 400 Não é possível acessar o Vpool O bucket está hospedado em umGrupo de replicação que não estáacessível a partir do S3.

InvalidCorsRequest 403 InvalidCorsRequest Solicitação CORS inválida.

InvalidCorsRule 400 InvalidCorsRule Regra CORS inválida.

NoSuchCORSConfiguration 404 NoSuchCORSConfiguration A configuração CORS não existe.

InvalidAclRequest 404 NoACLFound A ACL não existe.

InsufficientStorage 507 Armazenamento insuficiente O servidor não pode processar asolicitação, porque não há espaçosuficiente no disco.

BadMaxParts 400 InvalidArgument O argumento max-parts deve ser umnúmero inteiro entre 0 e 2147483647.

BucketNotFound 404 NoSuchBucket O bucket especificado não existe.

Notsupported 400 Não compatível O bucket pode estar bloqueado.

InvalidContentLength 400 Comprimento de conteúdo inválido O comprimento de conteúdo temvalor inválido.

InvalidVersioningRequest 403 Solicitação inválida para controle deversão

O bucket está em modo deconformidade.

InvalidLifeCycleRequest 403 Solicitação inválida para o ciclo devida

O bucket está em modo deconformidade.

RetentionPeriodRequired 400 Solicitação inválida para o bucketcom conformidade

O bucket exige um período deretenção.

Conflito 409 Conflito O bucket pode estar bloqueado.

MethodForbidden 403 Proibido Verifique se a cota foi excedida.

NotAcceptableindica 406 Codificação de conteúdo nãoaceitável

O objeto Content-Encoding não

coincide com o Accept-Contentsolicitado.

InvalidEncoding 400 Codificação de URL inválida A codificação de URL usada éinválida.

InvalidMetadataQuery 400 Consulta de metadados inválidainserida

A consulta de metadados inserida nãocoincide com a sintaxe válida

InvalidMetadataSearchList 400 Lista de pesquisa de metadadosinválida inserida

Um keyname na solicitação não éuma chave indexável válida ou oformato da lista de solicitações estáincorreto.

S3

Códigos de erro do ECS S3 67

Page 68: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Error Code Código destatusHTTP

Código de erro genérico Descrição do erro

MetadataSearchNotEnabled 405 Pesquisa de metadados não ativada A pesquisa de metadados não estáativada para este bucket.

MetadataSearchBadParameter 400 Parâmetro de pesquisa de metadadosinválido usado na consulta

Nome da chave de índice de pesquisainválido; classifique o nome da chaveou o valor do nome do atributo.

MetadataSearchInvalidArgument 400 Parâmetro de pesquisa de metadadosinválido usado na consulta

Formato ou operador de valor deíndice de pesquisa inválidos usados.

MetadataSearchInvalidValueforDataType

400 A indexação de chave de pesquisa demetadados encontrou um valor deentrada inválido

Falha na operação de objeto, porqueum valor de metadados do usuárionão pode ser convertido em seudatatype definido.

MetadataOperationNotSupported 405 Não há suporte para a operação depesquisa de metadados

Consulta de metadados comoperadores lógicos AND e OR nãoaceita.

MetadataSearchBadSortParameter 400 Parâmetro de classificação inválidode pesquisa de metadados

O parâmetro de classificação deveestar presente na consulta como umparâmetro de pesquisa.

MetadataSearchRestriction 400 Os buckets que são criptografadosou estão em um namespacecriptografado não podem ter apesquisa de metadados ativada

A pesquisa de metadados émutuamente exclusiva com acriptografia bucket/namespace.

MetadataSearchTooManyIndexKeys 400 O número de chaves de índice excedeo máximo permitido

O número de chaves a seremindexadas excede a quantidademáxima permitida; tente com menoschaves.

InvalidOrNoCustomerProvidedEncryptionKey

400 Chave de criptografia inválida ou nãofornecida pelo cliente

Nenhuma chave de criptografia, ouuma chave de criptografia que nãocoincidiu com a do sistema, foifornecida.

DareUnavailable 403 Criptografia do lado do servidor(D@RE) não é aceita

D@RE/license está indisponível,portanto, as solicitações decriptografia do lado do servidor nãosão aceitas.

SelfCopyInvalidRequest 400 InvalidRequest A solicitação de cópia é ilegal porqueestá tentando copiar um objeto em simesmo sem alterar os metadados doobjeto ou os atributos de criptografia.

OverLappingPrefixes 400 Solicitação inválida Prefixos sobrepostos encontrados.

SamePrefix 400 Solicitação inválida Duas regras encontradas com omesmo prefixo.

XAmzContentSHA256Mismatch 400 XAmzContentSHA256Mismatch O Content-SHA256 especificado nãocoincidiu com o que foi recebido.

S3

68 ECS 3,3 Guia de Acesso a dados

Page 69: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Error Code Código destatusHTTP

Código de erro genérico Descrição do erro

InvalidJSON 400 InvalidJSON As políticas devem ter JSON válido eo primeiro byte deve ser {.

InvalidBucketPolicy 400 InvalidBucketPolicy Política de bucket inválida.

MalformedPolicy 400 MalformedPolicy Política malformada.

MaxIDLengthExceeded 400 InvalidArgument O comprimento da identificação nãodeve exceder o limite permitido de255.

CrossHeadAccessBeforeUpgrade 400 InvalidRequest Não há suporte para acesso de títulocruzado.

InvalidDate 400 InvalidArgument A data não deve ser anterior a1970-01-01T00:00:00.000Z.

BadContentLengthRequest 400 Requesttimeout Conteúdo-Comprimento especificadonão coincide com o comprimento doconteúdo no corpo.

S3

Códigos de erro do ECS S3 69

Page 70: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

S3

70 ECS 3,3 Guia de Acesso a dados

Page 71: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

CAPÍTULO 2

OpenStack Swift

O ECS é compatível com a API do Swift OpenStack e pode ser usado com aplicativoscompatíveis com essa API. Esta seção descreve os métodos compatíveis, as extensõesdo ECS e o mecanismo de autenticação.

l Suporte a OpenStack Swift no ECS................................................................... 72l Operações compatíveis com o OpenStack Swift................................................ 72l Extensões do Swift............................................................................................ 74l Extensões de intervalo de bytes do Swift...........................................................74l Retenção............................................................................................................78l File system habilitado......................................................................................... 79l Interoperabilidade entre S3 e Swift.................................................................... 79l Autenticação do OpenStack Swift..................................................................... 80l Autorização de recipiente...................................................................................87l Códigos de erro do ECS Swift............................................................................89

OpenStack Swift 71

Page 72: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Suporte a OpenStack Swift no ECSO ECS inclui o suporte à API do OpenStack Swift e pode substituir o Swift em umambiente OpenStack. Esta seção descreve as operações compatíveis e os mecanismosde autorização e autenticação.

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

Protocolo Portas

HTTP 9024

HTTPS 9025

Os exemplos que mostram o uso da API do OpenStack Swift podem ser encontradosem Exemplos de API do OpenStack.

Em um ambiente OpenStack, o ECS pode ser usado como um substituto para ocomponente OpenStack Swift ou junto com uma instalação existente do OpenStackSwift. Embora o ECS possa ser usado com qualquer distribuição do OpenStack, ele foitestado com o Mirantis OpenStack 9.1. Observe que o ECS foi testado como umsubstituto do Swift para o armazenamento em object do usuário, e não como um back-end do Glance.

O uso do OpenStack com o ECS exige configurar o ECS para que ele possa autenticaros usuários do OpenStack. Você pode consultar Autenticação usando a integração doECS Keystone V3 para obter informações sobre a configuração da autenticação.

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

Essas informações são obtidas da seção API de armazenamento em object V1 dadocumentação Referência de APIs do OpenStack.

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

Tabela 13 Chamadas do OpenStack compatíveis

Método Caminho Descrição

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

POST v1/{account} Cria ou atualiza os metadados de uma conta associando seuscabeçalhos de metadados personalizados com o nível de URIda conta. Esses cabeçalhos devem ter o formato X-Account-Meta-*.

GET v1/{account}/{container} Recupera uma lista de objetos armazenados no recipiente.

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 do recipienteassociando cabeçalhos de metadados personalizados com o

OpenStack Swift

72 ECS 3,3 Guia de Acesso a dados

Page 73: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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

Método Caminho Descrição

nível de URI do recipiente. Esses cabeçalhos devem ter oformato X-Container-Meta-*.

HEAD v1/{account}/{container} Recupera os metadados do recipiente. Atualmente não inclui onú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.

Obs.

O intervalo GET em um Static Large Object (SLO) nãofuncionará se os segmentos foram criados antes do ECS 3.0.

PUT v1/{account}/{container}/{object} Grava ou sobregrava os conteúdos e metadados de um objeto.Usado para copiar objetos existente para outro objeto usandoo cabeçalho X-Copy-From para designar a origem.

Para um DLO (Dynamic Large Object, objeto grandedinâmico) ou um SLO (Static Large Object, objeto grandeestático), o objeto pode ser um manifesto. Consulte a documentação do Swift para obter detalhes.

DELETE v1/{account}/{container}/{object} Remove um objeto do sistema de armazenamentopermanentemente. Em combinação com o comando COPYvocê pode usar COPY e depois DELETE para moverefetivamente um objeto.

HEAD v1/{account}/{container}/{object} Recupera metadados de objeto e outros cabeçalhos de HTTPpadrão.

POST v1/{account}/{container}/{object} Define e sobregrava metadados arbitrários de objetos. Essesmetadados devem ter o formato X-Objeto-Meta-*. X-Delete-At ou X-Delete-After para objetos em expiração também podeser atribuído por essa operação. Mas outros cabeçalhos comoo tipo de conteúdo não podem ser alterados por essaoperação.

Tabela 14 Recursos adicionais

Recurso Observações

URLs temporárias O ECS dá suporte ao uso de URLs temporárias para permitir que os usuáriostenham acesso aos objetos sem necessidade de credenciais.

Mais informações podem ser encontradas na documentação do Swift.

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

OpenStack Swift

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

Page 74: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Tabela 15 Chamadas do OpenStack Swift incompatíveis

Método Caminho Descrição

COPY v1/{account}/{container}/{object} A operação de cópia pode ser obtida usando PUT v1/{account}/{container}/{object} com o cabeçalho X-Copy-From.

HEAD v1/{account} Recupere os metadados da conta. Não é totalmentecompatível, pois retorna zero para os bytes armazenados (X-Account-Bytes-Used).

Extensões do SwiftO ECS é compatível com várias extensões para a API Swift.

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

l Extensões de intervalo de bytes do Swift

l Retenção

l File system habilitado

Extensões de intervalo de bytes do Swift

As seguintes extensões do ECS são oferecidas para realizar as seguintes operaçõesem faixas de bytes do Swift:

l Atualizando um intervalo de bytes em um objeto

l Sobregravação de parte de um objeto

l Acrescentando dados a um objeto

l Lendo vários intervalos de byte em um objeto

Atualizando um intervalo de bytes em um objetoVocê pode usar as extensões ECS para o protocolo Swift a fim de atualizar a faixa debytes de um objeto.

A atualização parcial de um objeto é útil em muitos casos. Por exemplo, para modificarum cabeçalho binário armazenado no início de um arquivo grande. No Swift ou emoutras plataformas compatíveis com Swift, é necessário enviar o arquivo completonovamente.

O exemplo a seguir demonstra o uso da atualização do intervalo de bytes. No exemplo,object1 tem o valor The quick brown fox jumps over the lazy dog.

GET /container1/object1 HTTP/1.1Date: Mon, 12 Mar 2018 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, 12 Mar 2018 20:04:40 GMTContent-Type: application/octet-stream

OpenStack Swift

74 ECS 3,3 Guia de Acesso a dados

Page 75: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Last-Modified: Mon, 12 Mar 2018 20:04:28 GMTETag: 6Content-Type: application/jsonContent-Length: 43 The quick brown fox jumps over the lazy dog.

Para atualizar um intervalo de bytes específico dentro deste objeto, o cabeçalhoRange na solicitação de dados de objeto deve incluir os deslocamentos do início e dofim do objeto que você está atualizando. 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 são substituídos pelo valorenviado na solicitação. Aqui, o novo valor green está sendo enviado.

PUT /container1/object1 HTTP/1.1Content-Length: 5Range: bytes=10-14ACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 12 Mar 2018 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, 12 Mar 2018 20:15:16 GMT

Ao ler o objeto novamente, o novo valor agora será The quick green fox jumpsover the lazy dog. Um intervalo de bytes específico dentro do objeto éatualizado, substituindo a palavra brown pela palavra green.

GET /container1/object1 HTTP/1.1Cookie: JSESSIONID=wdit99359t8rnvipinz4tbtuACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 12 Mar 2018 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, 12 Mar 2018 20:16:00 GMTContent-Type: application/octet-streamLast-Modified: Mon, 12 Mar 2018 20:15:16 GMTETag: 10Content-Type: application/jsonContent-Length: 43 The quick green fox jumps over the lazy dog.

OpenStack Swift

Atualizando um intervalo de bytes em um objeto 75

Page 76: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Sobregravação de parte de um objetoVocê pode usar as extensões do ECS para o protocolo Swift para substituir parte deum objeto.

Para sobregravar parte de um objeto, você fornece os dados que serão gravados e odeslocamento de início. Os dados na solicitação são gravados com início nodeslocamento fornecido. O formato é: Range: <startingOffset>-Por exemplo, para gravar os dados brown cat iniciando no deslocamento 10, vocêemite a seguinte solicitação PUT:

PUT /container1/object1 HTTP/1.1Content-Length: 9Range: bytes=10-ACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 12 Mar 2018 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, 12 Mar 2018 20:51:41 GMT

Quando o objeto é recuperado, parte dos dados é substituída no deslocamento inicialfornecido (green fox é substituído por brown cat) e o valor final é: The quickbrown cat jumps over the lazy dog and cat.

GET /container1/object1 HTTP/1.1Date: Mon, 12 Mar 2018 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, 12 Mar 2018 20:51:55 GMTContent-Type: application/octet-streamLast-Modified: Mon, 12 Mar 2018 20:51:41 GMTETag: 25Content-Type: application/jsonContent-Length: 51 The quick brown cat jumps over the lazy dog and cat.

Observe que quando você sobrescreve as partes existentes de um objeto, o tamanho eos números das novas partes são adicionados ao tamanho e números das partesexistentes que você substituiu. Por exemplo, em um bucket que tem uma parte com20 KB de tamanho, você sobrescreve 5 KB. Quando você consulta o bucket usandoGET /object/billing/buckets/{namespace}/{bucketName}/info, oresultado mostra total_mpu_size = 25 KB (não 20 KB) e total_mpu_parts = 2(não 1).

OpenStack Swift

76 ECS 3,3 Guia de Acesso a dados

Page 77: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Acrescentando dados a um objetoVocê pode usar as extensões ECS para o protocolo Swift para acrescentar dados a umobjeto.

Pode haver os casos em que é necessário acrescentar a um objeto, mas determinar odeslocamento exato de bytes não é eficiente ou útil. Nesse cenário, o ECS oferece acapacidade de acrescentar dados ao objeto sem especificar um deslocamento (odeslocamento correto é exibido a você na resposta). Por exemplo, para acrescentarlinhas ao arquivo de log, no Swift ou em outras plataformas compatíveis do Swift, vocêdeve enviar o arquivo de log completo novamente.

Um cabeçalho Range com o valor especial bytes=-1- é usado para acrescentardados a um objeto. Dessa forma, o objeto é estendido sem saber o tamanho do objetoexistente. O formato é: Range: bytes=-1-Uma solicitação de amostra, que apresenta o acréscimo a um objeto existente usandoum valor de Range de bytes=-1-, é mostrada no exemplo a seguir. Aqui o valor andcat é enviado na solicitação.

PUT /container1/object1 HTTP/1.1Content-Length: 8Range: bytes=-1-ACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 12 Mar 2018 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, 12 Mar 2018 20:46:01 GMT

Quando o objeto é recuperado, and cat é acrescentado e você vê o valor total:Thequick green fox jumps over the lazy dog and cat.

GET /container1/object1 HTTP/1.1ACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 12 Mar 2018 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, 12 Mar 2018 20:46:56 GMTContent-Type: application/octet-streamLast-Modified: Mon, 12 Mar 2018 20:46:01 GMTETag: 24Content-Type: application/jsonContent-Length: 51 The quick green fox jumps over the lazy dog and cat.

OpenStack Swift

Acrescentando dados a um objeto 77

Page 78: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Lendo vários intervalos de bytes em um objetoVocê pode usar as extensões ECS para o protocolo Swift para ler várias intervalos debytes de um objeto.

Ler várias partes de um objeto é muito útil em diversos casos. Por exemplo, para obtervárias partes do vídeo. No Swift ou em outras plataformas compatíveis com Swift, énecessário enviar uma solicitação diferente para cada parte

Para ler dois intervalos de bytes específicos no objeto chamado object1, você emitea seguinte solicitação GET para Range: bytes==4-8,41-44. A resposta de leiturarefere-se às palavras quick e lazy.

GET /container1/object1 HTTP/1.1Date: Mon, 12 Mar 2018 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, 12 Mar 2018 20:51:55 GMTContent-Type: multipart/byteranges;boundary=bound04acf7f0ae3cccLast-Modified: Mon, 12 Mar 2018 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 cabeçalho Swift do ECS dá suporte à retenção de objetos para impedir que sejamexcluídos ou modificados por um período de tempo especificado. Trata-se de umaextensão do ECS e não está disponível na API Swift 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.

OpenStack Swift

78 ECS 3,3 Guia de Acesso a dados

Page 79: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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 devem serdefinidos com a API REST de gerenciamento do ECS (ou no Portal do ECS).

Período de retenção no bucket

Um período de retenção armazenado em relação a um bucket configura umperíodo de retenção para todos os objetos, com o período de retenção em nível deobjeto ou a política usada para oferecer uma configuração específica do objetoquando uma retenção mais longa for necessária. O período de retenção éconfigurado usando-se um cabeçalho x-emc-retention-period no 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 configurado diretamente no objeto ouusando a política de retenção do objeto, é usada para determinar se a operação podeser realizada.

File system habilitadoOs buckets Swift também podem ser habilitados para file system (FS) para que osarquivos gravados usando o protocolo Swift 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 Swift. O acessoao file system também pode ser habilitado durante a criação de um bucket no Portaldo ECS (usando o API REST de gerenciamento do ECS).

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

Você pode encontrar mais informações sobre o suporte cruzado com file systems noGuia de administração do ECS, que está disponível em Página de Documentação doproduto ECS.

Interoperabilidade entre S3 e SwiftOs protocolos S3 e Swift podem interoperar, de modo que os aplicativos S3 possamacessar objetos nos buckets do Swift e os aplicativos Swift possam acessar os objetosnos buckets do S3.

Para obter detalhes, consulte Interoperabilidade entre S3 e Swift.

Obs.

A interoperabilidade entre Swift e S3 não é compatível com o uso de políticas debucket. As políticas de bucket se aplicam somente ao acesso usando o cabeçalho S3 enão são impostas ao acessar um bucket usando a API Swift.

OpenStack Swift

File system habilitado 79

Page 80: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Autenticação do OpenStack SwiftO 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.

v2

O ECS permite aos usuários de objeto a autenticação com o serviço do ECS Swiftpara obter um token restrito, ou seja, um token associado a um tenant(equivalente a um projeto), que pode ser usado ao realizar chamadas de APIsubsequentes para o serviço do ECS Swift. Consulte Autenticação do OpenStackversão 2

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.

Para protocolos v1 e v2, o acesso à área de armazenamento de objetos do ECS usandoo protocolo OpenStack Swift requer uma conta de usuário de objeto do ECS e umasenha do 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 Keystone V3.

A atribuição de credenciais do Swift a usuários de objeto do ECS é descrita em Criarusuários Swift no Portal do ECS.

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

Antes de você começar

l Essa operação requer a função de Administrador do sistema ou de namespace noECS.

l O Administrador do sistema pode atribuir novos usuários de objeto a qualquernamespace.

l Um Administrador de namespace pode atribuir novos usuários de objeto aonamespace do qual ele é o administrador.

l O usuário Swift deve pertencer a um grupo OpenStack. Um grupo é um conjuntode usuários com uma função atribuída pelo administrador do OpenStack Swift.Todos os usuários do Swift que pertencem ao grupo admin podem executar todasas operações nos buckets (contêineres) do Swift no namespace ao qual elespertencem. Você não deve adicionar usuários do Swift comuns ao grupo admin.Para todos os usuários do Swift que pertencem a qualquer grupo diferente deadmin, a autorização depende das permissões definidas no bucket do Swift. Vocêpode atribuir permissões no bucket da interface do usuário do painel de controledo OpenStack ou no Portal do ECS usando a ACL grupo personalizado para o

OpenStack Swift

80 ECS 3,3 Guia de Acesso a dados

Page 81: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

bucket. Para obter mais informações sobre ACLs de grupo personalizadas e aadição de usuários de objeto ao ECS, consulte o Guia de Administração do ECS, queestá disponível em Página de Documentação do produto ECS.

Procedimento

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

2. Na página User Management, você pode criar um novo usuário de objeto queacessará o armazenamento de objetos ECS por meio do protocolo de objetoSwift de uma de duas maneiras:

a. Clique em New Object User para criar um novo usuário de objeto.

l Na página New Object User, no campo Name, digite um nome para ousuário de objeto.

l No campo Namespace, selecione o namespace ao qual o usuáriopertence.

l Clique em Next to Add Passwords.

b. Clique em Edit, na coluna Actions, ao lado de um usuário existente eadicione uma senha do Swift ao usuário existente.

3. Na página Update Passwords for User <username>, no campo Swift Groups,informe o grupo Swift ao qual o usuário pertence.

Se você especificar o grupo admin, os usuários poderão automaticamenteexecutar todas as operações de contêiner. Se você especificar um grupodiferente, esse grupo deve receber permissões no contêiner. Consulte Autorização em contêineres para obter mais informações sobre a autorizaçãoem contêineres.

4. No campo Swift Password, digite uma senha para o usuário do Swift.

5. Clique em Set Groups & Password.

Autenticação do OpenStack Versão 1Você pode autenticar-se no serviço ECS OpenStack Swift usando a V1 do protocolode 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) ou pode acionar a API REST do ECS a seguir para gerar uma senha.

Solicitação:

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

Resposta:

HTTP 200

OpenStack Swift

Autenticação do OpenStack Versão 1 81

Page 82: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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: ECS_e6384f8ffcd849fd95d986a0492ea9a6 Content-Length: 0

Resultado

Se o UID e a senha forem validados pelo ECS, a URL e o token de armazenamentoserão exibidos no cabeçalho da resposta. As solicitações adicionais são autenticadasao incluir esse token. A URL de armazenamento apresenta o nome do host e oendereç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 X-Auth-Token: ECS_8cf4a4e943f94711aad1c91a08e98435 Server: Jetty(7.6.4.v20120524)

OpenStack Swift

82 ECS 3,3 Guia de Acesso a dados

Page 83: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

$ 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 2O ECS inclui suporte limitado à 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 em object do ECS usando o protocolo Swift.

Apenas tokens restritos a um namespace do ECS (equivalente a um projeto Swift)podem ser usados para fazer chamadas API do Swift. Um token não restrito pode serobtido e utilizado para acessar o serviço de identidade para recuperar a identidade dotenant antes de obter um token restrito a um tenant e a um endpoint de serviço.

O token restrito e o endpoint de serviço podem ser usados para a autenticação noECS, 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

Procedimento

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

curl -v -X POST -H 'ACCEPT: application/json' -H "Content-

OpenStack Swift

Autenticação do OpenStack Versão 2 83

Page 84: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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 precedidos pelo prefixo "ecs_".

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

2. Recupere as informações do tenant associadas ao token não restrito.

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":[]}, "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"}]}]}}

OpenStack Swift

84 ECS 3,3 Guia de Acesso a dados

Page 85: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

4. Use a URL do token restringido e do ponto de extremidade de serviço paraautenticação do Swift. 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 Keystone V3.

Obs.

No domínio do Keystone, um projeto pode ser considerado como 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 no grupo (função) 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 a integraçãoentre OpenStack Swift e ECS.

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

2. Se a operação for uma operação de objeto, o ECS avalia as ACLs associadas aoobjeto para determinar se a operação será permitida.

3. Se a operação for uma operação de contêiner, o ECS avaliará a operaçãosolicitada. Se o usuário tiver a função admin, pode executar as seguintesoperações de contêiner: listar, criar, atualizar, ler e excluir.

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.

OpenStack Swift

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

Page 86: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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 a integração entre OpenStack Swift e ECSPara garantir que um serviço do OpenStack Swift que usa o Keystone V3 possaautenticar com o ECS, você deve garantir que as configurações do Swift e do ECSsejam consistentes.

Antes de você começar

Os seguintes pré-requisitos também se aplicam:

l Certifique-se de ter as credenciais da conta de administrador do serviço Swift.Essas credenciais são necessárias para que o ECS possa se autenticar no serviçoKeystone.

l Certifique-se de ter a identidade do projeto Keystone ao qual pertencem osusuários do Swift que acessam o ECS.

l Certifique-se de ter as credenciais da conta de administrador do sistema ECS.

Procedimento

1. Certifique-se de que o endpoint do ECS tenha sido adicionado ao catálogo deserviço do Swift e esteja formatado corretamente.

Você deve garantir que os endpoints estejam localizados no domínio "default"do Keystone.

2. Faça log-in no Portal do ECS como administrador do sistema.

3. 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 Adicionar um provedor de autenticação Keystone.

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

Obtenha o ID de projeto do Keystone.

a. No Portal do ECS, selecione Manage > Namespace > New Namespace

b. Digite o nome do namespace.

Esse deve ser o nome do projeto Swift.

c. Digite a conta de administrador de namespace como o User Admin.

Esse deve ser o nome de um usuário de gerenciamento criado anteriormente.

d. Faça as outras configurações de namespace necessárias.

Para obter mais informações sobre as configurações de namespace e sobre acriação de usuários no ECS, consulte o Guia de Administração do ECS, queestá disponível em Página de Documentação do produto ECS.

Resultado

Depois que o namespace é criado, os usuários que pertencem ao projeto Keystonecorrespondente e que têm um token que está restrito a esse projeto podem seautenticar no ECS (por meio da comunicação do ECS com o provedor de autenticação

OpenStack Swift

86 ECS 3,3 Guia de Acesso a dados

Page 87: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Keystone) e usar a API do Swift para acessar a área de armazenamento de objetos doECS.

Adicionar um provedor de autenticação KeystoneVocê pode adicionar um provedor de autenticação Keystone para autenticar osusuários do OpenStack Swift.

Antes de você começar

l Essa operação requer a função de Administrador do sistema no ECS.

l Você pode adicionar apenas um provedor de autenticação Keystone.

l Obtenha as informações do provedor de autenticação listadas em Configuraçõesdo provedor de autenticação Keystone.

Procedimento

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

2. Na página Authentication Provider Management, clique em NewAuthentication Provider.

3. Na página New Authentication Provider, no campo Type, selecione KeystoneV3.

Os campos obrigatórios são exibidos.

4. Digite os valores nos campos Name, Description, Server URL, KeystoneAdministrator e Admin Password. Para obter mais informações sobre essescampos, consulte Configurações do provedor de autenticação Keystone.

5. Clique em Save.

Configurações do provedor de autenticação Keystone

Você deve fornecer as informações do provedor de autenticação quando adicionar oueditar um provedor de autenticação Keystone.

Tabela 16 Configurações do provedor de autenticação Keystone

Campo Descrição

Name O nome do provedor de autenticação Keystone. Esse nome é usado para identificaro provedor no ECS.

Descrição Texto gratuito da descrição do provedor de autenticação.

Tipo Keystone V3.

URL do servidor URl do sistema Keystone ao qual o ECS se conecta para validar os usuários Swift.

Keystone Administrator Nome de usuário de um administrador do sistema Keystone. O ECS se conecta aosistema Keystone usando esse nome de usuário.

Senha do admin Senha do administrador especificado do Keystone.

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

OpenStack Swift

Autorização de recipiente 87

Page 88: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

l Autorização do estilo em grupo

O ECS dá suporte apenas à 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 para cada recipiente com base nasListas de controle de acesso X-Container-Read e X-Container-Write do recipiente. Asseguintes operaçõ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}"

Esse comando permite que os usuários pertencentes a GROUP LIST tenham direitosde acesso de leitura ao 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 é concedida, os usuários que pertencem ao(s)grupo(s) de destino podem executar as operações a seguir:

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}"

Esse comando permite que os usuários pertencentes a GROUP LIST tenham direitosde acesso de gravação ao 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 as operações a seguir:

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

l PUT objects within container - Gravar/sobrepor objetos dentro do recipiente.

OpenStack Swift

88 ECS 3,3 Guia de Acesso a dados

Page 89: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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

Códigos de erro do ECS SwiftOs códigos de erro que podem ser gerados pelo título do OpenStack Swift estãolistados na tabela a seguir. Todos os erros são do tipo: ObjectAccessException.

Error Code CódigodestatusHTTP

Status HTTP Descrição

ERROR_NAMESPACE_NOT_FOUND 400 BAD_REQUEST Namespace não encontrado.

ERROR_KEYPOOL_NOT_FOUND 404 NOT_FOUND Keypool não encontrado.

ERROR_KEYPOOL_NOT_EMPTY 409 CONFLICT O keypool não está vazio.

ERROR_OBJECT_NOT_FOUND 404 NOT_FOUND Objeto não encontrado.

ERROR_VERSION_NOT_FOUND 404 NOT_FOUND Versão não encontrada.

ERROR_ACCESS_DENIED 403 FORBIDDEN nulo

ERROR_SERVICE_BUSY 503 SERVICE_UNAVAILABLE nulo

ERROR_PRECONDITION_FAILED 412 PRECONDITION_FAILED nulo

ERROR_INVALID_ARGUMENT 400 BAD_REQUEST Argumento inválido.

ERROR_BAD_ETAG 422 SC_UNPROCESSABLE_ENTITY Etag ruim.

ERROR_PROJECT_NOT_FOUND 404 NOT_FOUND SwiftException.NO_PROJECT_FOUND.

ERROR_NO_DEVICE 404 NOT_FOUND SwiftException.NO_DATA_STORE_FOUND.//add 416- Intervalo solicitado nãosatisfatório para errorMap.

ERROR_INVALID_RANGE 422 SC_REQUESTED_RANGE_NOT_SATISFIABLE

O intervalo solicitado não pode seratendido.

ERROR_INSUFFICIENT_STORAGE 507 SC_INSUFFICIENT_STORAGE O servidor não pode processar asolicitação, porque não há espaçosuficiente no disco.

ERROR_RETENTION_INCORRECT 404 SC_NOT_FOUND A retenção especificada não existe.

ERROR_OBJECT_UNDER_RETENTION 409 SC_CONFLICT O objeto está sob retenção e nãopode ser excluído nem modificado.

ERROR_METHOD_NOT_ALLOWED 403 SC_FORBIDDEN A cota pode ter sido excedida.

ERROR_BUCKET_NOT_FOUND 404 NOT_FOUND Bucket não encontrado.

ERROR_KEYPOOL_OPERATION_NOT_SUPPORTED

400 BAD_REQUEST Não há suporte para asfuncionalidades VersionEnabled eFileSystemEnabled.

ERROR_REP_GROUP_NOT_FOUND 400 BAD_REQUEST O Grupo de replicação especificadoé inválido.

OpenStack Swift

Códigos de erro do ECS Swift 89

Page 90: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Error Code CódigodestatusHTTP

Status HTTP Descrição

ERROR_OBJECT_METADATA_REACH_MAXIMUM

400 BAD_REQUEST Metadados excedem ocomprimento máximo permitido.

ERROR_KEYPOOL_LOCKED 409 CONFLICT O bucket pode estar bloqueado.

ERROR_INVALID_PART 409 CONFLICT O segmento eTag difere domanifesto.

ERROR_DELETE_DIRECTORY_NOT_EMPTY

409 CONFLICT O diretório não está vazio.

ERROR_API_INVALID 400 BAD_REQUEST Não há suporte para acesso detítulo cruzado.

OpenStack Swift

90 ECS 3,3 Guia de Acesso a dados

Page 91: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

CAPÍTULO 3

EMC Atmos

Esta seção descreve o suporte que o ECS oferece ao EMC Atmos.

l Suporte à API do EMC Atmos no ECS................................................................92l Chamadas API REST compatíveis do EMC Atmos..............................................92l Chamadas API REST incompatíveis do EMC Atmos........................................... 94l Suporte a sub-tenants nas chamadas API REST do EMC Atmos........................95l Extensões da API............................................................................................... 95l Códigos de erro do ECS Atmos......................................................................... 101

EMC Atmos 91

Page 92: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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 Atmos Object Service é disponibilizado nas portas a seguir.

Protocolo Portas

HTTP 9022

HTTPS 9023

O Guia do Programador do Atmos apresenta mais informações sobre as operaçõescompatíveis, como:

l Compatibilidade do formato do cabeamento para todas as operações compatíveis,que também se aplica às operações de API expostas pelo ECS.

l Autenticação com a API do Atmos e oferece exemplos abrangentes para muitosdos recursos compatíveis.

O Guia do Programador do Atmos está disponível em http://support.emc.com.

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. As chamadas para asinterfaces de objetos e de namespace são exibidas.

Tabela 17 Chamadas API REST do Atmos compatíveis

Método Caminho Descrição

Operações de serviços

GET /rest/service Obter informações sobre osistema

Operações de objeto

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

Crie um objeto

(Consulte as notas a seguir)

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

Excluir objeto

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

Atualizar objeto

(Consulte as notas a seguir)

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

EMC Atmos

92 ECS 3,3 Guia de Acesso a dados

Page 93: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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

Método Caminho Descrição

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

Obter os metadados do usuáriopara um objeto

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

Definir os metadados do usuário

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

Excluir metadados do usuário

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

Obter os metadados do sistemapara 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 metadados para umobjeto

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

Obter informações de objeto

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

Obter todos os metadados deobjetos

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 Leitura, gravação e exclusão de ACLs funcionam em ECS da mesma forma que emAtmos.

l POST /rest/objects é compatível com o cabeçalho x-emc-object-id para habilitarIDs de objeto preexistentes (44 caracteres).

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 o usuário marcasse

EMC Atmos

Chamadas API REST compatíveis do EMC Atmos 93

Page 94: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

um grupo de ilustrações (objetos) com uma marca como "Vacation2016". Mais tarde,o aplicativo pode responder a uma consulta de "Vacation2016" listando somente osobjetos marcados com essa marca relacionável.

Usando o protocolo Atmos com o ECS, um usuário não pode excluir nem modificar astags relacionáveis de outro usuário. Em algumas condições, essa capacidade épossibilitada 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.

Comprimento do ID de objetoO suporte para a API Atmos no ECS expande o comprimento do ID do objeto de 44caracteres para 101 caracteres. Portanto, ao mover os aplicativos do Atmos para oECS, você precisa estar ciente de que o comprimento do ID do objeto será diferente.

Para criar um objeto com o comprimento de ID de 44 caracteres preexistente, vocêpode usar o cabeçalho x-emc-object-id. Isso permite que os objetos sejam migradospara o Atmos.

Chamadas API REST incompatíveis do EMC Atmos

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

Tabela 18 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 de acesso

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

EMC Atmos

94 ECS 3,3 Guia de Acesso a dados

Page 95: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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 (por exemplo, [email protected] ) e x-emc-signature.

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

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

Obs.

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

Extensões da APIO ECS é compatível com várias extensões para a API Atmos.

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

l Acrescentando dados a um objeto

l Suporte do ECS para períodos de retenção e expiração da retenção de objetos doAtmos

Acrescentando dados a um objetoVocê pode usar as extensões ECS para o protocolo EMC Atmos para acrescentardados a um objeto.

Pode haver os casos em que é necessário acrescentar a um objeto, mas determinar odeslocamento exato de bytes não é eficiente ou útil. Nesse cenário, o ECS oferece acapacidade de acrescentar dados atomicamente ao objeto sem especificar umdeslocamento (o deslocamento correto é exibido a você na resposta).

Um cabeçalho Range com o valor especial bytes=-1- é usado para acrescentardados a um objeto. Dessa forma, o objeto pode ser estendido sem saber o tamanho doobjeto existente. O formato é: Range: bytes=-1-

EMC Atmos

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

Page 96: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Uma solicitação de amostra, que apresenta o acréscimo a um objeto existente usandoum valor de Range de bytes=-1-, é mostrada no exemplo a seguir. Aqui o valor andcat é enviado na solicitaçã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: 24Content-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.

Quando o objeto é recuperado, and cat foi acrescentado e você pode ver o valortotal:The quick green fox jumps over the lazy dog and cat.

Suporte do ECS para períodos de retenção e expiração da retenção de objetosdo Atmos

O ECS é compatível com a configuração de períodos de retenção e expiração daretenção de objetos do Atmos.

Períodos de retençãoOs períodos de retenção definem por quanto tempo o ECS retém um objeto antes deele poder ser editado ou excluído. Durante o período de retenção, o objeto não poderáser editado nem excluído do sistema; isso só mudará após a expiração do período deretenção.

Durante a criação de um objeto do Atmos no ECS, a retenção do objeto pode ser:

l Definida diretamente no objeto

l Herdada do período de retenção definido no bucket do ECS no qual o objeto écriado

Quando uma política de retenção é definida no namespace do ECS, o período deretenção deve ser definido diretamente no objeto. O objeto não herda a política deretenção do namespace.

EMC Atmos

96 ECS 3,3 Guia de Acesso a dados

Page 97: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Tabela 19 Períodos de retenção do Atmos

Retenção definidano

Usando o Observações

Objeto API do Atmos por meio do

l Período de retenção do cabeçalhoem segundos: 'x-emc-retention-period:60'

l UMD (User Meta Data, metadadosdo usuário), data de término: 'x-emc-meta:user.maui.retentionEnable=true,user.maui.retentionEnd=2016-10-21:10:00Z'

l Cabeçalho e UMD: 'x-emc-meta:user.maui.retentionEnable =true,user.maui.retentionEnd=2016-10-21T18:14:30Z'-header 'x-emc-retention-period:60'

l A retenção pode ser definida no objeto durante acriação ou atualização das configurações do objeto.

l O período de retenção do cabeçalho é definido emsegundos.

l A data de término define a retenção do UMD.

l Se o período de retenção for definido por meio docabeçalho e do UMD, o atributo UMD é verificadoprimeiro e tem precedência sobre a configuração nocabeçalho.

l Você não pode modificar o período de retenção depoisque ele foi definido no objeto até que o período tenhaexpirado.

l Ao usar o cabeçalho x-emc para definir a retenção

n Se a retenção estiver definida, -1 define um períodode retenção infinito e desabilita o período deexpiração.

n -2 desabilita o período de retenção definido noobjeto.

Namespace do ECS Portal do ECS da página NewNamespace ou Edit Namespace.

l Se você quiser definir um período de retenção para umobjeto, e uma política de retenção foi definida nonamespace do usuário de objeto, você ainda devedefinir um período de retenção diretamente no objeto,conforme descrito anteriormente.

l Se uma política de retenção for definida no namespacedo ECS e/ou um período de retenção for definido emum bucket no namespace e um objeto for criado dentrodo bucket, o ECS retém o namespace, o bucket e oobjeto pelo período de retenção mais longo definidopara o namespace ou o bucket.

l Se um período de retenção tiver sido definido noobjeto em si por meio do cabeçalho do objeto, o ECSreterá o objeto pelo período mais longo definido noobjeto, bucket ou namespace.

l Se uma data de término da retenção estiver definidaem um objeto por meio da API do Atmos, o ECS usaráa data de término da retenção da API do Atmosdefinida no objeto e ignorará a política de retenção donamespace e os períodos de retenção do bucket aocriar o objeto.

l Ao aplicar uma política de retenção em um subtenant(bucket) que contém objetos do Atmos, a política deretenção é aplicada a ambos os objetos criados nosubtenant após a definição da política de retenção eaos objetos criados no subtenant antes da definição dapolítica de retenção.

API REST do ECS POST /object/namespaces/namespace/{namespace}/retention

Bucket do ECS Portal do ECS da página New Bucketou Edit Bucket.

API REST do ECS PUT /object/bucket/{bucketName}/retention

EMC Atmos

Suporte do ECS para períodos de retenção e expiração da retenção de objetos do Atmos 97

Page 98: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Obs.

Para obter mais detalhes sobre as políticas de retenção de namespace e os períodosde retenção de buckets, consulte o Guia de administração do ECS, que está disponívelem Página de Documentação do produto ECS.

Exemplo: Solicitação e resposta para criar um objeto com a retenção definida:

POST /rest/namespace/file1 HTTP/1.1User-Agent: curl/7.37.0Host: 10.247.179.228:9022Accept: */*x-emc-date:Thu, 16 Feb 2017 19:28:13 GMTx-emc-meta:user.maui.retentionEnable=true,user.maui.retentionEnd=2017-06-30T06%3A38%3A44Zx-emc-uid:f082110e13f249649340e172fb7b4956/u1x-emc-utf8:trueContent-Type:plain/textx-emc-signature:2Gz51WT+jQdMjlobDV0mz7obsXM=Content-Length: 774

Response

HTTP/1.1 201 CreatedDate: Thu, 16 Feb 2017 19:28:17 GMTx-emc-policy: defaultx-emc-utf8: truex-emc-request-id: 0af7b3e4:15a4849d95e:37c:0x-emc-delta: 774Location: /rest/objects/0a40bd045f7373d367639f095d1db0d15acadb82d5d2cd108e2142f4be04635c-59bdb9b6-20c0-4f55-bc91-9db728a58854x-emc-mtime: 1487273295379Content-Length: 0Server: ViPR/1.0

Exemplo: solicitação e resposta para obter os metadados do objeto:

curl --head -H "x-emc-date:Mon, 30 Jan 2017 16:56:35 GMT" -H "x-emc-uid:7a2593be81374744adbf8e3983e7bd84/u1" -H "x-emc-signature:CQgfoiIQ/DCif7TafcIskWyVpME=" http://10.247.179.228:9022/rest/objects/d1bced53f2ebbcbc51af1d84747bd198d123d3b8585293a5bf0d32bb73c6cf4b-365f4482-c24a-4eca-b24a-070efe29bf63

Response

HTTP/1.1 200 OKDate: Mon, 30 Jan 2017 16:56:35 GMTx-emc-mtime: 1485795387838x-emc-retention-period: 21798212x-emc-meta: user.maui.retentionEnd=2017-10-10T00:00:00Z,user.maui.retentionEnable=true,allow-inline-update=false,atime=2017-01-30T16:45:48Z,ctime=2017-01-30T16:56:27Z,ctype=plain/text,data-range=CAAQgFA=,dek=kq/W1Rg/7qbmaCcLF8pFvqlDJ8+suPTdVddBBZFwZA86muG3P0Pb7w==,dekAlgo=AESKeyWrapRFC5649,etag=0-,fs-mtime-millisec=1485795387838,itime=2017-01-30T16:45:48Z,kekId=s3.7a2593be81374744adbf8e3983e7bd843cdda755061bac6c12c06eb02800a7fee4b11ac2e03f62bb01eee02995068e56,keypoolid=s3.7a2593be81374744adbf8e3983e7bd84,keypoolname=7a2593be81374744adbf8e3983e7bd84,keyversion=0,mtime=2017-01-30T16:56:27Z,namespace=s3,nlink=1,object-name=,objectid=d1bced53f2ebbcbc51af1d84747bd198d123d3b8585293a5bf0d32bb73c6cf4b-365f4482-c24a-4eca-b24a-070efe29bf63,objname=file,parentOid=53ae036bfcfb46f5580b912222f3026835e3ef972c7e3e532ba4a5de30b1946e,parentZone=urn:storageos:VirtualDataCenterData:365f4482-c24a-4eca-b24a-070efe29bf63,policyname=default,retention=CgYIoKOZmlE=,size=0,type=regular,uid=u1,pare

EMC Atmos

98 ECS 3,3 Guia de Acesso a dados

Page 99: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

nt=apache,gid=apachex-emc-useracl: u1=FULL_CONTROLx-emc-groupacl: other=READx-emc-policy: defaultx-emc-request-id: 0af7b3e4:159f0185cf7:957:4Content-Type: plain/textContent-Length: 0Server: ViPR/1.0

Exemplo: atualizar um objeto com valores de retenção

POST /rest/namespace/file2?metadata/user HTTP/1.1User-Agent: curl/7.37.0Host: 10.247.179.228:9022Accept: */*x-emc-date:Thu, 16 Feb 2017 19:37:15 GMTx-emc-meta:user.maui.retentionEnable=true,user.maui.retentionEnd=2017-07-30T06%3A38%3A44Zx-emc-uid:f082110e13f249649340e172fb7b4956/u1x-emc-utf8:trueContent-Type:plain/textx-emc-signature:5UPpZcCfO0vtxMTW62fa2/2SmLg=

Response

HTTP/1.1 200 OK

Date: Thu, 16 Feb 2017 19:37:16 GMTx-emc-policy: _intx-emc-utf8: truex-emc-request-id: 0af7b3e4:15a4849d95e:582:0Content-Length: 0Server: ViPR/1.0

Período de expiraçãoQuando uma data de término do período de retenção é definida para um objeto doAtmos e um período de expiração também é definido no objeto, o ECS excluiautomaticamente o objeto na data definida no período de expiração. O período deexpiração:

l Pode ser definido nos objetos usando a API do Atmos ou o cabeçalho x-emc.

l O período de expiração deve ser posterior à data de término da retenção.

l Por padrão, o período de expiração está desativado.

l Ao usar o cabeçalho x-emc para definir a retenção e a expiração, um valor -1desativa o período de expiração.

Exemplo: Definir o período de expiração usando o cabeçalho x-emc:

POST /rest/namespace/file2 HTTP/1.1User-Agent: curl/7.37.0Host: 10.247.179.228:9022Accept: */*x-emc-date:Tue, 31 Jan 2017 19:38:00 GMTx-emc-expiration-period:300x-emc-uid:a2b85977fd08488b80e646ea875e990b/u1Content-Type:plain/textx-emc-signature:krhYBfKSiM3mFOT6FtRB+2/xZnw=Content-Length: 10240Expect: 100-continue

EMC Atmos

Suporte do ECS para períodos de retenção e expiração da retenção de objetos do Atmos 99

Page 100: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Exemplo: Solicitação e resposta usando a API do Atmos:

POST /rest/namespace/file2 HTTP/1.1User-Agent: curl/7.37.0Host: 10.247.179.228:9022Accept: */*x-emc-date:Thu, 02 Feb 2017 02:47:32 GMTx-emc-meta:user.maui.expirationEnable=true,user.maui.expirationEnd=2017-03-30T20:20:00Zx-emc-uid:239e20dec7a54301a0b02f6090edcace/u1Content-Type:plain/textx-emc-signature:5tGEyK/9qUZCPSnQ9OPOdktN+Zo=Content-Length: 10240Expect: 100-continue

Response

HTTP/1.1 100 ContinueHTTP/1.1 201 CreatedDate: Thu, 02 Feb 2017 02:47:33 GMTx-emc-policy: defaultx-emc-request-id: 0af7b3e4:159fb81ddae:345e:0x-emc-delta: 10240Location: /rest/objects/5c3abaf60e0e207abec96baf0618c0461b7cd716898f8a12ee236aed1ec94bea-c86ee0e9-8709-4897-898e-c3d1895e1d93x-emc-mtime: 1486003652813Content-Length: 0Server ViPR/1.0 is not blacklistedServer: ViPR/1.0

Exemplo: Solicitação e resposta para atualizar metadados com a API do Atmos:

POST /rest/namespace/file?metadata/user HTTP/1.1User-Agent: curl/7.37.0Host: 10.247.179.228:9022Accept: */*x-emc-date:Thu, 02 Feb 2017 02:44:13 GMTx-emc-meta:user.maui.expirationEnable=true,user.maui.expirationEnd=2017-03-30T20:20:00Zx-emc-uid:239e20dec7a54301a0b02f6090edcace/u1Content-Type:plain/textx-emc-signature:9pzcc/Ce4Lq3k52QKdfWLYlZ1Yc=

Response

HTTP/1.1 200 OKDate: Thu, 02 Feb 2017 02:44:14 GMTx-emc-policy: _intx-emc-request-id: 0af7b3e4:159fb81ddae:339e:0Content-Length: 0Server ViPR/1.0 is not blacklistedServer: ViPR/1.0

Janela de atraso do início da retençãoO Atmos permite que você especifique uma janela de atraso do início ao criar umperíodo de retenção, o que permite que você migre para o ECS. Além disso, esserecurso impede que os objetos fiquem em retenção após o upload inicial de um objeto.

O Atmos cria o cabeçalho da solicitação de subtenant, x-emc-retention-start-delay, que registra o intervalo de confirmação automática.

./atmoscurl.pl -user USER1 -action PUT -pmode TID -path / -header "x-emc-retention-period:300" -header "x-emc-retention-start-delay:120" -include

EMC Atmos

100 ECS 3,3 Guia de Acesso a dados

Page 101: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Atraso do início da retenção aplicado ao mtime do objetoNa criação de objetos do Atmos, se o atraso do início da retenção for definido nobucket (x-emc-retention-start-delay), o atraso inicial do objeto será calculadocom base no time-since-mtime do objeto.

Obs.

O time-since-mtime é considerado para calcular o atraso do início, pois nãoinforma um tempo exato para concluir um upload e o x-emc-retention-start-delay pode ser mais curto, até mesmo de apenas alguns minutos.

Substituir a retenção em nível de bucket dos objetos migrados

l Se o usuário optar por migrar dados por meio da API do Atmos a um bucket doECS em um namespace compatível com muitos cabeçalhos de retenção e sehouver quaisquer retenções conflitantes, a maior retenção prevalecerá.

l Em buckets não compatíveis, para objetos migrados do Atmos, ouser.maui*headers especifica o valor final de retenção de um objeto. Se nãohouver um user.maui*headers disponível, a maior retenção prevalecerá.

l Na criação de objetos do ECS por meio da API do Atmos, o user.maui*headersnão pode ser combinado com nenhum dos cabeçalhos x-emc-retention.

A API do Atmos dá suporte a GeoDriveA API do Atmos dá suporte a GeoDrive no ECS. GeoDrive é um aplicativo do Windowsque permite que os dados do Atmos sejam espelhados para o file system local doWindows e é o mesmo que CIFS-ECS.

Códigos de erro do ECS AtmosOs códigos de erro que podem ser gerados pelo título EMC Atmos estão listados natabela a seguir.

Error Code Mensagem de erro Código de statusHTTP

Descrição do status HTTP

1001 O servidor encontrou um erro interno. Please tryagain.

500 Erro interno do servidor

1002 Um ou mais argumentos na solicitação eram inválidos. 400 Solicitação incorreta

1003 O objeto solicitado não foi localizado. 404 Não encontrado

1004 O intervalo especificado não pode ser atendido. 416 Intervalo solicitado nãosatisfatório

1005 Uma ou mais tags de metadados não foramencontradas para o objeto solicitado.

400 Solicitação incorreta

1006 A operação foi abortada devido a uma operaçãoconflitante no processo contra o recurso.Observação: Este código de erro pode indicar que osistema está temporariamente ocupado demais paraprocessar a solicitação. Este é um erro não fatal; vocêpode repetir a solicitação mais tarde.

409 Conflito

1007 O servidor encontrou um erro interno. Please tryagain.

500 Erro interno do servidor

EMC Atmos

Códigos de erro do ECS Atmos 101

Page 102: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

1008 O recurso solicitado não foi encontrado no servidor. 400 Solicitação incorreta

1009 O método especificado na Solicitação não é permitidopara o recurso identificado.

405 Método não permitido

1010 O tamanho do objeto solicitado excede o tamanhomáximo permitido de upload/download.

400 Solicitação incorreta

1011 O tamanho do objeto especificado não correspondeao tamanho real do objeto conectado.

400 Solicitação incorreta

1012 Houve uma disparidade entre o tamanho do objetoconectado e o tamanho da extensão especificada.

400 Solicitação incorreta

1013 O servidor encontrou um erro interno. Please tryagain.

500 Erro interno do servidor

1014 O máximo permitido de entradas de metadados porobjeto foi excedido.

400 Solicitação incorreta

1015 A solicitação não pôde ser concluída devido aprivilégios de acesso insuficientes.

401 Não autorizado

1016 O recurso que você está tentando criar já existe. 400 Solicitação incorreta

1019 O servidor encontrou um erro de I/O. Please tryagain.

500 Erro interno do servidor

1020 O recurso solicitado está ausente ou não foiencontrado.

500 Erro interno do servidor

1021 O recurso solicitado não é um diretório. 400 Solicitação incorreta

1022 O recurso solicitado é um diretório. 400 Solicitação incorreta

1023 O diretório que você está tentando excluir não estávazio.

400 Solicitação incorreta

1.024 O servidor encontrou um erro interno. Please tryagain.

500 Erro interno do servidor

1025 O servidor encontrou um erro interno. Please tryagain.

500 Erro interno do servidor

1026 O servidor encontrou um erro interno. Please tryagain.

500 Erro interno do servidor

1027 O servidor encontrou um erro interno. Please tryagain.

500 Erro interno do servidor

1028 O servidor encontrou um erro interno. Please tryagain.

500 Erro interno do servidor

1029 O servidor encontrou um erro interno. Please tryagain.

500 Erro interno do servidor

1031 O registro de data e hora da solicitação estava fora dajanela de tempo válida.

403 Proibido

1032 Houve uma disparidade entre a assinatura nasolicitação e a assinatura como computada peloservidor.

403 Proibido

1033 Não é possível recuperar a chave secreta para ousuário especificado.

403 Proibido

EMC Atmos

102 ECS 3,3 Guia de Acesso a dados

Page 103: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

1034 Não é possível ler o conteúdo do texto HTTP. 400 Solicitação incorreta

1037 O token especificado é inválido. 400 Solicitação incorreta

1040 O servidor está ocupado. Tente novamente 500 Erro interno do servidor

1041 O tamanho do nome de arquivo solicitado excede otamanho máximo permitido.

400 Solicitação incorreta

1042 A operação solicitada não é permitida. 400 Solicitação incorreta

1043 O objeto tem o número máximo de links 400 Solicitação incorreta

1044 O pai especificado não existe. 400 Solicitação incorreta

1045 O pai especificado não é um diretório. 400 Solicitação incorreta

1046 O objeto especificado não aparece no namespace. 400 Solicitação incorreta

1047 O arquivo de origem e de destino é o mesmo. 400 Solicitação incorreta

1048 O diretório de destino não está vazio e não pode sersobrescrito

400 Solicitação incorreta

1049 O checksum enviado com a solicitação nãocorresponde ao checksum como computado peloservidor.

400 Solicitação incorreta

1050 O algoritmo de checksum solicitado é diferentedaquele usado anteriormente para este objeto.

400 Solicitação incorreta

1051 A verificação de checksum pode ser usada apenascom as solicitações de atualização acrescentadas

400 Solicitação incorreta

1052 O algoritmo de checksum especificado não éimplementado.

400 Solicitação incorreta

1053 O checksum não pode ser computado para um objetona atualização para algo que não foi computado nomomento da criação.

400 Solicitação incorreta

1054 O parâmetro de entrada de checksum estava ausenteda solicitação.

400 Solicitação incorreta

1056 A operação solicitada não é aceita por symlinks. 400 Solicitação incorreta

1057 Falha da pré-condição If-Match. 412 Falha na pré-condição

1058 Falha da pré-condição If-None-Match. 412 Falha na pré-condição

1059 A chave que você está tentando criar já existe. 400 Solicitação incorreta

1060 A chave solicitada não foi encontrada. 404 Não encontrado

1061 O pool solicitado já existe. 400 Solicitação incorreta

1062 O pool solicitado não foi encontrado. 404 Não encontrado

1063 O número máximo de pools foi atingido. 400 Solicitação incorreta

1064 A solicitação não pôde ser concluída porque osubtenant está acima da cota

403 Proibido

1065 A solicitação não pôde ser concluída porque o UIDestá acima da cota

403 Proibido

1070 Não receberam a quantidade de dados esperada. 400 Solicitação incorreta

EMC Atmos

Códigos de erro do ECS Atmos 103

Page 104: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

1071 Conexão fechada do cliente antes de ler todos osdados.

499 Pedido fechado do cliente

1072 Não foi possível gravar todos os bytes no cliente. 499 Pedido fechado do cliente

1073 Tempo limite para gravar dados para o cliente. 499 Pedido fechado do cliente

EMC Atmos

104 ECS 3,3 Guia de Acesso a dados

Page 105: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

CAPÍTULO 4

CAS

Esta seção descreve o suporte que o ECS oferece ao CAS.

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

retenção legal e administrador mín./máx...........................................................110l Configurar as políticas de retenção de namespace............................................ 116l Criar e configurar um bucket para um usuário do CAS...................................... 116l Configurar um usuário de objeto do CAS........................................................... 117l Configurar ACLs do bucket para o CAS............................................................. 117l APIs de gerenciamento do 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)......................................................................................119l Códigos de erro da CAS do ECS....................................................................... 120

CAS 105

Page 106: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Configurando o suporte a CAS no ECSEste capítulo descreve como modificar sua configuração básica para dar suporte aoCAS.

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

O armazenamento subjacente do ECS deve ser provisionado antes de você definir suaconfiguração do ECS. Geralmente, o provisionamento é realizado quando um novorack do ECS é instalado. Isso inclui a configuração de um pool de armazenamento, umVDC e um grupo de replicação.

Para pools de armazenamento, considere configurar um arquivamento estático.Consulte Armazenamento estático.

Em seguida, configure seus namespaces, usuários e buckets usando a documentaçãopadrão. Consulte o Guia de Administração do ECS, que está disponível em Página deDocumentação do produto ECS, para obter essas etapas e as etapas deprovisionamento.

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, mais 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 20 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

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.

CAS

106 ECS 3,3 Guia de Acesso a dados

Page 107: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Configuração de pool de armazenamentoPara estabelecer um arquivamento estático no portal, selecione Cold Storage ao criarum pool de armazenamento. Depois que um pool de armazenamento tiver sido criado,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 de Negociação de Futuros de Commodities (CFTC), na norma 17 C.F.R.§ 1.31(b)-(c)

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 conformidadeOs seguintes recursos de segurança do ECS são compatíveis com os padrões deConformidade.

Recursos de segurança da plataforma ECS:

l Acesso root do usuário aos nós é desabilitado (o log-in de usuário root não épermitido).

l Os clientes do ECS podem acessar nós por meio do usuário administradorconfigurado durante a primeira instalação.

l O usuário administrador executa os comandos em nós usando sudo.

l Há registro de auditoria completo para comandos sudo.

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

l Todas as portas desnecessárias (ftpd, sshd) são fechadas.

l O usuário emcsecurity com a função de Administrador de bloqueio podebloquear nós em um cluster. Isso significa que o acesso remoto por meio da redepor SSH (Secure Shell Protocol) está desabilitado. Em seguida, o Administrador debloqueio pode desbloquear um nó para permitir atividades de manutenção remotaou outro acesso autorizado.

Obs.

O bloqueio de nó não afeta os usuários autorizados do Portal do ECS ou da API degerenciamento do ECS.

CAS

Conformidade 107

Page 108: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Política de conformidade e retençãoDescreve as regras aprimoradas para retenção de registro em um sistema ECShabilitado para Conformidade. O ECS define os recursos de retenção de objeto comoOn nos níveis de objeto, bucket e namespace. A configuração do recurso deconformidade fortalece esses recursos limitando as alterações que podem ser feitas àsconfigurações de retenção em objetos sob retenção. As regras incluem:

l A conformidade é definida no nível do namespace. Isso significa que todos osbuckets do namespace devem ter um período de retenção maior que zero. Para oCAS, os buckets com retenção zero podem ser criados, contanto que aconfiguração Enforce Retention Information in Object esteja definida como On.

l Você só pode ativar a conformidade quando cria um namespace. (Não é possíveladicionar a Conformidade a um namespace existente).

l Não é possível desativar a Conformidade quando ela está ativada.

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 causa erros de aplicativo.

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

l Aplicar a opção Infinite em um bucket significa que os objetos do bucket em umnamespace habilitado para a Conformidade não podem ser excluídospermanentemente.

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 Você pode aumentar os períodos de retenção de objetos e buckets.

l Nenhum usuário pode excluir um objeto sob retenção. Isso inclui usuários compermissão de exclusão privilegiada do CAS.

Agente de conformidadeDescreve a operação do agente de conformidade.

Os recursos de conformidade são ativados por padrão, exceto o monitoramento deconformidade. Se o monitoramento estiver ativado, o agente registrará umamensagem periodicamente.

Obs.

Entre em contato com seu representante de Suporte remoto do ECS para ativar omonitoramento de conformidade. As mensagens de monitoramento estão disponíveispor comando a partir do nó. Elas não aparecem no Portal do ECS.

CAS

108 ECS 3,3 Guia de Acesso a dados

Page 109: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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.

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

O período de retenção padrão em objetos gravados sem retenção de nível deobjeto 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.

Preferência do CASQuando vários períodos de retenção forem aplicados a um objeto de CAS no ECS, operíodo de retenção com o maior valor terá 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 Portal do ECS ou com aAPI de gerenciamento do ECS. Consulte Configurar as políticas de retenção denamespace.

CAS

Retenção do CAS no ECS 109

Page 110: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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 usa 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 API de gerenciamento do ECS.É possível criar períodos e políticas de retenção usando o ECS; a seguir, apresentamosum resumo de como fazer isso.

Tabela 21 Recursos da API de gerenciamento do ECS para retenção

Método Descrição

PUT /object/bucket/{bucketName}/retention O valor de retenção de um bucket define um período deretenção obrigatório que é aplicado a todos os objetos de umbucket. Se você configurar um período de retenção de umano, um objeto do bucket não poderá ser excluído durante umano.

GET /object/bucket/{bucketName}/retention Exibe o período de retenção atualmente configurado para umbucket específico.

POST /object/namespaces/namespace/{namespace}/retention

Para os namespaces, a configuração de retenção age comouma política, onde cada política é um <Nome>:<Período deretenção>. É possível definir várias políticas de retenção paraum namespace e atribuir uma política, por nome, a um objetodo namespace. Isso permite a alteração do período deretenção de um conjunto de objetos que têm a mesma políticaatribuída por meio da alteração da política correspondente.

PUT /object/namespaces/namespace/{namespace}/retention/{class}

Atualiza o período para um período de retenção associado aum namespace.

GET /object/namespaces/namespace/{namespace}/retention

Exibe a política de retenção definida para um namespace.

Você pode encontrar mais informações sobre a API de gerenciamento do ECS em Introdução à API REST de gerenciamento do ECS. A referência on-line encontra-seaqui: Referência da API do ECS.

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:

CAS

110 ECS 3,3 Guia de Acesso a dados

Page 111: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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 recursosmostrados na tela abaixo são recursos somente do CAS, exceto o recurso 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.

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

Impor retenção Se esse recurso for ativado, nenhum objeto do CAS pode ser criado sem informações de retenção(período ou política). Uma tentativa de salvar esse objeto exibirá um erro. Se estiver ativado, é

possível não configurar Bucket Retention Period mesmo em ambiente habilitado paraconformidade.

Obs.

Quando um modo CE+ do Centera é migrado para o ECS, Enforce Retention é habilitado porpadrão no bucket.

Período de retenção dobucket

Se um período de retenção de bucket for especificado, o período mais longo será imposto, sehouver período de retenção de nível de bucket e um período de retenção de nível de objeto.

Em um ambiente habilitado para conformidade o Bucket Retention Period é obrigatório, amenos que as informações de retenção no objeto sejam impostas. No entanto, após ser configurado,

CAS

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: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Recurso Descrição

o Bucket Retention Period não pode ser redefinido mesmo quando as informações de retençãono objeto são impostas.

Período fixo mínimo deretenção

Esse recurso rege os períodos de retenção especificados nos objetos. Se o período de retenção deum objeto está fora dos limites especificados aqui, em seguida, uma tentativa de gravar o objetofalha.Ao usar as políticas de retenção, as configurações de mín/máx não são impostas.

Selecionando Infinite para Minimum Fixed Retention Period significa que todos os valores de

retenção devem ser infinitos. Selecioná-lo para Maximum Fixed Retention Period significa quenão há um limite máximo.

As restrições de retenção mín/máx são aplicadas a qualquer C-Clip gravado em um bucket. Se umclip for migrado por qualquer ferramenta de terceiros baseada no SDK, a retenção deve estar dentrodos limites, caso contrário, é gerado um erro.

Período fixo máximo deretenção

Período variável mínimode retenção

Esse recurso rege os períodos variáveis de retenção especificados nos objetos usando a retençãobaseada em evento (EBR). Na EBR, um período básico de retenção é definido e a função deacionamento programado tem a 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 dos limites especificados aqui,uma tentativa de gravar o objeto em resposta ao acionador falha.Ao usar as políticas de retenção, as configurações de mín/máx não são impostas.

Selecionar Infinite para Minimum Variable Retention Period significa que todos os valores de

retenção devem ser infinitos. Selecioná-lo para Maximum Variable Retention Period significaque não há um limite máximo.

As restrições de retenção mín/máx são aplicadas a qualquer C-Clip gravado em um bucket. Se umclip for migrado por qualquer ferramenta de terceiros baseada no SDK, a retenção deve estar dentrodos limites, caso contrário, é gerado um erro.

Período máximo variávelde retençã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.

l Trigger Event: O aplicativo aciona o evento, que é o ponto de partida do períodode retenção baseada em evento ou da política de retenção. Nesse ponto, o

CAS

112 ECS 3,3 Guia de Acesso a dados

Page 113: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

aplicativo pode atribuir um novo período de retenção baseada em evento, desdeque seja maior 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 22 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 eventofuturo e permite que uma classe de retenção baseada em evento (EBR) sejaatribuída ao C-Clip durante o momento de criação do C-Clip.

CAS

Retenção avançada para os aplicativos do CAS: retenção baseada em evento, retenção legal e administrador mín./máx. 113

Page 114: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Tabela 22 Funções da API do CAS para retenção baseada em evento (continuação)

Função Descrição

FPClip_EnableEBRWithPeriod Essa função define que um C-Clip está qualificado para receber um eventofuturo e permite que um período de retenção baseada em evento (EBR) sejaatribuído ao C-Clip durante o momento de criação do C-Clip.

FPClip_IsEBREnabled Esta função exibe um valor booleano para indicar se um C-Clip está ou nãohabilitado para retenção baseada em evento (EBR).

FPClip_GetEBRClassName Esta função recupera o nome da política de retenção baseada em evento (EBR)atribuída ao C-Clip.

FPClip_GetEBREventTime Esta função exibe a hora do evento configurada em um C-Clip quando o eventoda retenção baseada em evento (EBR) para aquele C-Clip tiver sido acionado.

FPClip_GetEBRPeriod Esta função exibe o valor (em segundos) do período de retenção baseada emevento (EBR) associado a um C-Clip.

FPClip_TriggerEBREvent Esta função aciona o evento de um C-Clip para o qual a retenção baseada emevento (EBR) foi habilitada.

FPClip_TriggerEBREventWithClass Esta função aciona o evento de um C-Clip para o qual a retenção baseada emevento (EBR) foi habilitada e atribui uma nova política EBR ao C-Clip.

FPClip_TriggerEBREventWithPeriod Esta função aciona o evento de um C-Clip para o qual a retenção baseada emevento (EBR) foi habilitada 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 essasinformaçõ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:

CAS

114 ECS 3,3 Guia de Acesso a dados

Page 115: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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.

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 23 Funções da API do CAS para retenção legal

Função Descrição

FPClip_GetRetentionHold Esta função determina o estado da retenção do C-Clip e exibe true ou false.

FPClip_SetRetentionHold Esta função define ou redefine uma retenção legal em um C-Clip. Paravárias retenções legais, fornece uma ID exclusiva de retenção legal paracada retenção. Para várias retenções, faça uma chamada por ID.

CAS

Retenção avançada para os aplicativos do CAS: retenção baseada em evento, retenção legal e administrador mín./máx. 115

Page 116: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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 Portal do ECS, 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.

4. Selecione Save.

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 supõe que os doisusuários e o namespace foram configurados.

Procedimento

1. Faça log-in no portal do ECS como newcasadmin1.

2. No Portal do ECS, selecione Manage > Bucket.

3. Selecione New Bucket.

4. Preencha os campos, conforme mostrado abaixo:

Campo Valor

Replication Group Your replication group

Set current user as Bucket Owner Check

CAS

116 ECS 3,3 Guia de Acesso a dados

Page 117: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Campo Valor

CAS On

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 ECS, selecione Manage > Users.

2. Para editar a configuração de um usuário de objeto existente, selecione a açãoEdit associada ao usuário.

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 de que seu aplicativoprecisará para se autenticar no armazenamento CAS do 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.

CAS

Configurar um usuário de objeto do CAS 117

Page 118: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Procedimento

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

2. Para editar as ACLs de um bucket existente, selecione a ação Edit ACLassociada ao bucket.

3. Selecione a ação Edit associada ao usuário.

4. Modifique as permissões.

Tabela 24 ACLs dos buckets

ACL do ECS Definição da ACL

READ Recursos de leitura, consulta e existência

WRITE 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 Privileged Delete

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

others 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 do ECS que dão suporte a usuáriosdo CAS

Descreve os recursos da API de gerenciamento do ECS que podem ser usados paragerenciar as configurações de perfil e de usuários do CAS.

Descrições dos recursos da API de gerenciamento do ECS:

CAS

118 ECS 3,3 Guia de Acesso a dados

Page 119: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

l <ip address>?name=<name>,password=<password> : Autentica você naAPI do CAS como uma alternativa ao arquivo PEA.

Obs.

Você precisa do nome e da senha do arquivo PEA.

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.

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 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 ECS CAS são apresentadas em Configurando osuporte ao CAS no 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.

CAS

Suporte à API do SDK CAS (Content-Addressed Storage, armazenamento de conteúdo endereçável) 119

Page 120: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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

l FPClip_ TriggerEBREventWithPeriod

l FPClip_GetEBRClassName

l FPClip_GetEBREventTime

l FPClip_GetEBRPeriod

l FPClip_GetRetentionHold

l FPClip_IsEBREnabled

Códigos de erro da CAS do ECSOs códigos de erro que podem ser gerados pelo título CAS estão listados na tabela aseguir.

Valor Nome do erro Descrição

10001 FP_INVALID_NAME O nome que você usou não é compatível com XML.

10002 FP_UNKNOWN_OPTION Você usou um nome de opção desconhecida comFPPool_SetIntOption () ou FPPool_GetIntOption ().

10003 FP_NOT_SEND_REQUEST_ERR Ocorreu um erro ao enviar uma solicitação para o servidor.Esse erro interno foi gerado porque o servidor não pôdeaceitar o pacote de solicitações. Verifique todas as conexõesLAN e tente novamente.

10004 FP_NOT_RECEIVE_REPLY_ERR Nenhuma resposta foi recebida do servidor. Esse errointerno foi gerado porque o servidor não enviou umaresposta ao pacote de solicitações. Verifique todas asconexões LAN e tente novamente.

10005 FP_SERVER_ERR O servidor relata um erro. Ocorreu um erro no servidor.Tente novamente.

10006 FP_PARAM_ERR Você usou um parâmetro incorreto ou desconhecido.Exemplo: É uma variável de string de caracteres muito longa,nula ou vazia quando não deveria ser? Um parâmetro temum conjunto limitado de valores? Verifique cada parâmetroem seu código.

10007 FP_PATH_NOT_FOUND_ERR Este caminho não corresponde a um arquivo ou diretório nosistema cliente. O caminho em um de seus parâmetros nãoaponta para um arquivo ou diretório existente. Verifique ocaminho em seu código.

10008 FP_CONTROLFIELD_ERR O servidor informa que a operação gerou um erro de"Controlfield ausente". Esse erro interno foi gerado porque ocampo de controle exigido não foi encontrado. Tentenovamente. (obsoleto fromV 2.0.)

CAS

120 ECS 3,3 Guia de Acesso a dados

Page 121: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

10009 FP_SEGDATA_ERR O servidor informa que a operação gerou um erro de"Segdatafield ausente". Esse erro interno foi gerado porqueo campo obrigatório que contém os dados de blob não foiencontrado no pacote. Tente novamente. (obsoleto fromV2.0.)

10010 FP_DUPLICATE_FILE_ERR Existe uma CA duplicada no servidor. Se você não habilitou adetecção de arquivo duplicado, verifique se ainda nãoarmazenou esses dados e tente novamente.

10011 FP_OFFSET_FIELD_ERR O servidor informa que a operação gerou um erro de"Offsetfield ausente". Esse erro interno foi gerado porque ocampo de offset não foi encontrado no pacote. Tentenovamente. (obsoleto fromV 2.0.)

10012 FP_OPERATION_NOT_SUPPORTED Esta operação não é permitida. Se FPClip_Write(),FPTag_GetSibling(), FPTag_GetPrevSibling(),FPTag_GetFirstChild() ou FPTag_Delete() retornaram esseerro, então essa operação não é suportada para C-Clipsabertos no modo “flat”. Se FPStream retornou esse erro,então você está tentando executar uma operação que não ésuportada por esse fluxo.

10013 FP_ACK_NOT_RCV_ERR Uma confirmação de gravação não foi recebida. Verifiquetodas as conexões LAN e tente novamente.

10014 FP_FILE_NOT_STORED_ERR Não foi possível gravar o blob no servidor OU não foipossível encontrar o blob no servidor. Esse erro interno foigerado porque a operação de armazenamento do blob nãofoi bem-sucedida. Verifique se os dados originais foramarmazenados corretamente, verifique suas conexões de LANe tente novamente.

10015 FP_NUMLOC_FIELD_ERR O servidor informa que a operação gerou um erro de"Numlockfield ausente". Esse erro interno foi gerado porqueo campo numlock não foi encontrado no pacote. Tentenovamente. (obsoleto fromV 2.0.)

10016 FP_SECTION_NOT_FOUND_ERR A solicitação GetSection não pôde recuperar a marca deseção definida. Esse erro interno foi gerado porque faltouuma seção necessária no CDF. Verifique o conteúdo do seucódigo e tente novamente. (obsoleto fromV 2.0.)

10017 FP_TAG_NOT_FOUND_ERR A marca referenciada não foi encontrada no CDF. Esse errointerno foi gerado porque faltaram informações na seção dedescrição do CDF. Verifique o conteúdo do seu código etente novamente.

10018 FP_ATTR_NOT_FOUND_ERR Não foi possível encontrar um atributo com esse nome. SeFPTag_GetXXXAttribute () retornou esse erro, então oatributo não foi encontrado na marca. SeFPTag_GetIndexAttribute () retornou esse erro, então oparâmetro do índice é maior do que o número de atributos namarca.

10019 FP_WRONG_REFERENCE_ERR A referência que você usou é inválida. A referência era nãoaberta, já fechada ou não do tipo correto.

10020 FP_NO_POOL_ERR Não foi possível estabelecer uma conexão com um cluster.Não foi possível encontrar o servidor. Isso significa que

CAS

Códigos de erro da CAS do ECS 121

Page 122: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

nenhum dos endereços IP pôde ser usado para abrir umaconexão com o servidor ou que nenhum cluster foiencontrado com a capacidade necessária. Verifique asconexões LAN e configurações do servidor, e tentenovamente.

10021 FP_CLIP_NOT_FOUND_ERR Não foi possível localizar o C-Clip referenciado no cluster.Retornado por FPClip_Open (), isso significa que o CDF nãofoi encontrado no servidor. Verifique se os dados originaisforam armazenados corretamente e tente novamente.

10022 FP_TAGTREE_ERR Existe um erro na árvore de marcas. Verifique o conteúdo doseu código e tente novamente.

10023 FP_ISNOT_DIRECTORY_ERR Um caminho para um arquivo foi dado, mas um caminho paraum diretório é esperado. Verifique o caminho para os dadose tente novamente.

10024 FP_UNEXPECTEDTAG_ERR Uma marca de "arquivo" ou "pasta" era esperada, mas nãodada. Foi encontrada uma marca inesperada ao recuperar oCDF. O CDF está provavelmente corrompido.

10025 FP_TAG_READONLY_ERR A marca não pode ser alterada ou excluída (provavelmente éuma marca superior). Verifique a lógica do programa.

10026 FP_OUT_OF_BOUNDS_ERR O parâmetro de opções está fora dos limites. Um dosparâmetros de função excede seus limites predefinidos.Verifique cada parâmetro em seu código.

10027 FP_FILESYS_ERR Ocorreu um erro de file system, por exemplo, um caminhoincorreto foi dado, ou você está tentando abrir um arquivodesconhecido ou um arquivo no modo errado. Verifique ocaminho e tente novamente.

10029 FP_STACK_DEPTH_ERR Você excedeu o limite de marca aninhado. Verifique aestrutura de sua descrição de conteúdo e tente novamente.Obsoleto.

10030 FP_TAG_HAS_NO_DATA_ERR Você está tentando acessar dados de blob de uma marcaque não contém dados de blob.

10031 FP_VERSION_ERR O C-Clip foi criado usando uma versão mais recente dosoftware cliente do que você está usando. Faça o upgradepara a versão mais recente.

10032 FP_MULTI_BLOB_ERR A marca já possui dados associados a ela. Você precisa criaruma nova marca para armazenar os novos dados ou excluiressa marca e recriá-la, depois tentar novamente.

10033 FP_PROTOCOL_ERR Você usou uma opção de protocolo desconhecida (somenteHPP é suportado). Verifique os parâmetros em seu código.Também é possível que tenha ocorrido um erro decomunicação interno entre o servidor e o cliente. Se vocêverificou seu código e o problema persistir, atualize para asúltimas versões de cliente e servidor.

10034 FP_NO_SOCKET_AVAIL_ERR Nenhum novo soquete de rede está disponível para atransação. Reduza o número de transações abertas entre ocliente e o servidor ou use a funçãoFPPool_SetGlobalOption() para aumentar o número de

CAS

122 ECS 3,3 Guia de Acesso a dados

Page 123: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

soquetes disponíveis comFP_OPTION_MAXCONNECTIONS.

10035 FP_BLOBIDFIELD_ERR Um campo BlobID (o Content Address) era esperado, masnão dado. Faça o upgrade para as versões mais recentes decliente e servidor. (obsoleto fromV 2.0.)

10036 FP_BLOBIDMISMATCH_ERR O blob está corrompido: uma disparidade de BlobID ocorreuentre o cliente e o servidor. O cálculo de Content Address nocliente e no servidor retornou resultados diferentes. O blobestá corrompido. Se FPClip_Open() retornar esse erro,significa que os dados de blob ou metadados do C-Clip estãocorrompidos e não podem ser decodificados.

10037 FP_PROBEPACKET_ERR O pacote de probe não contém endereços de servidorválidos. Faça o upgrade para as versões mais recentes decliente e servidor. (obsoleto fromV 2.0.)

10038 FP_CLIPCLOSED_ERR (Javaonly.) Você tentou executar uma operação em um C-Clip fechado. Esta operação requer acesso a um C-Clipaberto. Verifique o seu código e tente novamente.

10039 FP_POOLCLOSED_ERR (Javaonly.) Você tentou executar uma operação em um poolfechado. Esta operação requer acesso a um pool aberto.Verifique seu código e as conexões LAN, depois tentenovamente.

10040 FP_BLOBBUSY_ERR O blob no cluster está ocupado e não pode ser lido nemgravado. Você tentou ler ou gravar em um blob que estáatualmente ocupado com outra operação de leitura/gravação. Tente novamente.

10041 FP_SERVER_NOTREADY_ERR O servidor ainda não está pronto. Esse erro pode ocorrerquando um cliente tenta se conectar ao servidor paraexecutar uma operação e os nós com a função de acessoestão sendo executados, mas os nós com a função dearmazenamento ainda não foram inicializados. Esse errotambém pode ocorrer quando não há grupos deespelhamento suficientes no servidor. Permita que o SDKexecute o número automático de tentativas configuradas.

10042 FP_SERVER_NO_CAPACITY_ERR O servidor não tem capacidade para armazenar dados.Aumente a capacidade do servidor e tente novamente.

10043 FP_DUPLICATE_ID_ERR O aplicativo passado em um ID de sequência que foi usadoanteriormente.

10044 FP_STREAM_VALIDATION_ERR Ocorreu um erro de validação de fluxo genérico.

10045 FP_STREAM_BYTECOUNT_MISMATCH_Err

Foi detectada uma disparidade de contagem de bytes defluxo genérico.

10101 FP_SOCKET_ERR Ocorreu um erro no soquete de rede. Verifique a rede.

10102 FP_PACKETDATA_ERR O pacote de dados contém dados incorretos. Verifique arede, a versão do servidor ou tente novamente mais tarde.

10103 FP_ACCESSNODE_ERR Nenhum nó com a função de acesso foi encontrado.Verifique os endereços IP fornecidos com FPPool_Open().

10151 FP_OPCODE_FIELD_ERR O campo Query Opcode não está no pacote.

CAS

Códigos de erro da CAS do ECS 123

Page 124: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

10152 FP_PACKET_FIELD_MISSING_ERR O campo de pacotes está ausente.

10153 FP_AUTHENTICATION_FAILED_ERR A autenticação para obter acesso ao servidor falhou.Verifique o nome do perfil e o segredo.

10154 FP_UNKNOWN_AUTH_SCHEME_ERR Foi usado um esquema de autenticação desconhecido.

10155 FP_UNKNOWN_AUTH_PROTOCOL_ERR Foi usado um protocolo de autenticação desconhecido.

10156 FP_TRANSACTION_FAILED_ERR Falha na transação no servidor.

10157 FP_PROFILECLIPID_NOTFOUND_ERR Nenhum clip de perfil foi encontrado.

10158 FP_ADVANCED_RETENTION_DISABLED_Err

O recurso Gerenciamento de retenção avançada não estálicenciado ou ativado para retenção baseada em eventos(EBR) e retenção.

10159 FP_NON_EBR_CLIP_ERR Foi feita uma tentativa de disparar um EBRevent em um C-clip que não é elegível para receber um evento.

10160 FP_EBR_OVERRIDE_ERR Foi feita uma tentativa de disparar ou ativar o período deretenção baseado em evento/classe de um C-Clip umasegunda vez. Você pode definir informações de EBR apenasuma vez.

10161 FP_NO_EBR_EVENT_ERR O C-Clip está em proteção de retenção baseada em eventose não pode ser excluído.

10162 FP_RETENTION_OUT_OF_BOUNDS_ERR O período de retenção baseado em eventos que está sendodefinido não atende à regra mínima/máxima.

10163 FP_RETENTION_HOLD_COUNT_ERR O número de retenções excede o limite de 100.

10164 FP_METADATA_MISMATCH_ERR Disparidade de metadados mutáveis encontrada.

10201 FP_OPERATION_REQUIRES_MARK O aplicativo requer suporte de marcador, mas o fluxo nãofornece isso.

10202 FP_QUERYCLOSED_ERR A consulta FP para este objeto já está fechada. (somente emJava).

10203 FP_WRONG_STREAM_ERR A função espera um fluxo de entrada e obtém um fluxo desaída ou vice-versa.

10204 FP_OPERATION_NOT_ALLOWED O uso desta operação é restrito ou esta operação não épermitida, porque a capacidade do servidor é falsa.

10205 FP_SDK_INTERNAL_ERR Foi detectado um erro de programação interno do SDK.

10206 FP_OUT_OF_MEMORY_ERR Sistema com memória insuficiente. Verifique a capacidadedo sistema.

10207 FP_OBJECTINUSE_ERR Não é possível fechar o objeto porque ele está em uso.Verifique o seu código.

10208 FP_NOTYET_OPEN_ERR O objeto ainda não está aberto. Verifique o seu código.

10209 FP_STREAM_ERR Ocorreu um erro no fluxo genérico. Verifique o seu código.

10210 FP_TAG_CLOSED_ERR A marca FP para este objeto já está fechada. (somente emJava).

10211 FP_THREAD_ERR Ocorreu um erro ao criar um thread de em segundo plano.

10212 FP_PROBE_TIME_EXPIRED_ERR O tempo limite do probe foi atingido.

CAS

124 ECS 3,3 Guia de Acesso a dados

Page 125: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

10213 FP_PROFILECLIPID_WRITE_ERR Ocorreu um erro ao armazenar o ID do clip de perfil.

10214 FP_INVALID_XML_ERR A string especificada não é um XML válido.

10215 FP_UNABLE_TO_GET_LAST_ERROR Falha na chamada FPPool_GetLastError() ouFPPool_GetLastErrorInfo(). O status de erro da chamada defunção anterior é desconhecido; a chamada anterior podeter sido bem-sucedida.

10216 FP_LOGGING_CALLBACK_ERR Ocorreu um erro no retorno de chamada de registro de FPdefinido pelo aplicativo.

CAS

Códigos de erro da CAS do ECS 125

Page 126: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

CAS

126 ECS 3,3 Guia de Acesso a dados

Page 127: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

CAPÍTULO 5

API REST de gerenciamento do ECS

Esta seção descreve como acessar e se autenticar na API REST de gerenciamento doECS, e apresenta um resumo dos caminhos da API.

l Introdução à API REST de gerenciamento do ECS............................................128l Autenticar-se na API REST de gerenciamento do ECS..................................... 128

API REST de gerenciamento do ECS 127

Page 128: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Introdução à API REST de gerenciamento do ECSVocê pode configurar e gerenciar a área de armazenamento de objetos usando a APIREST de gerenciamento do ECS. Após a configuração da área de armazenamento emobject, você pode realizar as operações de criação, leitura, atualização e exclusão deobjetos usando protocolos de objeto e arquivo compatíveis com o ECS.

Para obter mais informações sobre a API REST de gerenciamento do ECS, consulteestes tópicos:

l Autenticar-se na API REST de gerenciamento do ECS

l Resumo da API REST para controle de objetos

Além disso, você pode consultar o Guia de Referência da API REST do ECS, que égerado automaticamente do código-fonte e oferece uma referência sobre os métodosdisponíveis na API.

Autenticar-se na API REST de gerenciamento do ECSO ECS usa um sistema de autenticação baseado em tokens para as chamadas APIREST. Esta seção fornece exemplos de autenticação com a API do ECS, com e semcookies.

Quando você é autenticado pelo ECS, a API do ECS retorna um token deautenticação. Você pode usar esse token para a autenticação nas chamadasposteriores.

l Se o client seguir redirecionamentos automaticamente, a API do ECS exibirá umcódigo HTTP 401. Você deve fazer log-in e autenticar-se para obter um novotoken.

l Se o client não seguir redirecionamentos automaticamente, a API do ECS exibiráum código HTTP 302. O código 302 direciona o client ao local em que ele deve serautenticado 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 com as 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 do ECS está disponível na porta: 4443. Os clients acessam o ECS emitindo umasolicitação de log-in neste formato:

https://<ECS_IP>:4443/login

Autenticar sem cookiesO exemplo a seguir mostra como usar os tokens de autenticação lendo o cabeçalhoHTTP X-SDS-AUTH-TOKEN de uma solicitação de autenticação feita com sucesso ecopiando esse cabeçalho em uma solicitação posterior. O exemplo não usa cookies. Osexemplos são gravados usando a ferramenta de linha de comando curl e formatadospara serem legíveis.

A seguinte chamada API do ECS executa uma operação GET no recurso /login. Aopção -u especifica o usuário do cabeçalho de autenticação básica. Você deveespecificar o usuário na solicitação. Após a autenticação bem-sucedida, a API do ECS

API REST de gerenciamento do ECS

128 ECS 3,3 Guia de Acesso a dados

Page 129: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

retorna um código HTTP 200 e o cabeçalho X-SDS-AUTH-TOKEN que contém otoken codificado.

A duração padrão do token da API do ECS é de 8 horas, o que significa que após 8horas o token não é mais válido. O tempo de inatividade padrão para um token é deduas horas; após um tempo de inatividade de duas horas, o token expira. Se você usarum token expirado, é redirecionado para a URL /login. Você receberá um código deerro de status HTTP 401 mediante qualquer uso posterior do token expirado.

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: */*>< 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):

Você pode copiar o conteúdo do X-SDS-AUTH-TOKEN e passá-lo para a próximachamada API por meio do switch -H da ferramenta curl, conforme mostrado noexemplo a seguir.

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 passando o cookie em uma solicitaçãoposterior.

API REST de gerenciamento do ECS

Autenticar sem cookies 129

Page 130: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

O exemplo a seguir usa o parâmetro ?using-cookies=true para indicar que vocêdeseja 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

O comando a seguir passa o cookie com o token de autenticação pelo switch -b docomando Curl e retorna 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>

LogoutA API de log-out encerra uma sessão.

Cada usuário é autorizado a um máximo de 100 tokens de autenticação simultâneos.Além desse limite, o sistema recusará todas as novas conexões para esse usuário atéque os tokens sejam liberados. Os tokens podem ser liberados pela expiração naturalou emitindo a seguinte chamada API do ECS:

GET https://<ECS_IP>:4443/logout

Se você tiver várias sessões em execução ao mesmo tempo, a seguinte chamada APIforça o encerramento de todos os tokens relacionados ao usuário atual.

GET https://<ECS_IP>:4443/logout?force=true

O exemplo a seguir mostra uma solicitação de log-out. Você transfere o token deautenticação do cabeçalho ou do cookie para fazer log-out.

GET https://<ECS_IP>:4443/logout

X-SDS-AUTH-TOKEN:{Auth_Token}

A resposta deve ser HTTP 200.

Comando whoami da API REST de gerenciamento do ECSUm 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.

API REST de gerenciamento do ECS

130 ECS 3,3 Guia de Acesso a dados

Page 131: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Solicitação

GET https://<ECS_IP>:4443/user/whoami

As respostas a seguir mostram o resultado de whoami para o usuário root e para umusuário que foi atribuído à função NAMESPACE_ADMIN do namespace ns1.

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>

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 tabela a seguir resume a API REST de gerenciamento do ECS.

Tabela 26 API REST de gerenciamento do ECS — resumo de métodos

Área da API Descrição

Configuração

Certificado /object-certAPI para gerenciar certificados.

/object-cert/keystoreAPI para especificar e fazer o rodízio da cadeia de certificado usada pelo ECS.

Propriedades de configuração /config/object/propertiesAPI para definir o escopo do usuário como GLOBAL ou NAMESPACE. Isso deve ser definido

antes que o primeiro usuário seja criado. O padrão é GLOBAL.

API REST de gerenciamento do ECS

Resumo da API REST de gerenciamento do ECS 131

Page 132: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Tabela 26 API REST de gerenciamento do ECS — resumo de métodos (continuação)

Área da API Descrição

No escopo GLOBAL, os usuários são globais e podem ser compartilhados nos namespaces.

Nesse caso, o namespace padrão associado a um usuário determina o namespace para asoperações de objeto e não é necessário informar um namespace para uma operação. Noescopo NAMESPACE, um usuário é associado a um namespace. Nesse caso, pode haver mais

de um usuário com o mesmo nome, cada um associado a um namespace diferente e umnamespace deve ser fornecido para cada operação.

Licenciamento /licenseAPI que permite adicionar uma licença e recuperar os detalhes da licença.

Recurso /feature/ServerSideEncryptionAPI para recuperar os detalhes do recurso ServerSideEncryption.

Syslog /vdc/syslog/configAPI para gerenciar a configuração de Syslog e enviar alertas ao servidor de Syslog para fins dedepuração e solução de problemas.

SNMP (Simple NetworkManagement Protocol)

/vdc/snmp/configAPI para gerenciar a configuração de SNMP e enviar alertas ao servidor de SNMP para fins dedepuração e solução de problemas.

CAS

Perfil do usuário do CAS /object/user-cas/secretAPI para atribuir chaves secretas aos usuários do CAS e gerar o arquivo PEA (Pool EntryAuthorization).

/object/user-cas/bucketAPI para recuperar ou atualizar o bucket padrão de um usuário CAS especificado.

/object/user-cas/applications/{namespace}API para recuperar os aplicativos registrados do CAS para um namespace especificado.

/object/user-cas/metadata/{namespace}/{uid}API para recuperar ou atualizar os metadados de usuário do CAS para o namespace e o usuárioespecificados.

Acesso ao file system

NFS /object/nfsAPI para criar uma exportação NFS com base em um bucket do ECS e permitir acesso àexportação pelos grupos e usuários do UNIX.

/object/nfs/usersAPI para gerenciar o mapeamento entre o usuário/grupo do ECS e o ID de usuário UNIXcorrespondente.

/object/nfs/exportsAPI para criar e gerenciar exportações NFS.

Medição

API REST de gerenciamento do ECS

132 ECS 3,3 Guia de Acesso a dados

Page 133: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Tabela 26 API REST de gerenciamento do ECS — resumo de métodos (continuação)

Área da API Descrição

Faturamento /object/billingAPI para medir a utilização da área de armazenamento de objeto no nível de namespace e debucket.

Migração

Transformação /object/transformationAPI para habilitar a transformação de dados de um cluster Centera.

Monitoramento

Capacidade /object/capacityAPI para recuperar a capacidade gerenciada atual.

Painel de controle /dashboard/zones/localzoneAPI para recuperar os detalhes locais do VDC, incluindo detalhes sobre grupos de replicação,pools de armazenamento, nós e discos.

/dashboard/zones/hostedzoneAPI para recuperar os detalhes do VDC hospedado, incluindo detalhes sobre grupos dereplicação.

/dashboard/replicationgroups/{id}API para recuperar os detalhes da instância do grupo de replicação.

/dashboard/storagepools/{id}API para recuperar os detalhes do pool de armazenamento, incluindo detalhes sobre os nós dopool de armazenamento.

/dashboard/nodes/{id}API para recuperar os detalhes da instância de nó, incluindo o disco de instância de nó edetalhes do processo.

/dashboard/disks/{id}API para recuperar os detalhes da instância do disco.

/dashboard/processes/{id}API para recuperar os detalhes da instância do processo.

/dashboard/rglinks/{id}API para recuperar os detalhes da instância do link do grupo de replicação.

/dashboard/datatables/{id}API para recuperar os detalhes da instância de tabelas de dados do grupo de replicação.

Eventos /vdc/eventsAPI para recuperar os eventos de auditoria para um namespace especificado.

Alertas /vdc/alertsAPI para recuperar alertas de auditoria.

Multi-tenancy

API REST de gerenciamento do ECS

Resumo da API REST de gerenciamento do ECS 133

Page 134: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Tabela 26 API REST de gerenciamento do ECS — resumo de métodos (continuação)

Área da API Descrição

Namespace /object/namespacesAPI para criar e gerenciar um namespace.

Essa API também define o período de retenção e a cota para o namespace. Para obter maisinformações sobre períodos de retenção e cotas, consulte o Guia de Administração do ECS, queestá disponível em Página de Documentação do produto ECS.

Replicação geográfica

Grupo de replicação /data/data-service/vpoolsAPI para criar e gerenciar grupos de replicação.

Zona com falha temporária /tempfailedzone/API para recuperar todas as zonas com falha temporária ou as zonas com falha temporáriapara um grupo de replicação específico.

Provisionamento

URL base /object/baseurlAPI para criar uma URL base que habilita o funcionamento de aplicativos existentes com aárea de armazenamento em object do ECS. Para obter mais informações sobre URL base,consulte o Guia de Administração do ECS, que está disponível em Página de Documentação doproduto ECS.

Bucket /object/bucketAPI para provisionar e gerenciar buckets.

/object/bucket/{bucketName}/lockAPI para bloquear o acesso ao bucket.

/object/bucket/{bucketName}/tagsAPI para adicionar marcas a um bucket especificado.

/object/bucket/{bucketName}/retentionAPI para definir o período de retenção de um bucket especificado.

/object/bucket/{bucketName}/quotaAPI para definir a cota de um bucket especificado.

/object/bucket/{bucketName}/policyAPI para adicionar uma política a um bucket especificado.

/object/bucket/{bucketName}/metadataAPI para adicionar metadados a um bucket especificado.

Datastore /vdc/data-storesAPI para criar datastores nos file systems (/vdc/data-stores/filesystems) ou nos

nós commodity (/vdc/data-stores/commodity).

Nó /vdc/nodesAPI para recuperar os nós que estão configurados para o cluster no momento.

API REST de gerenciamento do ECS

134 ECS 3,3 Guia de Acesso a dados

Page 135: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Tabela 26 API REST de gerenciamento do ECS — resumo de métodos (continuação)

Área da API Descrição

/vdc/nodes/{nodename}/lockdownAPI para definir o status bloqueado ou desbloqueado de um nó especificado.

/vdc/lockdownAPI para recuperar o status bloqueado ou desbloqueado de um VDC.

Pool de armazenamento /vdc/data-services/varraysAPI para criar e gerenciar pools de armazenamento.

Datacenter virtual /object/vdcsAPI para adicionar um VDC e especificar os endpoints entre VDC e a chave secreta para areplicação de dados entre os locais do ECS.

Keystore de VDC /vdc/keystoreAPI para gerenciar certificados para um VDC.

Suporte

Call home /vdc/callhome/API para gerenciar a configuração de ESRS e enviar alertas ao ConnectEMC para fins dedepuração e solução de problemas.

Gerenciamento de usuários

Provedor de autenticação /vdc/admin/authnprovidersAPI para adicionar e gerenciar os provedores de autenticação.

Grupo de senhas (Swift) /object/user-passwordAPI para gerar uma senha para ser usada com a autenticação do OpenStack Swift.

Chave secreta /object/user-secret-keysAPI para atribuir chaves secretas aos usuários de objeto e gerenciar chaves secretas.

Autoatendimento de chavesecreta

/object/secret-keysAPI para permitir que os usuários do S3 criem uma nova chave secreta que os permita acessaros objetos e buckets de seu namespace na área de armazenamento de objetos.

Usuário (objeto) /object/usersAPI para criar e gerenciar os usuários de objeto. Os usuários de objeto são sempre associadosa um namespace. A API exibe uma chave secreta que pode ser usada para acesso ao S3. Umusuário de objeto atribuído a uma chave secreta S3 pode alterá-la usando a API REST.

/object/users/lock.

API para bloquear o acesso do usuário.

/object/users/{userName}/tags.

API para associar tags a um ID do usuário. As tags estão na forma de pares nome=valor.

Gerenciamento (usuário) /vdc/users

API REST de gerenciamento do ECS

Resumo da API REST de gerenciamento do ECS 135

Page 136: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Tabela 26 API REST de gerenciamento do ECS — resumo de métodos (continuação)

Área da API Descrição

API para criar e gerenciar os usuários. Os usuários de gerenciamento podem ser atribuídos àfunção administrador do sistema ou administrador de namespace. Você pode usar essa APIpara alterar a senha do usuário de gerenciamento local.

API REST de gerenciamento do ECS

136 ECS 3,3 Guia de Acesso a dados

Page 137: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

CAPÍTULO 6

ECS HDFS

Esta seção descreve o suporte que o ECS oferece ao ECS HDFS.

l Introdução ao ECS HDFS..................................................................................138l Configuração do Hadoop para usar o ECS HDFS ............................................. 139l Modos de autenticação do Hadoop...................................................................139l Migração de um cluster simples para um cluster de Kerberos do Hadoop......... 143l Interação do file system....................................................................................144l Aplicativos Hadoop compatíveis........................................................................144l Integrar um cluster simples do Hadoop com o ECS HDFS................................ 145l Integrar um cluster seguro do Hadoop com o ECS HDFS ................................ 159

ECS HDFS 137

Page 138: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Introdução ao ECS HDFSO ECS HDFS é um HCFS (Hadoop Compatible File System) que permite que vocêexecute aplicativos Hadoop 2.x na infraestrutura de armazenamento do ECS.

Ao usar o ECS HDFS, a distribuição do Hadoop é configurada para executar o ECSHDFS em vez do file system integrado do Hadoop. A figura a seguir mostra como oECS HDFS se integra a um cluster existente do Hadoop.

Figura 5 Integração do ECS HDFS em um cluster do Hadoop

Hadoop Cluster

ResourceManager

Hadoop Client

ECS Client Library

Node Manager

MapReduce Task

Appliance Software

MapReduce Request

Node Manager

MapReduce Task

Node Manager

MapReduce Task

ECS nodes

ECS nodes

ECSnodes

ECS Client Library ECS Client Library

Em um ambiente do Hadoop configurado para usar o ECS HDFS, cada um dos nós doECS funciona como um NameNode e DataNode tradicional do Hadoop, para que todosos nós do ECS possam aceitar e atender a solicitaçõ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 todas as atividades do HDFS. Emcada nó do client do ECS HDFS, qualquer componente tradicional do Hadoop utilizariaa biblioteca de clients do ECS (o arquivo JAR do ViPRFS) para realizar a atividade doHDFS.

Para integrar o ECS HDFS a um ambiente existente do Hadoop, você deve ter:

ECS HDFS

138 ECS 3,3 Guia de Acesso a dados

Page 139: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

l Um cluster do Hadoop já instalado e configurado. As distribuições a seguir sãocompatíveis:

n Hortonworks HDP 2.6.2

l Um cluster do Hadoop instalado e configurado para dar suporte ao ECS HDFS, querequer:

n Um bucket habilitado para file system, para acesso ao HDFS.

Obs.

Há suporte para somente um bucket por cluster do Hadoop e o ECS HDFSdeve ser o file system padrão.

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 Arquivos de configuração do Kerberos e arquivos keytab do principal do serviçoimplementados no cluster do ECS.

n Metadados protegidos implementados no bucket.

Configuração do Hadoop para usar o ECS HDFSO Hadoop armazena a informação sobre configuração do sistema em vários arquivos,inclusive core-site.xml, hdfs-site.xml e hive-site.xml. A configuração doECS HDFS exige que você edite core-site.xml.

Você deve adicionar ou modificar vários tipos de propriedades no arquivo 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 clients do ECS HDFS.

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 eos endereços IP ou FQDNs dos nós de dados do ECS para um file systemespecífico do ECS

l Propriedades do principal do serviço e do realm Kerberos: Essas propriedades sãonecessárias somente em um ambiente Hadoop em que o Kerberos esteja presente.Essas propriedades mapeiam os usuários do Hadoop e do ECS HDFS.

O arquivo core-site.xml reside em cada nó do cluster do Hadoop. Você deveadicionar as mesmas propriedades para cada instância do core-site.xml.

Obs.

Ao modificar os arquivos de configuração, você deve usar a interface degerenciamento (Ambari) em vez de fazer a edição manual de arquivos. As alteraçõesfeitas usando a interface de gerenciamento Ambari são mantidas no cluster.

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.

ECS HDFS

Configuração do Hadoop para usar o ECS HDFS 139

Page 140: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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

Em um ambiente Hadoop com Kerberos, a identidade do processo de um client édeterminada por suas credenciais do Kerberos. Por exemplo, você pode usar outilitário kinit para obter um TGT (Ticket-Granting-Ticket) do Kerberos e usar oklist para determinar seu principal atual. Ao mapear um principal do Kerberospara um nome de usuário do HDFS usando a propriedade auth_to_local doHadoop, todos os componentes, exceto os da instância primária, serãodescartados. Por exemplo, um principal todd/[email protected] como o nome de usuário simples “todd” no HDFS.

O ECS HDFS se integra aos clusters do Hadoop configurados para usar modos deautenticação simples ou Kerberos.

Quando o cluster do Hadoop usa o Kerberos, você pode configurar o ECS paraconceder acesso aos usuários com principais do Kerberos na [email protected]. Como alternativa, quando o ECS usar o AD para autenticarusuários, você pode configurar uma confiança unidirecional entre o ambiente doKerberos e o AD para que os usuários possam se autenticar usando suas credenciaisdo AD, na forma [email protected].

As permissões dos diretórios e arquivos recém-criados são restritas por umask(fs.permissions.umask-mode). A umask recomendada é 022.

Acessando o bucket como um file systemO armazenamento em file system do HDFS é oferecido por um bucket do ECS.Quando você cria um bucket, deve configurá-lo no ECS para que esteja disponívelcomo um file system.

O ECS (por meio da biblioteca de client do ECS) usa as permissões configuradas parao bucket e as configurações do arquivo core-site.xml do Hadoop para determinaro acesso ao file system raiz (bucket). Você precisa garantir que tenha configuradoacesso suficiente para permitir que os usuários e serviços do Hadoop criem arquivos ediretórios no bucket.

Em geral, todas as operações de arquivo e diretório devem ser permitidas pelas ACLsde bucket. Além disso, cada arquivo e objeto de diretório individual no bucket têm aprópria ACL de objeto e todas as operações de objeto também devem ser permitidaspela ACL de objeto. Se a operação de objeto não cumprir a ACL do bucket, a operaçãoserá negada. Se a operação de objeto não cumprir a ACL do objeto, a operação seránegada.

Uma exceção é que o proprietário do bucket, o superusuário do Hadoop e os membrosdo supergrupo do Hadoop, definidos em hdfs-site.xml, sempre têm permissãopara executar qualquer operação de file system, independentemente das ACLs debucket e objeto.

Você pode configurar as ACLs de bucket adicionando ACLs de usuário explicitamenteno bucket para cada usuário bucket ou especificando ACLs de grupo personalizado.Para obter mais informações, consulte Grupo padrão e ACLs de grupo personalizadasdos buckets. O proprietário do bucket deve ser um usuário de objeto do ECS. Outrosusuários não precisam ser usuários de objeto do ECS e podem ser nomes de usuárioUNIX do cluster do Hadoop.

ECS HDFS

140 ECS 3,3 Guia de Acesso a dados

Page 141: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Uma exceção adicional é que, diferente de buckets normais do ECS, um bucket doECS habilitado para file system tem um objeto especial que representa o diretório raize um objeto especial para cada diretório. O objeto do diretório raiz não existe em umnovo bucket habilitado para file system, mas é criado quando a primeira operação dofile system é realizada no bucket. Quando esse objeto do diretório raiz não existe,algumas chamadas API do ECS HDFS não executam verificações de ACL do bucket.

Para garantir as permissões consistentes, independentemente da chamada API, vocêdeve garantir que a ACL de objeto do diretório raiz duplique a ACL do bucket.

Depois que os usuários têm acesso ao file system, os arquivos e diretórios que elescriam têm permissões determinadas pela propriedade umask no arquivo core-site.xml.

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 típicos definidos no cluster do Hadoop são hdfs (com o usuário hdfs),hadoop (tipicamente inclui todos os usuários de serviço) e users (inclui outrosusuários não de serviço e acessam os aplicativos no cluster do Hadoop). Você podecriar grupos correspondentes no Portal do ECS e atribuir permissões a eles.

Também é possível atribuir um Grupo padrão para o bucket. O Grupo padrão é o grupoatribuído ao file system raiz (/). Por exemplo, se o proprietário do bucket for hdfs e oGrupo padrão for definido como hadoop, / será definido para hdfs:hadoop comousuário e grupo, respectivamente. Um Grupo padrão também é um grupopersonalizado e é 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 no exemplo a seguir.

drwx---rwx+ - hdfs 0 2018-03-09 12:30 /

Se um Grupo padrão hadoop for definido, a propriedade e as permissões são exibidasconforme mostrado no exemplo a seguir.

drwxrwxrwx+ - hdfs hadoop 0 2018-03-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 do Hadoop usando oscomandos hdfs dfs -chgrp e hdfs dfs -chmod.

Superusuário e supergrupo do Hadoop.

O superusuário em um ambiente do Hadoop é o usuário que inicia o namenode,geralmente hdfs ou [email protected]. Em uma configuração do ECS HDFS, osuperusuário é o proprietário do bucket. Consequentemente, se você quiser que osuperusuário do Hadoop tenha acesso de superusuário ao bucket do ECS, deverágarantir que o bucket pertença ao hdfs, ao [email protected] ou [email protected], se você estiver usando o Active Directory para autenticarusuários no ambiente do Hadoop.

ECS HDFS

Grupo padrão e ACLs de grupos personalizados dos buckets 141

Page 142: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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 no arquivo core-site.xml. No modosimples, a verificação para determinar se um usuário é membro do supergrupo é feitano client, verificando o valor da propriedade do Hadoopdfs.permissions.supergroup. No modo Kerberos, a verificação para determinarse um usuário é membro do supergrupo é feita no servidor do 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 tem acesso total(leitura e gravação) ao bucket. Geralmente, os usuários sem privilégios desuperusuário têm acesso de leitura, mas isso depende de como o bucket foi criado. Umusuário não precisa ser usuário de objeto do ECS para ter acesso ao bucket. O nomedeve corresponder a um usuário do AD, do Kerberos ou local do Unix (dependendo domodo 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 dostrabalhos 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 elestenham um proprietário e também a lista de membros do grupo e permissões de grupoque permitam o acesso ao HDFS do cluster do Hadoop.

Os arquivos criados usando o HDFS e acessados com o protocolo S3 não são afetadospelas permissões padrão, pois elas somente são aplicadas aos objetos criados usando oprotocolo S3.

Usuário proxyO ECS HDFS dá suporte ao uso do usuário proxy do Hadoop.

Um usuário proxy permite que um usuá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.

ECS HDFS

142 ECS 3,3 Guia de Acesso a dados

Page 143: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Geralmente, um principal do Kerberos tem a forma primary/instance@realm,embora a instância não seja obrigatória; portanto, o principal do primary@realm seaplica a todos os hosts do realm. Se a instância for especificada, ela poderá ser usadapara 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 estiveremsendo usados.

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, pode alterá-los (usando chown) para que eles sejam propriedadedo principal do Kerberos. No entanto, quando você tiver um grande número dearquivos, a propriedade deles não precisará ser alterada com o recurso de migração.

Esse recurso não é implementado para buckets e você deve alterar as ACLs de bucketpara permitir o acesso pelos principais do Kerberos caso dependa do acesso porusuários. No entanto, se você usar a lista de membros do grupo como o meio principalpara habilitar o acesso, não terá que 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 dogrupo associado a um bucket, arquivo ou diretório é o mesmo quando acessado de umcluster simples ou com proteção do Kerberos. Quando você acessa de um ambientesimples, a lista de membros do grupo é determinada pela máquina do UNIX. Ao acessarde um cluster que passou por Kerberos, você pode configurar a lista de membros dogrupo atribuindo o mapeamento. Consulte Mapear nomes de grupo para obterinformações sobre o mapeamento de nomes de grupo.

Ao usar as credenciais do AD, o mapeamento entre os principais do AD e os principaisdo UNIX é obtido removendo-se o sufixo de domínio, para que o usuá[email protected] torne-se hdfs. Isso não é tão flexível quanto usar o mapeamentodo principal do Kerberos, que permite mapeamentos como [email protected] hdfs.

ECS HDFS

Migração de um cluster simples para um cluster de Kerberos do Hadoop 143

Page 144: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Ao usar grupos com o AD, um provedor de autenticação deve ter sido configurado noECS para que a associação do grupo possa ser verificada.

Modo de autenticação Kerberos do HadoopQuando o Kerberos e o servidor AD do ECS são integrados, o realm do Kerberosoferece um só namespace de usuários para que os usuários do Hadoop autenticadoscom o comando kinit sejam reconhecidos como usuários ECS credenciados.

Em um cluster Hadoop em execução no modo Kerberos, deve haver uma confiançaunidirecional de realm cruzado do realm do Kerberos ao realm do AD usado paraautenticar os usuários do ECS.

As seguintes propriedades de conversão de identidade do arquivo core-site.xmlsão usadas para garantir a conversã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 comoCURRENT_USER.

l fs.viprfs.auth.identity_translation: Defina o valor comoCURRENT_USER_REALM para que o realm dos usuários seja automaticamentedetectado.

Além disso, você deve definir as seguintes propriedades no arquivo core-site.xmlpara definir o principal do serviço:

l viprfs.security.principal: vipr/[email protected] em queREALM.COM é substituído pelo nome do realm Kerberos.

Interação do file systemQuando você está interagindo diretamente com o ECS HDFS, pode observar asseguintes diferenças na interação com o file system padrão 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 integrada do HDFS exigem alterações para usar o ECS HDFS.

l O ECS HDFS não dá suporte aos checksums 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 dos 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íveisO ECS HDFS dá suporte à maioria dos aplicativos do ecossistema Hadoop.

Os seguintes aplicativos do ecossistema do Hadoop são compatíveis:

l YARN

l MapReduce

l Pig

l Hive

ECS HDFS

144 ECS 3,3 Guia de Acesso a dados

Page 145: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

l Spark

l ZooKeeper

l Ambari

l Sqoop

l Flume

Integrar um cluster simples do Hadoop com o ECS HDFSVocê pode configurar uma distribuição do Hadoop para usar a infraestrutura dearmazenamento do ECS com o ECS HDFS.

Para executar este procedimento de integração, você deve ter:

l Conhecimentos práticos sobre sua distribuição do Hadoop e as ferramentasassociadas.

l As credenciais do Hadoop que permitem que você faça log-in nos nós do Hadoop,modifique arquivos do sistema Hadoop, e inicie e interrompa serviços do Hadoop.

As seguintes etapas devem ser realizadas:

1. Instale o Hortonworks HDP usando o Ambari

2. Criar um bucket para HDFS usando o Portal do ECS

3. Planejar a integração entre o ECS HDFS e o Hadoop

4. Obter o pacote de instalação e suporte do ECS HDFS

5. Implementar a biblioteca de clients do ECS HDFS (Não é necessário se você usouo Ambari Hortonworks para ECS)

6. Configurar as propriedades do client do ECS.

7. Verificar o acesso do Hadoop ao ECS.

8. Realoque o file system padrão do HDFS para um bucket do ECS

Depois que a configuração for concluída, os arquivos no file system padrão do clusterdo Hadoop são associados aos arquivos em buckets do ECS. Por exemplo, /foo/barno file system padrão é associado a viprfs://<bucket_name>.<namespace>.<federation_name>/foo/bar.

Instale o Hortonworks HDP usando o AmbariInstale o servidor do Ambari e use-o para instalar o Hortonworks HDP.

Os comandos básicos para instalar e configurar o servidor do Ambari são mencionadosneste procedimento. Para obter mais informações sobre como instalar o servidor doAmbari, consulte a documentação do Hortonworks.

Procedimento

1. Faça download do repositório do Ambari.

wget -nv http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.5.2.0/ambari.repo -O /etc/yum.repos.d/ambari.repo

2. Instale o servidor do Ambari.

yum install -y ambari-server

ECS HDFS

Integrar um cluster simples do Hadoop com o ECS HDFS 145

Page 146: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

3. Configure o servidor do Ambari.

ambari-server setup -s

4. Inicie o servidor do Ambari.

ambari-server start

5. Navegue para http://ambari.example.com:8080/6. Na página Select Stack, selecione a versão do Hadoop HDP 2.6.2 e selecione a

versão do SO.

7. Selecione os serviços do Hadoop que deseja habilitar.

8. Conclua o assistente de instalação.

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

Certifique-se de estar atribuído à função Administrador de namespace ouAdministrador do sistema. Caso seja um Administrador de namespace, é possível criarbuckets em seu namespace. Caso seja um Administrador do sistema, é possível criarum bucket que pertença a qualquer namespace.

Você deve garantir que os serviços e usuários do Hadoop tenham acesso ao filesystem do HDFS (bucket) e que os arquivos e diretórios sejam acessíveis para osusuá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. Isso atribui automaticamente as ACLs degrupo personalizado.

n Após a criação do bucket, adicione ACLs de grupo personalizado 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.

Para obter mais informações sobre usuários e permissões, consulte Acessando obucket como um file system e Exemplo de permissões de bucket do Hadoop e do ECS.

Procedimento

1. No Portal do ECS, selecione Manage > Buckets > New Bucket.

2. Na página New Bucket, no campo Name, digite um nome para o bucket.

ECS HDFS

146 ECS 3,3 Guia de Acesso a dados

Page 147: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Obs.

Não use sublinhados em nomes de bucket porque eles não são compatíveis coma classe URI do Java. Por exemplo,viprfs://my_bucket.ns.site/ nãofunciona porque é um URI inválido e, portanto, não é compreendido peloHadoop.

3. No campo Namespace, selecione o namespace ao qual o bucket pertencerá.

4. No campo Replication Group, selecione um grupo de replicação ou deixe-o embranco para usar o grupo de replicação padrão para o namespace.

5. No campo Bucket Owner, digite o nome de usuário do proprietário do bucket.

Para um bucket do HDFS, geralmente, o proprietário do bucket será hdfs [email protected] para os buckets do Kerberos. O usuário hdfs do Hadoopexige privilégios de superusuário no HDFS; para isso, basta tornar o hdfs oproprietário do bucket. Outros usuários do Hadoop também podem exigirprivilégios de superusuário, que são concedidos atribuindo os usuários a umgrupo e transformando-o em um grupo de superusuário.

6. Não ative o CAS.

Obs.

Um bucket destinado para uso como HDFS não pode ser usado para CAS. Ocampo CAS fica desativado quando File System está ativado.

7. Ative quaisquer outros recursos de bucket que sejam necessários.

Você pode ativar os seguintes recursos em um bucket do HDFS:

l Cota

l Server-side Encryption

l Pesquisa de metadados

l Access During Outage

l Conformidade (consulte a observação)

l Bucket Retention

Para obter informações sobre cada uma dessas configurações e como defini-las,consulte o Guia de Administração do ECS, disponível em Página deDocumentação do produto ECS.

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. No campo File System, clique em On.

Assim que esse recurso estiver ativado, os campos para definir um grupo padrãodo file system/bucket e atribuir as permissões de grupo dos arquivos ediretórios criados no bucket estarão disponíveis.

9. No campo Default Bucket Group, digite um nome para o grupo padrão debucket.

ECS HDFS

Criar um bucket para HDFS usando o Portal do ECS 147

Page 148: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Este é o grupo associado ao file system raiz do HDFS e permite que os usuáriosdo Hadoop que são membros do grupo acessem o HDFS.

O grupo padrão pode ser um grupo, como hdfs ou hadoop, ao qual pertencemos serviç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 do S3 transferidospor upload ao bucket sejam atribuídos ao grupo S3DataUsers. Todos osarquivos do S3 terão esse grupo atribuído. No nó do Hadoop, o administrador doHadoop terá os usuários que são membros do grupo S3DataUsers.S3DataUsers pode ser um grupo do Linux ou do AD. Quando os usuários doHadoop quiserem acessar os dados do S3, poderão fazer isso porque osarquivos foram transferidos por upload e atribuídos a esse grupo

Você deve especificar o grupo padrão na criação do bucket. Caso contrário, ogrupo deve ser atribuído posteriormente no Hadoop pelo proprietário do filesystem.

10. Nos campos Group File Permissions e Group Directory Permissions, definaas permissões padrão para os arquivos e diretórios criados no bucket usandoprotocolos de objeto.

Você pode usar essas configurações para aplicar as permissões de grupo doUNIX aos objetos criados usando protocolos de objeto. Essas permissões sãoaplicadas ao grupo do HDFS (o grupo padrão de bucket) quando o objeto ou odiretório for listado no Hadoop. Consulte Acesso multiprotocolo (suportecruzado) para obter mais informações sobre como configurar o grupo padrão eas permissões do file system.

a. No campo Group File Permissions, selecione os botões adequados depermissão. Normalmente, você define as permissões Read e Execute.

b. No campo Group Directory Permissions, selecione os botões adequados depermissão. Normalmente, você define as permissões Read e Execute.

11. Clique em Save para criar o bucket.

Configurar ACLs personalizadas de buckets de grupoVocê pode definir uma ACL de grupo para um bucket no Portal do ECS e definir ACLsde bucket para um grupo de usuários (ACL de grupo personalizada), para usuáriosindividuais ou para uma combinação de ambos. Por exemplo, você pode concederacesso completo a bucket para um grupo de usuários, mas também pode restringir (ouaté mesmo negar) o acesso a bucket para usuários individuais desse grupo.

Antes de você começar

l Essa operação requer a função de Administrador do sistema ou de namespace noECS.

l Um Administrador do sistema pode editar as configurações da ACL de grupo paraum bucket em qualquer namespace.

l Um Administrador de namespace pode editar as configurações da ACL de grupopara um bucket no namespace no qual ele é o administrador.

As ACLs de grupos personalizados permitem que grupos sejam definidos e quepermissões sejam atribuídas a eles. O caso de uso principal para a atribuição de gruposa um bucket é dar suporte ao acesso ao bucket como um file system. Por exemplo, aodisponibilizar o bucket para NFS ou HDFS.

Membros do grupo do UNIX podem acessar o bucket quando ele for acessado comoum file system (usando NFS ou HDFS).

ECS HDFS

148 ECS 3,3 Guia de Acesso a dados

Page 149: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Procedimento

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

2. Na página Bucket Management, localize o bucket que deseja editar na tabela eselecione a ação Edit ACL.

3. Clique na guia Custom Group User ACLs para definir a ACL para um grupopersonalizado.

4. Clique em Add.

A página Edit Custom Group será exibida.

5. Na página Edit Custom Group, no campo Custom Group Name, digite o nomedo grupo.

Esse nome pode ser um grupo do Unix/Linux ou do Active Directory.

6. Selecione as permissões para o grupo.

No mínimo, você deve atribuir as permissões Read, Write, Execute e ReadACL.

7. Clique em Save.

Definir ACLs de bucket do usuárioVocê pode definir uma ACL de usuário para um bucket no Portal do ECS. O ECSatribui as permissões automaticamente ao proprietário do bucket. Você pode atribuirACLs de usuário a outros usuários do Hadoop para permitir o acesso ao bucket/filesystem; como alternativa, eles podem ter acesso ao bucket sendo um membro dogrupo que foi atribuído às ACLs de grupo personalizado.

Antes de você começar

l Você deve ser um administrador de namespace ou um administrador do sistema doECS para editar a ACL de um bucket.

l Caso seja um administrador de namespace, é possível editar as configurações deACL dos buckets 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.

Procedimento

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

2. Na página Bucket Management, localize o bucket que deseja editar na tabela eselecione a ação Edit ACL.

3. Na página Bucket ACLs Management, certifique-se de que a guia User ACLsesteja selecionada; esse é o padrão.

4. Na guia User ACLs, é possível editar as permissões de um usuário que já tenhapermissões atribuídas ou adicionar um usuário ao qual você deseja atribuirpermissõ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 você deseja atribuir permissões, clique emAdd e digite o nome do usuário ao qual as permissões serão aplicadas.Especifique as permissões que deseja aplicar ao usuário.

ECS HDFS

Criar um bucket para HDFS usando o Portal do ECS 149

Page 150: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

O usuário definido como o proprietário do bucket já tem permissões padrãoatribuídas.

O bucket no exemplo a seguir é propriedade do usuário hdfs e hdfs, comoproprietário, recebeu controle total. O controle total se traduz em permissõesde leitura, gravação e execução em um ambiente Hadoop/UNIX. O usuáriosally recebeu permissões de leitura e execução para acessar o bucket.

Para obter mais informações sobre os privilégios de ACL, consulte o Guia deAdministração do ECS, que está disponível em Página de Documentação doproduto ECS.

5. Clique em Save.

Exemplos de permissões de bucket do Hadoop e do ECSNeste tópico, são apresentados exemplos para demonstrar o relacionamento entre osusuários/grupos do Hadoop e a permissão atribuída aos usuários/grupos para que elesacessem o bucket usando ACLs de usuário do ECS e ACLs de grupo personalizado.

Quando um bucket é criado, o ECS atribui automaticamente as ACLs ao proprietáriodo bucket e ao grupo padrão que é a atribuição de grupo para o bucket quando ele foracessado usando HDFS. Um bucket deve sempre ter um proprietário; no entanto, nãoexige um grupo padrão atribuído. Os usuários e grupos exceto o proprietário dobucket, ou seja, os grupos personalizados, podem ser atribuídos a ACLs no bucket. AsACLs atribuídas dessa forma se transformam em permissões para usuários do Hadoop.

Tabela 27 Exemplos de permissões de bucket para acesso ao file system em um cluster simplesdo Hadoop

Usuários e grupos do Hadoop Permissões de bucket Acesso ao bucket/file system

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 do bucket

hdfs

Grupo padrão

ACL de grupospersonalizados

Hadoop, usuários, hive,spark (controlecompleto)

ACL de usuário

hdfs (proprietário)

As ACLs de grupo personalizado devem serdefinidas no bucket no Portal do ECS; atribuaControle completo sobre o file system raiz/bucket para os grupos hadoop, users, hivee spark.

Esse exemplo pressupõe que hdfs seja o

superusuário — o usuário que iniciou onamenode.

Bucket criado pelo usuário s3 — acesso cruzado

Usuários (serviço)

hdfs. mapred, yarn, hive, pig

Usuários (aplicativos)

sally, fred

Proprietário do bucket

s3user

Grupo padrão

hadoop

Quando você quiser que os objetos gravadospor um usuário do S3 sejam acessíveis comoarquivos do HDFS, um grupo padrão deve serdefinido (hadoop) para que os serviços e

usuários do Hadoop tenham permissões nosarquivos devido à lista de membros do grupo.

ECS HDFS

150 ECS 3,3 Guia de Acesso a dados

Page 151: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Tabela 27 Exemplos de permissões de bucket para acesso ao file system em um cluster simplesdo Hadoop (continuação)

Usuários e grupos do Hadoop Permissões de bucket Acesso ao bucket/file system

Grupos

hdfs (hdfs)

hadoop (hdfs, mapred, yarn, hive,pig)

users (sally, fred)

Supergrupo

hdfs

(Permissões dearquivo do grupo:Leitura, gravação

Permissões dediretório do grupo:Leitura, gravação,execução)

ACL de grupospersonalizados

hadoop (padrão)

ACL de usuário

s3user (proprietário),sally, fred

O grupo padrão tem ACLs de grupopersonalizado automaticamente no bucket/file system. O exemplo a seguir mostra quehadoop foi definido como grupo padrão e as

permissões do file system raiz são 777:

drwxrwxrwx+ - s3user hadoop 0 2018-03-09 12:28 /

Você pode conceder acesso aos usuáriosadicionando ACLs de Usuário ou ACLs degrupo personalizado ao grupo ao qual osusuários pertencem.

Tabela 28 Exemplos de permissões de bucket para acesso ao file system em um clusterKerberizado do Hadoop

Usuário do Hadoop Permissões de bucket Acesso ao bucket/file system

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 do bucket

[email protected]

Grupo padrão

hadoop

ACL de grupospersonalizados

hadoop (padrão), users

ACL de usuário

[email protected](proprietário)

As ACLs de grupo personalizado definidas nobucket no Portal permitem que os gruposhadoop e users tenham permissões no

bucket/file system raiz.

As informações do usuário obtidas do clusterdo Hadoop devem estar disponíveis para que oECS possa oferecer acesso seguro ao bucket.Essas informações são apresentadas usandometadados do bucket e um exemplo dearquivo de metadados é apresentado em Metadados de bucket seguros.

ECS HDFS

Criar um bucket para HDFS usando o Portal do ECS 151

Page 152: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Planejar a integração entre o ECS HDFS e o HadoopUse a tabela a seguir para verificar se você tem as informações necessárias paraassegurar o sucesso da integração.

Tabela 29 Pré-requisitos da 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 requer que um bucket ativado para HDFS seja criado em umgrupo de replicação do ECS. O bucket é acessado como um filesystem 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.

Obter o pacote de instalação e suporte do ECS HDFSA biblioteca de clients do ECS HDFS 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 clients do ECS (ViPRFS) (viprfs-client-<ECS version>-hadoop-<Hadoop version>.jar): usados paraconfigurar as diferentes distribuições do Hadoop.

Implementar a biblioteca de client do ECS HDFSUse este procedimento para colocar o JAR da biblioteca de clients do ECS HDFS noclasspath de cada nó de client do cluster do Hadoop.

Antes de você começarObtenha a biblioteca de clients do ECS HDFS para sua distribuição do Hadoop napágina de suporte do ECS, como descrito em Obter o pacote de instalação e suportedo ECS HDFS.

A biblioteca de client do HDFS usa a convenção de nomenclatura viprfs-client-<ECS version>-hadoop-<Hadoop version>.jar a seguir e o arquivo JAR parauso com cada versão está listado na tabela a seguir.

ECS HDFS

152 ECS 3,3 Guia de Acesso a dados

Page 153: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Tabela 30 Biblioteca de clients do ECS HDFS

Distribuiçãodo Hadoop

Versão JAR do ECS HDFS

Hortonworks HDP 2.6.2 viprfs-client-<ECS version>-hadoop-2.7.jar

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.

Procedimento

1. Faça log-in em um nó que tenha acesso ao SSH sem senha em todos os nós doHadoop.

2. Execute o comando classpath para obter a lista de diretórios no classpath:

# hadoop classpath3. Implemente o arquivo JAR do client em todos os nós do Hadoop executando as

seguintes etapas:

a. Crie um arquivo de texto chamado masters que contenha uma lista deendereços IP ou FQDNs para todos os nós mestres do Hadoop, um por linha.

b. Crie um arquivo de texto chamado workers que contenha uma lista deendereços IP ou FQDNs para todos os nós de operadores do Hadoop, um porlinha.

c. Crie o diretório /usr/lib/hadoop/lib em todos os nós. Use o seguintecomando:

# cat masters workers | xargs -i -n 1 ssh root@{} mkdir -p /usr/lib/hadoop/lib

d. Copie o jar do client ECS para todos os nós usando o seguinte comando:

cat masters workers | xargs -i -n 1 scp viprfs-client-3.2.0.0-hadoop-2.7.jar root@{}:/usr/lib/hadoop/lib/

Configurar propriedades do client do ECSVocê pode usar o Ambari para definir as seguintes propriedades de configuração quesão exigidas pelo client do ECS.

Para obter mais informações sobre os parâmetros core-site.xml, consulte Propriedades do core-site.xml do Hadoop para ECS HDFS.

ECS HDFS

Configurar propriedades do client do ECS 153

Page 154: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Tabela 31 Configuração do Hadoop para permitir o acesso ao ECS

Local dohadoop

Propriedade Valor

core-site fs.viprfs.impl com.emc.hadoop.fs.vipr.ViPRFileSystem

fs.AbstractFileSystem.viprfs.impl com.emc.hadoop.fs.vipr.ViPRAbstractFileSystem

fs.viprfs.auth.identity_translation NENHUM

fs.viprfs.auth.anonymous_translation LOCAL_USER

fs.vipr.installations Pode ser qualquer nome, como federation1 e seráreferido como $FEDERATION.Se você tiver várias federações do ECSindependentes, digite múltiplos valores separados porvírgulas.

fs.vipr.installation.$FEDERATION.hosts Lista separada por vírgulas de FQDN ou endereço IPde cada host do ECS no local de origem

fs.vipr.installation.$FEDERATION.hosts.resolution dinâmico

fs.vipr.installation.$FEDERATION.resolution.dynamic.time_to_live_ms

900000

hdfs-site fs.permissions.umask-mode 022

yarn-site yarn.application.classpath Acrescente o seguinte:

/usr/lib/hadoop/lib/*

mapred-site mapreduce.application.classpath Acrescente o seguinte:

/usr/lib/hadoop/lib/*

tez-site tez.cluster.additional.classpath.prefix Acrescente o seguinte:

/usr/lib/hadoop/lib/*

HDFS hadoop-env template Acrescente o seguinte:

export HADOOP_CLASSPATH=${HADOOP_CLASSPATH}:/usr/lib/hadoop/lib/*

ECS HDFS

154 ECS 3,3 Guia de Acesso a dados

Page 155: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Tabela 31 Configuração do Hadoop para permitir o acesso ao ECS (continuação)

Local dohadoop

Propriedade Valor

Spark spark-env template Acrescente o seguinte:

export SPARK_DIST_CLASSPATH="${SPARK_DIST_CLASSPATH}:/usr/lib/hadoop/lib/*:/usr/hdp/current/hadoop-client/client/guava.jar"

Configurar o HiveAs etapas adicionais fornecidas neste procedimento são necessárias para configurar oHive.

Antes de você começar

Ao usar o Hive, você também deve garantir que o metastore warehouse do Hive estejasendo direcionado para o local do ViPRFS. Supondo que o mysql esteja sendo usadopara identificar o local do metastore do Hive, inicie o mysql, vá para os bancos dedados do Hive e mostre o conteúdo da tabela DBS e defina-o conforme mostradoabaixo.

Procedimento

1. Se o Hive estiver usando o templeton, você deve modificar as seguintespropriedades, que já estão definidas.

Tabela 32 Configuração do templeton do Hive

Local do Hadoop Propriedade Valor (exemplo)

webhcat-site avançado templeton.hive.archive viprfs://hdfsBucket2.s3.site1/hdp/apps/${hdp.version}/hive/hive.tar.gz

templeton.pig.archive viprfs://hdfsBucket2.s3.site1/hdp/apps/${hdp.version}/pig/pig.tar.gz

templeton.sqoop.archive viprfs://hdfsBucket2.s3.site1/hdp/apps/${hdp.version}/sqoop/sqoop.tar.gz

templeton.streaming.jar viprfs://hdfsBucket2.s3.site1/hdp/apps/${hdp.version}/mapreduce/hadoop-streaming.jar

2. Inicie o mysql.

[root@hdfs-pansy2 lib]# mysql -u hive -pEnter password: Welcome to the MySQL monitor. Commands end with ; or \g.

3. Vá para o banco de dados do Hive.

mysql> use hive;Reading table information for completion of table and column

ECS HDFS

Configurar o Hive 155

Page 156: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

namesYou can turn off this feature to get a quicker startup with -A

4. Mostre o conteúdo do banco de dados.

select * from DBS;+------+-------------+-----------------------------------+--------+-------+------+|DB_ID | DESC | DB_LOCATION_URI | NAME | OWNER | OWNER|| | | | | _NAME | _TYPE|+------+-------------+-----------------------------------+--------+-------+------+| 1 | Default Hive| hdfs://hdfs-pansy1.ecs.lab.emc. |default |public |ROLE || | database | com:8020/apps/hive/warehouse | | | || | | | | | || 6 | NULL | viprfs://hdfsbucket.ns.Site1/ |retail |hdfs |USER || | | apps/hive/warehouse/retail_demo.db| _demo | | |+------+-------------+-----------------------------------+--------+-------+------+2 rows in set (0.00 sec)

5. Conecte o banco de dados.

mysql> update DBS set DB_LOCATION_URI='viprfs://hdfsbucket3.ns.Site1/apps/hive/warehouse' where DB_ID=1;Query OK, 1 row affected (0.00 sec)Rows matched: 1 Changed: 1 Warnings: 0

Verificar acesso de Hadoop ao ECSVocê deve verificar o acesso ao bucket do ECS.

Depois que todos os serviços de client do Hadoop foram iniciados, certifique-se de quepode acessar o bucket do ECS usando a CLI do Hadoop. O URI está na formaviprfs://bucket.namespace.federation/.

Para um bucket com URI viprfs://hive-warehouse-1.ns1.federation1/,você pode tentar uma listagem de diretório usando:

[root@mycluster1-master-0 ~]# hdfs dfs -ls viprfs://hive-warehouse-1.ns1.federation1/

Um novo bucket estará vazio e nada será devolvido.

Para o mesmo bucket, os comandos a seguir criam um arquivo vazio e, em seguida,executam uma lista de diretórios que mostra o arquivo.

[root@mycluster1-master-0 ~]# hdfs dfs -touchz viprfs://hive-warehouse-1.ns1.federation1/hive-warehouse-1[root@mycluster1-master-0 ~]# hdfs dfs -ls viprfs://hive-warehouse-1.ns1.federation1/

Proteger o bucketAlém de configurar uma ACL do bucket, a entrada do diretório raiz deve ser criada eprotegida imediatamente após a criação do bucket.

ECS HDFS

156 ECS 3,3 Guia de Acesso a dados

Page 157: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Antes de você começar

Esse procedimento deve ser realizado como o proprietário do bucket, que é hdfsneste exemplo.

Procedimento

1. Defina os bits de modo na ACL de objeto do diretório raiz para que somente oproprietário do bucket e o grupo padrão tenham acesso ao bucket. O grupoother, que inclui todos os usuários do client ECS HDFS, não tem acessopermitido ao diretório raiz e, portanto, não tem acesso permitido a qualquerarquivo no bucket.

[hdfs@hadoop-0 ~]$fs=viprfs://bucket.ns.fedhadoop fs -chmod 750 $fs/hadoop fs -chown hdfs:hdfs $fs/

2. Usuários e grupos específicos devem ser adicionados à ACL de objeto dodiretório raiz usando o comando setfacl.

Observe que essas permissões duplicam as ACLs de grupo personalizado dobucket para garantir que todas as APIs do HDFS tenham as mesmas permissõesefetivas.

hadoop fs -setfacl -m group:hadoop:r-x $fs/hadoop fs -setfacl -m group:users:r-x $fs/hadoop fs -setfacl -m group:hive:r-x $fs/hadoop fs -setfacl -m group:spark:r-x $fs/

3. Confirme as permissões.

hadoop fs -ls -d $fs/drwxr-x---+ - hdfs hdfs 0 2017-08-22 20:44 viprfs://bucket.ns.fed/

hadoop fs -getfacl $fs/# file: viprfs://bucket.ns.fed/# owner: hdfs# group: hdfsuser::rwxgroup::r-xgroup:hadoop:r-xgroup:hive:r-xgroup:spark:r-xgroup:users:r-xmask::r-xother::---

Realoque o file system padrão do HDFS para um bucket do ECS

Embora o sistema agora esteja utilizável e pareça funcionar bem, uma configuraçãocom o HDFS como o file system padrão não é compatível. Você deve, portanto,realocar o file system padrão do HDFS para um bucket raiz do ECS. Esseprocedimento copia todos os arquivos do file system do HDFS para um bucket do ECSe, em seguida, configura o bucket do ECS como o file system padrão.

ECS HDFS

Realoque o file system padrão do HDFS para um bucket do ECS 157

Page 158: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Procedimento

1. Use o Ambari para interromper todos os serviços exceto HDFS, YARN eZookeeper.

2. Copie todos os arquivos existentes no file system DAS HDFS para o bucket doECS. Até mesmo para uma nova instalação do Hadoop, há diretórios relevantesque devem existir no file system padrão do Hadoop. Use DistCp para realizar acópia do arquivo.

[hdfs@mycluster1-master-0~]$ hadoop distcp -skipcrccheck -update -pugp -i / viprfs://mycluster1-root.ns1.federation/

3. Use o Ambari para definir as seguintes configurações.

Tabela 33 Configuração do Hadoop para permitir a simultaneidade de Hive e as transações ACID

Local do Hadoop Propriedade Valor (exemplo)

core-site avançado no HDFS fs.defaultFS viprfs://<bucket_name>.<namespace>.<federation_name>Por exemplo:

viprfs://mycluster1-root.ns1.federation1

spark-defaults avançado no Spark spark.eventLog.dir viprfs://<bucket_name>.<namespace>.<federation>/<spark-history>Por exemplo:

viprfs://mycluster1-root.ns1.federation1/spark-history

spark-defaults avançado no Spark spark.history.fs.logDirectory viprfs://<bucket_name>.<namespace>.<federation>/<spark-history>Por exemplo:

viprfs://mycluster1-root.ns1.federation1/spark-history

4. Use o Ambari para interromper e iniciar todos os serviços.

5. Verifique as permissões do diretório apropriadas. Se DistCp encontrar erros,as permissões necessárias podem não ter sido aplicadas aos diretóriosrelevantes. Os seguintes comandos definem as permissões corretas.

[hdfs@mycluster1-master-0~]$hadoop fs -chmod 777 /apps/hive/warehousehadoop fs -chown hive:hdfs /apps/hive/warehousehadoop fs -chmod -R 770 /user/ambari-qahadoop fs -chown -R ambari-qa:hdfs /user/ambari-qa

ECS HDFS

158 ECS 3,3 Guia de Acesso a dados

Page 159: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Integrar um cluster seguro do Hadoop com o ECS HDFSVocê pode integrar sua distribuição existente do Hadoop, que é protegida usando oKerberos, ao ECS HDFS.

Você deve executar uma instalação não segura do Hadoop e ECS completamente,antes de habilitar o Kerberos como opcional.

Antes de executar as etapas de integração, você deve fazer o seguinte:

l Verifique se um Key Distribution Center (KDC) do Kerberos está instalado econfigurado para lidar com a autenticação dos principais do serviço do Hadoop. Sevocê estiver usando o Active Directory para autenticar os usuários do ECS, seránecessário configurar uma confiança de realm cruzado entre o realm do Kerberos eo realm de usuários do ECS. Para obter orientações sobre como configurar o KeyDistribution Center do Kerberos e configurar a confiança, consulte Configurar oKey Distribution Center do Kerberos.

l Certifique-se de ter criado um bucket para o file system do HDFS (consulte Criarum bucket para HDFS usando o Portal do ECS).

l Certifique-se de ter lido as diretrizes para planejar a integração (consulte Planejara integração entre o ECS HDFS e o Hadoop).

l Certifique-se de ter feito download do pacote de instalação e suporte (consulte Obter o pacote de instalação e suporte do ECS HDFS).

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

2. Mapear nomes de grupos

3. Configurar os nós do ECS com o principal do serviço do ECS

4. Proteger o bucket do ECS usando metadados

5. Reconfigurar propriedades do client do ECS

6. Inicie os serviços do Hadoop e verifique o acesso do Hadoop ao ECS

Planejar a migração de um cluster simples para um cluster de KerberosO 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, consulte Migração de um cluster simples para um cluster Hadoop Kerberos.

Em geral, o recurso de migração do ECS permite que os arquivos e diretórios sejamacessados perfeitamente por usuários do Kerberos. No entanto, aplicam-se asseguintes observações:

l O assistente do Ambari para proteger um cluster do Hadoop reporta erros na etapafinal, quando inicia os serviços do Hadoop. Isso é comum. Depois que o bucket doECS for reconfigurado como seguro, você pode iniciar os serviços do Hadoop.

l Para que os usuários e processos possam acessar o bucket, eles devem sermembros do grupo que tem acesso ao bucket. Caso contrário, você deve alterar asACLs de bucket para que os usuários do Kerberos tenham acesso.

ECS HDFS

Integrar um cluster seguro do Hadoop com o ECS HDFS 159

Page 160: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Planejar a migração de um cluster simples para um cluster de KerberosO 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, consulte Migração de um cluster simples para um cluster Hadoop Kerberos.

Em geral, o recurso de migração do ECS permite que os arquivos e diretórios sejamacessados perfeitamente por usuários do Kerberos. No entanto, aplicam-se asseguintes observações:

l O assistente do Ambari para proteger um cluster do Hadoop reporta erros na etapafinal, quando inicia os serviços do Hadoop. Isso é comum. Depois que o bucket doECS for reconfigurado como seguro, você pode iniciar os serviços do Hadoop.

l Para que os usuários e processos possam acessar o bucket, eles devem sermembros do grupo que tem acesso ao bucket. Caso contrário, você deve alterar asACLs de 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 do serviçoHadoop, como hdfs, hive etc. Se você estiver usando o Active Directory (AD), asinformações dos grupos podem ser encontradas em duas origens diferentes: osmetadados de bucket ou o AD. O ECS determina qual origem usar de uma definição deparâmetro de configuração no arquivo de configuração /opt/storageos/conf/hdfssvc.conf na seção [hdfs.fs.request].

Se você quiser que o ECS use metadados do bucket para as informações de grupo (sedisponíveis) em vez do 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 AD em vez dosmetadados do bucket, defina o parâmetro como segue:

[hdfs.fs.request]prefer_secure_metadata_bucket_for_groups = false

O valor padrão é true, portanto, se esse valor não for definido, o ECS determina osdetalhes dos grupos para um principal do Kerberos a partir dos metadados do bucket.Você deve aplicar qualquer alteração em todos os nós do ECS e reiniciar odataheadsvc em todos os nós.

Configurar os nós do ECS com o principal do serviço do ECSO principal do serviço do ECS e seu arquivo keytab correspondente devem residir emcada um dos nós de dados do ECS. Você deve usar os guias estratégicos da Ansiblepara automatizar essas etapas.

Antes de você começar

Você deve ter os seguintes itens antes de concluir este procedimento:

ECS HDFS

160 ECS 3,3 Guia de Acesso a dados

Page 161: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

l Acesso aos guias estratégicos da Ansible. Obtenha os guias estratégicos daAnsible no pacote de software do ECS HDFS, conforme descrito em Obter ospacotes de instalação e suporte do ECS HDFS.

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.

l vipr_kerberos_principal: adquire um principal do serviço para um nó doECS.

Neste procedimento, o Ansible é executado usando o recipiente do Docker utilitárioque é instalado com o ECS.

Procedimento

1. Faça log-in no Nó 1 do ECS e copie o arquivo hdfsclient-<ECS version>-<version>.zip para esse nó.

Por exemplo: /home/admin/ansible . Você pode usar wget para obter opacote diretamente de support.emc.com ou pode usar scp se fez o downloaddo 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 o arquivo inventory.txt no diretório playbooks/samples paraconsultar os nós de dados do ECS e o servidor do Key Distribution Center.

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 efaça sua extração para um diretório UnlimitedJCEPolicy em viprfs-client-<ECS version>-<version>/playbooks/samples.

Obs.

Você só deve realizar essa etapa se estiver usando o tipo de criptografia forte.

Você pode configurar o Kerberos para usar um tipo de criptografia sólida, comoAES-256. Nesse caso, você deve reconfigurar o JRE dentro dos nós do ECSpara usar a política.

ECS HDFS

Configurar os nós do ECS com o principal do serviço do ECS 161

Page 162: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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

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.

ECS HDFS

162 ECS 3,3 Guia de Acesso a dados

Page 163: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

### - hosts: data_nodes serial: 1 roles: - role: vipr_kerberos_principal kdc: "{{ groups.kdc | first }}" principals: - name: vipr/[email protected] keytab: keytabs/[email protected]

Neste 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] keytab: keytabs/[email protected]

- role: vipr_jce_config jce_policy: name: unlimited src: UnlimitedJCEPolicy/

Neste exemplo, o valor padrão (vipr/[email protected]) foi substituídopor (vipr/[email protected]) e o domínio é MA.EMC.COM.

ECS HDFS

Configurar os nós do ECS com o principal do serviço do ECS 163

Page 164: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Obs.

Você deve remover a função vipr_jce_config se não estiver usando um tipode criptografia forte.

13. Execute o guia estratégico da Ansible para configurar os nós de dados com oprincipal do serviço do ECS.

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 (a partir do 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 em todos os nós de dados do ECS. É possível usar o comandostrings 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.

Habilitar o Kerberos usando o AmbariVocê deve habilitar o Kerberos usando o Ambari.

Este procedimento fornece as etapas básicas que você deve executar para habilitar oKerberos. Para obter mais informações sobre o Assistente Ambari Kerberos, consulteo Guia de Segurança Ambari.

Procedimento

1. Na interface do Ambari, selecione Ambari > Admin > Kerberos > EnableKerberos para acessar o Enable Kerberos Wizard.

2. Siga as etapas no painel Kerberize Cluster do assistente. Clique no X paraabortar o assistente do Kerberos.

Essa etapa Kerberize Cluster pode ser ignorada agora, uma vez que os serviçosdo Hadoop não podem ser iniciados neste momento.

3. Confirme se você deseja sair do assistente, clicando em Exit Anyway na caixade diálogo Confirmation.

ECS HDFS

164 ECS 3,3 Guia de Acesso a dados

Page 165: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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 nome-valormantidos como metadados.

Usuários do KerberosAs informações sobre todos os usuários do Kerberos (não usuários do AD) querequerem acesso de Hadoop a um bucket devem ser transferidas por upload ao ECS.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 no nó do Hadoop, você deverá criar 30 paresnome-valor no arquivo de entrada JSON. Todos os nomes devem ser exclusivos;portanto, você deve atribuir um nome exclusivamente para cada nome de principal,nome abreviado de principal e grupos de principais. O ECS espera um prefixo e umsufixo constantes para os nomes de entradas JSON.

O prefixo necessário para cada entrada de usuário do Kerberos éinternal.kerberos.user e os três sufixos possíveis são name, shortname egroups, conforme mostrado no exemplo 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",

ECS HDFS

Proteger o bucket do ECS usando metadados 165

Page 166: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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 principalmapeado 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ê deve informar ao ECS que o grupo de usuários Linux dos nós do Hadoop temprivilégios de superusuário com base em seu grupo. Somente uma entrada do arquivode entrada JSON é esperada para a designação de supergrupo. Ela deve sersemelhante ao seguinte:

{ "name": "dfs.permissions.supergroup", "value": "hdfs"}

Configurações proxyPara obter suporte a proxy, você deve identificar todas as configurações proxy quesão permitidas para cada aplicativo Hadoop, onde aplicativo significa um dosaplicativos compatíveis com Hadoop, por exemplo, hive e assim por diante.

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 é dois pares nome-valor, um para a configuração dos hosts eum para a configuração de grupos.

{ "name": "hadoop.proxyuser.hive.hosts", "value": "*"},{ "name": "hadoop.proxyuser.hive.groups", "value": "s3users"}

ECS HDFS

166 ECS 3,3 Guia de Acesso a dados

Page 167: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

O arquivo completoOs três tipos de metadados devem ser combinados em um só arquivo JSON. Oformato do arquivo JSON é mostrado no exemplo 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 nome/valor não tem um caractere “,” final.

Um exemplo de um arquivo JSON é exibido em: Metadados de bucket seguros.

Buckets seguros e não segurosAssim que os metadados forem carregados em um bucket, ele será chamado debucket seguro e você deve ter principais do Kerberos para acessá-lo. Uma solicitaçãode um nó não seguro do Hadoop é rejeitada. Se os metadados não forem carregados, obucket não é seguro e uma solicitação de um nó seguro do Hadoop é rejeitada.

O erro a seguir é 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 gerenciamentoVocê pode fornecer os valores de metadados necessários para proteger um bucket doECS para uso com um cluster seguro do Hadoop, executando os comandos da APIREST de gerenciamento do ECS.

Antes de você começar

Você deve ter credenciais de administrador do sistema do ECS.

Se o administrador do Hadoop não for o administrador do sistema ECS, ambosprecisarão trabalhar em conjunto para carregar os metadados seguros no bucket.

O administrador do Hadoop pode disponibilizar o arquivo de metadados JSON para oadministrador do sistema ECS que, por sua vez, pode usar esse procedimento paracarregar os metadados. Se as duas funções forem assumidas pelo mesmo usuário, eleserá responsável por criar o arquivo de metadados JSON e carregá-lo no bucket doECS.

ECS HDFS

Proteger o bucket do ECS usando metadados 167

Page 168: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Procedimento

1. Crie o arquivo JSON que contém os metadados, conforme descrito em: Proteger o bucket do ECS usando metadados.

2. Faça log-in no ECS usando suas credenciais de Administrador do sistema paraobter um token de autenticação que pode ser usado ao executar comandos degerenciamento do ECS.

Você pode executar o comando de log-in com curl. No exemplo a seguir, vocêdeve substituir <username>:<password> pelas credenciais de Administradordo sistema ECS e especificar o endereço IP ou o nome de host de um nó doECS.

TOKEN=$(curl -s -k -u <username>:<password> -D - -o /dev/null https://<ECS node IP or hostname>:4443/login | grep X-SDS-AUTH-TOKEN | tr -cd '\40-\176')

3. Execute o comando PUT object/bucket/<bucketname>/metadata daAPI REST de gerenciamento do ECS para implementar os metadados.

curl -s -k -X PUT -H "$TOKEN" -H "Accept: application/json" -H "Content-Type: application/json" -T <bucketDetails>.json https:/<hostname>:4443/object/bucket/<bucketname>/metadata?namespace=<namespace>

Você deve substituir:

l <username> por um nome de usuário do administrador do sistema ECS.

l <password> pela senha do nome de usuário do administrador do sistemaECS especificado.

l <bucketname> pelo nome do bucket que você está usando para os dadosdo 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 nome-valor.

l <namespace> pelo nome do namespace no qual o bucket reside.

Assim que forem implementados, os metadados estão disponíveis para todos osnós do ECS.

Reconfigurar propriedades do client do ECSVocê pode usar o Ambari para definir as propriedades de configuração que sãoexigidas pelo client do ECS.

A tabela a seguir lista as propriedades necessárias.

Tabela 34 Configuração do Hadoop para permitir o acesso ao ECS

Local dohadoop

Propriedade Valor

core-site fs.viprfs.auth.identity_translation CURRENT_USER_REALM

fs.viprfs.auth.anonymous_translation CURRENT_USER

ECS HDFS

168 ECS 3,3 Guia de Acesso a dados

Page 169: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Tabela 34 Configuração do Hadoop para permitir o acesso ao ECS (continuação)

Local dohadoop

Propriedade Valor

viprfs.security.principal vipr/[email protected], em que REALM.COM ésubstituído pelo nome do realm Kerberos.

Para obter mais informações sobre cada parâmetro core_site.xml, consulte Propriedades do core-site.xml do Hadoop para ECS HDFS.

Inicie os serviços do Hadoop e verifique o acesso do Hadoop ao ECSInicie os serviços do Hadoop.

Procedimento

1. Inicie os serviços do Hadoop usando o Ambari.

2. Depois que todos os serviços de client do Hadoop foram iniciados, certifique-sede que o bucket do ECS pode ser acessado usando a CLI do Hadoop, utilizandoo seguinte comando.

hdfs dfs -ls /

ECS HDFS

Inicie os serviços do Hadoop e verifique o acesso do Hadoop ao ECS 169

Page 170: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

ECS HDFS

170 ECS 3,3 Guia de Acesso a dados

Page 171: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

APÊNDICE A

Solução de problemas da configuração do ECSHDFS

l Verifique se o AD/LDAP está configurado corretamente com o cluster seguro doHadoop............................................................................................................. 172

l Falhas no teste do Pig: impossível obter principal do Kerberos......................... 173l Permissão negada para o usuário do AD............................................................173l Erros de permissões..........................................................................................173l Falha ao processar solicitação...........................................................................176l Ativar o registro e a depuração do Kerberos no lado do client...........................176l Depurar o Kerberos no KDC.............................................................................. 177l Eliminar a precisão do relógio............................................................................ 177l Configurar um ou mais novos nós do ECS com o principal do serviço do ECS...177l Solução temporária para o erro Diretório Yarn não existe..................................179

Solução de problemas da configuração do ECS HDFS 171

Page 172: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Verifique se o AD/LDAP está configurado corretamente 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 a configuração estiver correta, será possível executar o comando kinit paraum usuário do AD/LDAP. Além disso, se o cluster do Hadoop for configurado para oHDFS 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 sintaxe e a precisão do arquivo /etc/krb5.conf no servidor KeyDistribution Center. Os realms distinguem maiúsculas de minúsculas nos arquivosde configuração e também quando usados com o comando kinit.

l Verifique se o arquivo /etc/krb5.conf do servidor KDC está copiado para todosos nós do Hadoop.

l Verifique se a confiança unidirecional entre o AD/LDAP e o servidor KDC foi feitacom sucesso.

l Verifique se o tipo de criptografia do servidor do AD/LDAP corresponde ao doservidor KDC.

l Verifique se os arquivos /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.

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.

Solução de problemas da configuração do ECS HDFS

172 ECS 3,3 Guia de Acesso a dados

Page 173: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Falhas no teste do Pig: impossível obter principal doKerberos

O teste do Pig falha com o erro: Info:Error: java.io.IOException: Unableto obtain the Kerberos principal mesmo depois de kinit como umusuário do AD, ou com o erro Unable to open iterator for aliasfirstten.

Esse problema ocorre porque o Pig (versão 0,13 e anteriores) não gera um token dedelegação para o ViPRFS 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 ADO erro Permission denied é exibido quando você executa um aplicativo como umusuário do AD.

Solução temporáriaConfigure as permissões do diretório /user como:

hdfs dfs -chmod 1777 /user

Erros de permissõesErros de permissões suficientes podem ocorrer por vários motivos. Você pode receberesse tipo de erro ao executar um comando hadoop fs ou vê-lo no registro doaplicativo, como o registro de mapreduce ou hive.

Erros INSUFFICIENT_PERMISSIONSNo 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.

root@lrmk042:/etc/security/keytabs# hadoop fs -mkdir /tmp18/02/26 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: hdfsBucket318/02/26 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 2018-02-26 16:58 /root@lrmk042:/etc/security/keytabs#

Solução de problemas da configuração do ECS HDFS

Falhas no teste do Pig: impossível obter principal do Kerberos 173

Page 174: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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 credenciaisVocê pode ver um erro semelhante ao seguinte em dataheadsvc-error.log:

2018-02-26 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 (AD) armazenadoem cache para o usuário principal que fez a solicitação. Esse erro é devolvido para umusuário do Kerberos.

O erro indica o nome de usuário que fez a solicitação. Anote-o.

Erro de acesso ao bucketSe um usuário estiver solicitando o acesso a um bucket, mas não tiver permissões deACL, você pode ver esse erro em dataheadsvc-error.log.

2018-02-26 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 objectOutro 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 seguir, é apresentado um exemplode um erro de acesso do objeto.

2018-02-26 22:36:21,995 [pool-68-thread-6] ERROR FileSystemAccessHelper.java (line 1364) nfsProcessOperation failed to process path: mr-history/done2018-02-26 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.getSystemMetadat

Solução de problemas da configuração do ECS HDFS

174 ECS 3,3 Guia de Acesso a dados

Page 175: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

a(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$Worker.run(ThreadPoolExecutor.java:617)at java.lang.Thread.run(Thread.java:745)

Os dois itens importantes a serem observados aqui são a ação solicitada (stat) e ocaminho do objeto (mr-history/done). Observe que o caractere de barra àesquerda não é exibido, então o caminho real é /mr-history/done. Agora você temtrês informações que são importantes para a 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, que são descritas a seguir:

l Depuração do registro blobsvc

l Depuração de client do Hadoop

Depuração do registro blobsvcUma solicitação de permissão que apresentou falha terá um erro em blobsvc comoeste:

2018-02-26 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

Procure o texto not permit. Isso nos informa o usuário que fez a solicitação (jhs),o proprietário do objeto (hdfs), o grupo do objeto (hdfs) e as permissões doproprietário, do grupo e outras. O que esse processo não nos informa é o objeto realque apresentou falha na verificação de permissão. No nó do Hadoop, torne-se oprincipal hdfs, comece com o caminho e trabalhe na árvore, o que levará a outrométodo de depuração, analisando o file system do Hadoop a partir do client.

Depuração de client 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 odiretório /mr-history/done. Você pode fazer algumas análises para determinar acausa raiz. Se você tiver acesso à conta de superusuário, execute essas etapas usandoessa conta.

root@lrmk042:/var/log/hadoop-mapreduce/mapred# hadoop fs -ls -d /mr-history/donedrwxrwxrwt - mapred hadoop 0 2018-02-26 16:58 /mr-history/done

Solução de problemas da configuração do ECS HDFS

Erros de permissões 175

Page 176: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

O exemplo a seguir mostra que o principal jhs deveria ter tido acesso para listar essediretório.

root@lrmk042:/var/log/hadoop-mapreduce/mapred# hadoop fs -ls -d /mr-historydrwxr-xr-x - hdfs hdfs 0 2018-02-26 16:58 /mr-history

Da mesma forma, a saída a seguir mostra que o diretório não tem problemas deacesso.

root@lrmk042:/var/log/hadoop-mapreduce/mapred# hadoop fs -ls -d /drwxr-x--- - hdfs hdfs 0 2018-02-26 16:58 /

O problema é que o diretório raiz pertence ao hdfs, o nome do grupo é hdfs, mas adefinição others é - (0). O usuário que fez a solicitação é jhs@REALM e esse usuárioé membro do hadoop, mas não do hdfs; portanto, ele não tem nenhuma ACL deobjeto para listar o diretório /mr-history/done. A execução de um comandochmod no diretório raiz permite 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 2018-02-26 16:58 /

Falha ao processar solicitaçãoFailed to Process Request é exibido durante a listagem de um bucket.

Ao executar o comando da 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. O arquivo JAR viprfs-client do nó do Hadoop não está sincronizado com osoftware ECS.

2. Você está tentando acessar um bucket protegido (Kerberos) de um nó nãoprotegido (não Kerberos) do Hadoop.

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.

Solução de problemas da configuração do ECS HDFS

176 ECS 3,3 Guia de Acesso a dados

Page 177: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Ativar o registro detalhado no lado do clientVocê pode habilitar o registro detalhado usando uma variável de ambiente que seaplica apenas à sessão atual de SSH (Secure Shell Protocol), conforme mostrado noexemplo a seguir.

export HADOOP_OPTS="-Dsun.security.krb5.debug=true"

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 habilitar o registro detalhado do Hadoop da seguinte maneira:

export HADOOP_ROOT_LOGGER="Debug,console"

Depurar o Kerberos no KDCÉ possível depurar o Kerberos no Key Distribution Center usando o comando tail noarquivo /var/log/krb5kdc.log do KDC para facilitar a depuração quandoexecutar uma operação de HDFS.

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 do horário preciso.

Se o Active Directory (AD) tiver uma precisão do relógio com seus nós de dados/KDC,será necessário configurar seu servidor NTP (Network Time Protocol). Isso pode serfeito como segue:

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 w32timec. net start w32time

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ê já realizou anteriormente as etapas de Configurar os nós do ECS com o principal do serviço do ECS e que os guiasestratégicos da Ansible estão instalados e acessíveis.

Você deve ter os seguintes itens antes de concluir este procedimento:

Solução de problemas da configuração do ECS HDFS

Depurar o Kerberos no KDC 177

Page 178: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

l A lista de endereços IP dos nós do ECS.

l O 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. Edite o arquivo inventory.txt no diretório playbooks/samples paraadicionar os nós do ECS.

As entradas padrão são mostradas na extração a seguir.

[data_nodes]192.168.2.[100:200]

[kdc]192.168.2.10

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.

Exemplo:

sudo docker load -i /opt/emc/caspian/checker/docker/images/utilities.txz

b. Obtenha a identidade da imagem do docker.

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.

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-

Solução de problemas da configuração do ECS HDFS

178 ECS 3,3 Guia de Acesso a dados

Page 179: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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.

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.

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 (a partir do 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 em todos os nós de dados do ECS. É possível usar o comandostrings 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.

Solução temporária para o erro Diretório Yarn não existeQuando você configura o ECS como o file system padrão com um cluster do HDP quepassou pelo Kerberos, pode receber um erro como /ats/done does not exist.Além disso, o Resource Manager não inicia.

Esse procedimento fornece uma solução temporária para esses problemas.

Procedimento

1. Verifique se os nós do Hadoop podem resolver os nós do ECS.

Solução de problemas da configuração do ECS HDFS

Solução temporária para o erro Diretório Yarn não existe 179

Page 180: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

a. Instale a ferramenta nslookup nos nós do Hadoop.

yum install -y bind-utils

b. Verifique se ela pode resolver o nó do ECS.

nslookup <address of ECS node>

c. Se não resolver para o nome de host correto, adicione o DNS do ECSao /etc/resolv.conf nos nós do Hadoop.

Você pode verificar se as entradas do DNS estão presentes executando:

cat /etc/resolv.conf

d. Agora, o nó do Hadoop resolverá os nós do ECS.

Execute nslookup novamente para verificar se resolve.

nslookup <address of ECS node>

2. Verifique se o horário do sistema no nó do Hadoop, nos nós do ECS e no KeyDistribution Center.

Use:

# date

Se o horário dos sistemas não estiver consolidado, eles deverão sersincronizados com o mesmo servidor NTP.

As informações sobre como habilitar o NTP no cluster e no host do navegadorsão descritas no Guia de Segurança do Ambari.

3. Se as etapas anteriores não funcionarem, você pode tentar criar manualmente apasta done ou active em /ats.

# sudo -u hdfs hdfs dfs -mkdir /ats/done

# sudo -u hdfs hdfs dfs -mkdir /ats/active

Solução de problemas da configuração do ECS HDFS

180 ECS 3,3 Guia de Acesso a dados

Page 181: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

e verificar se os diretórios existem.

$ hdfs dfs -ls /ats

Found 2 items drwxrwxrwt - yarn hadoop 0 2016-07-12 09:00 /ats/active drwx------ - yarn hadoop 0 2016-07-12 09:00 /ats/done

Solução de problemas da configuração do ECS HDFS

Solução temporária para o erro Diretório Yarn não existe 181

Page 182: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Solução de problemas da configuração do ECS HDFS

182 ECS 3,3 Guia de Acesso a dados

Page 183: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

APÊNDICE B

Orientações sobre a configuração do Kerberosno cluster do Hadoop

l Configurar o KDC do Kerberos..........................................................................184l Configurar a autenticação de usuários do AD para Kerberos.............................185

Orientações sobre a configuração do Kerberos no cluster do Hadoop 183

Page 184: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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, talvez seja necessário excluir essesprincipais explicitamente no diretório /var/kerberos/krb5kdc/ .

6. Modifique kadm5.acl para especificar os usuários com permissãoadministrativa.

*/[email protected] *

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. Certifique-se de que iptables e selinux estejam desativados em todos os nós(nós do servidor Key Distribution Center e do Hadoop).

Orientações sobre a configuração do Kerberos no cluster do Hadoop

184 ECS 3,3 Guia de Acesso a dados

Page 185: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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 Key Distribution Center do Kerberoscom base nas etapas de 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 /passwordt:ChangeMeksetup /SetEncTypeAttr LSS.ACME.COM DES-CBC-CRC

Orientações sobre a configuração do Kerberos no cluster do Hadoop

Configurar a autenticação de usuários do AD para Kerberos 185

Page 186: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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] Password for [email protected]: [detscr@lviprb159 root]$ klist Ticket cache: FILE:/tmp/krb5cc_1010 Default principal: [email protected] Valid starting Expires Service principal

Orientações sobre a configuração do Kerberos no cluster do Hadoop

186 ECS 3,3 Guia de Acesso a dados

Page 187: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

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

Orientações sobre a configuração do Kerberos no cluster do Hadoop

Configurar a autenticação de usuários do AD para Kerberos 187

Page 188: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Orientações sobre a configuração do Kerberos no cluster do Hadoop

188 ECS 3,3 Guia de Acesso a dados

Page 189: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

APÊNDICE C

Exemplo de metadados seguros de bucket doHDFS

l Proteger metadados do bucket.........................................................................190

Exemplo de metadados seguros de bucket do HDFS 189

Page 190: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Proteger metadados do bucketO exemplo a seguir mostra uma lista de pares de nome valor de metadados do bucketseguro.

{ "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.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.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" },

Exemplo de metadados seguros de bucket do HDFS

190 ECS 3,3 Guia de Acesso a dados

Page 191: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

{ "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.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" },

Exemplo de metadados seguros de bucket do HDFS

Proteger metadados do bucket 191

Page 192: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

{ "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": "*" }, { "name": "hadoop.proxyuser.yarn.hosts", "value": "*" }, { "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 do HDFS

192 ECS 3,3 Guia de Acesso a dados

Page 193: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

APÊNDICE D

Propriedades do core-site.xml do Hadoop

l Propriedades do core-site.xml do Hadoop para ECS HDFS...............................194l Propriedades do core-site.xml do Hadoop para ECS S3....................................198

Propriedades do core-site.xml do Hadoop 193

Page 194: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Propriedades do core-site.xml do Hadoop para ECS HDFSAo configurar o arquivo core-site.xml do Hadoop, use esta tabela como referênciapara as propriedades e seus valores relacionados.

Tabela 35 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 do URI do file system ECS HDFS

fs.vipr.installations Uma lista de nomes separados por vírgula. Os nomes são definidos adicionalmente pela propriedadefs.vipr.installation.[federation].hosts para identificar exclusivamente os conjuntos de nós de dadosdo ECS. Os nomes são usados como um componente da seção de autoridade do URI do file systemECS HDFS. Por exemplo:

<property> <name>fs.vipr.installations</name> <value><federation>,<site1>,<testsite></value> </property>

fs.vipr.installation.[federation].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 ou FQDNs. Por exemplo:

<property> <name>fs.vipr.installation.<federation>.hosts</name> <value>203.0.113.10,203.0.113.11,203.0.113.12</value> </property>

fs.vipr.installation.[installation_name].resolution

Especifica como o software ECS HDFS sabe como acessar os nós de dados do ECS. Os valores sã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.<federation>.resolution</name>

Propriedades do core-site.xml do Hadoop

194 ECS 3,3 Guia de Acesso a dados

Page 195: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Tabela 35 Propriedades do core-site.xml do Hadoop (continuação)

Propriedade Descrição

<value>dynamic</value> </property>

fs.vipr.installation.[installation_name].resolution.dynamic.time_to_live_ms

Quando a propriedade fs.vipr.installation.[installation_name].resolution estiver

definida como dynamic, ela especificará a frequência das consultas ao ECS sobre a lista de nós

ativos. Os valores são em milissegundos. O padrão é 10 minutos.

<property> <name>fs.vipr.installation.<federation>.resolution.dynamic.time_to_live_ms</name> <value>600000</value> </property>

URI do file system ECS

fs.defaultFS Uma propriedade padrão do Hadoop que especifica o URI ao file system padrão. Configurar essapropriedade para o file system ECS HDFS é uma etapa opcional. Se você não a configurar para o filesystem ECS HDFS, deverá especificar o URI completo em cada operação do file system. O URI dofile system ECS HDFS tem este formato:

viprfs://[bucket_name].[namespace].[federation]

l bucket_name: o nome do bucket ativado para HDFS que contém os dados que você deseja usarao executar trabalhos do Hadoop.

l namespace: o namespace do tenant associado ao bucket habilitado para HDFS.

l federation: o nome associado ao conjunto de nós de dados do ECS que o Hadoop pode usar paraacessar os dados do ECS. O valor dessa propriedade deve corresponder a um dos valoresespecificados na propriedade fs.vipr.installations.

Por exemplo:

<property> <name>fs.defaultFS</name> <value>viprfs://testbucket.s3.federation1</value> </property>

propriedade umask

fs.permissions.umask-mode

Essa propriedade padrão do Hadoop especifica como o ECS HDFS deve calcular as permissões dosobjetos. 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 do core-site.xml do Hadoop

Propriedades do core-site.xml do Hadoop para ECS HDFS 195

Page 196: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Tabela 35 Propriedades do core-site.xml do Hadoop (continuação)

Propriedade Descrição

Propriedades da tradução de identidade

fs.viprfs.auth.identity_translation

Essa propriedade especifica como o client do ECS HDFS determina a qual realm do Kerberosdeterminado usuário pertence se nenhum realm for especificado. Os nós de dados do ECSarmazenam os proprietários de arquivos como username@REALM, enquanto o Hadoop armazena os

proprietários de arquivo apenas como 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 um

cluster 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 é alterada para

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

FIXED_REALM é obsoleta.

fs.viprfs.auth.realm O realm atribuído aos usuários quando a propriedade fs.viprfs.auth.identity_translationfor definida como FIXED_REALM.

Essa opção é obsoleta.

fs.viprfs.auth.anonymous_translation

Esta propriedade é usada para determinar como os usuários e grupos são atribuídos a arquivosrecém-criados.

Obs.

Esta propriedade era usada para determinar o que aconteceu com os arquivos que não tinhamproprietário. Esses arquivos eram considerados pertencentes a anonymous. Os arquivos e diretórios

não têm mais propriedade anônima.

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 usa o Kerberos. Atribui

o principal do Kerberos ([email protected]) como o proprietário do arquivo ou do diretório e

usa o grupo que foi atribuído como padrão para o bucket.

Propriedades do core-site.xml do Hadoop

196 ECS 3,3 Guia de Acesso a dados

Page 197: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Tabela 35 Propriedades do core-site.xml do Hadoop (continuação)

Propriedade Descrição

l NONE: (Obsoleto) Anteriormente, indicava que nenhum mapeamento de objetos com

propriedade 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 Essa propriedade especifica o principal do serviço do ECS. Ela informa ao Key Distribution Centersobre 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 tempo de 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 simplesO arquivo core-site.xml a seguir é um exemplo das propriedades do ECS HDFSpara o modo de autenticação simples.

Exemplo 1 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>federation1</value></property>

<property> <name>fs.vipr.installation.federation1.hosts</name> <value>203.0.113.10,203.0.113.11,203.0.113.12</value></property>

<property> <name>fs.vipr.installation.federation1.resolution</name>

Propriedades do core-site.xml do Hadoop

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

Page 198: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Exemplo 1 core-site.xml (continuação)

<value>dynamic</value></property>

<property> <name>fs.vipr.installation.federation1.resolution.dynamic.time_to_live_ms</name> <value>900000</value></property>

<property> <name>fs.defaultFS</name> <value>viprfs://mybucket.mynamespace.federation1/</value></property>

<property> <name>fs.viprfs.auth.anonymous_translation</name> <value>LOCAL_USER</value></property>

<property> <name>fs.viprfs.auth.identity_translation</name> <value>NONE</value></property>

Propriedades do core-site.xml do Hadoop para ECS S3Ao configurar o arquivo core-site.xml do Hadoop para ECS S3, use esta tabelacomo referência para as propriedades e seus valores relacionados.

Tabela 36 Propriedades do core-site.xml do Hadoop para ECS S3

Propriedade Descrição

fs.s3a.endpoint= <ECS IP address (onlyone node address) or LoadBalancer IP>:9020

Endereço IP do ECS ao qual se conectar.

Obs.

A s3A não dá suporte a vários endereços IP; portanto, é melhor ter um balanceadorde carga

fs.s3a.access.key= <S3 Object User ascreated on ECS>

Seu ID de chave de acesso da AWS

fs.s3a.secret.key=<S3 Object UserSecret Key as on ECS>

Sua chave secreta da AWS

fs.s3a.connection.maximum=15 Controla quantas conexões paralelas o HttpClient gera (padrão: 15)

fs.s3a.connection.ssl.enabled=false Habilita ou desabilita as conexões SSL ao S3 (padrão: true)

fs.s3a.path.style.access=false Habilita o acesso em estilo de caminho do S3 que está desabilitando ocomportamento padrão de hospedagem virtual (padrão: false)

fs.s3a.connection.establish.timeout=5000

Timeout da configuração de conexão do soquete em milésimos de segundos.

fs.s3a.connection.timeout=200000 Timeout da conexão do soquete (padrão: 5.000)

Propriedades do core-site.xml do Hadoop

198 ECS 3,3 Guia de Acesso a dados

Page 199: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Tabela 36 Propriedades do core-site.xml do Hadoop para ECS S3 (continuação)

Propriedade Descrição

fs.s3a.paging.maximum=1000 Quantas chaves são solicitadas do S3 ao fazer listas de diretórios por vez (padrão:5.000)

fs.s3a.threads.max=10 O número total de threads disponíveis no file system para uploads de dados *ouqualquer outra operação de file system em fila*.

fs.s3a.socket.send.buffer=8192 Dica de buffer socket send ao conector da Amazon. Representada em bytes.

fs.s3a.socket.recv.buffer=8192 Dica de buffer socket receive ao conector da Amazon. Representada em bytes.

fs.s3a.threads.keepalivetime=60 Número de segundos que um thread pode ficar ocioso antes de ser encerrado.

fs.s3a.max.total.tasks=5 O número de operações que podem ser colocadas na fila para execução.

fs.s3a.multipart.size=100M O tamanho (em bytes) em que se deve dividir uma operação de upload ou cópia(padrão: 100 MB)

fs.s3a.multipart.threshold=2147483647 Até que um arquivo tenha esse tamanho (em bytes), use o upload não paralelo(padrão: 2 GB)

fs.s3a.multiobjectdelete.enable=true Quando essa opção estiver ativada, várias solicitações de exclusão de objeto únicoserão substituídas por uma solicitação de exclusão de vários objetos, reduzindo onúmero de solicitações. Cuidado: as áreas de armazenamento de objetospreexistentes compatíveis com S3 podem não dar suporte a essa solicitação.

fs.s3a.acl.default=PublicReadWrite Configure uma ACL predefinida em objetos recém-criados/copiados (Private |PublicRead | PublicReadWrite | AuthenticatedRead | LogDeliveryWrite |BucketOwnerRead | BucketOwnerFullControl)

fs.s3a.multipart.purge=false True se você deseja descartar os uploads existentes de várias partes que podemnão ter sido concluídos/abortados corretamente (padrão: false)

fs.s3a.multipart.purge.age=86400 Idade mínima, em segundos, dos uploads de várias partes que serão descartados(padrão: 86.400)

fs.s3a.block.size=32M Tamanho do block a ser usado ao ler arquivos usando s3a: file system. Um sufixo doconjunto {K,M,G,T,P} pode ser usado para dimensionar o valor numérico.

fs.s3a.readahead.range=64K Bytes para leitura antecipada durante uma busca() antes de fechar e reabrir aconexão HTTP do S3. Essa opção será substituída se qualquer chamada desetReadahead() for feita para um fluxo aberto. Um sufixo do conjunto {K,M,G,T,P}pode ser usado para dimensionar o valor numérico.

fs.s3a.buffer.dir=${hadoop.tmp.dir}/s3a Lista separada por vírgulas de diretórios que serão usados para armazenar embuffer as gravações de arquivo (padrão: usa fs.s3.buffer.dir)

Exemplo de core-site.xml para ECS S3O arquivo core-site.xml a seguir é um exemplo das propriedades do ECS S3.

Exemplo 2 core-site.xml

<configuration xmlns:xi="http://www.w3.org/2001/XInclude"> <property>

Propriedades do core-site.xml do Hadoop

Exemplo de core-site.xml para ECS S3 199

Page 200: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Exemplo 2 core-site.xml (continuação)

<name>fs.azure.user.agent.prefix</name> <value>User-Agent: APN/1.0 Hortonworks/1.0 HDP/</value> </property> <property> <name>fs.defaultFS</name> <value>hdfs://<<hostname:8020>></value> <final>true</final> </property> <property> <name>fs.s3a.access.key</name> <value><<userid>></value> </property> <property> <name>fs.s3a.acl.default</name> <value>PublicReadWrite</value> </property> <property> <name>fs.s3a.block.size</name> <value>32M</value> </property> <property> <name>fs.s3a.bucket.s3aTestBucket.access.key</name> <value>ambari-qa</value> </property> <property> <name>fs.s3a.bucket.s3aTestBucket.secret.key</name> <value>secret_key</value> </property> <property> <name>fs.s3a.buffer.dir</name> <value>${hadoop.tmp.dir}/s3a</value> </property> <property> <name>fs.s3a.connection.establish.timeout</name> <value>5000</value> </property> <property> <name>fs.s3a.connection.maximum</name> <value>15</value> </property> <property> <name>fs.s3a.connection.ssl.enabled</name> <value>false</value> </property> <property> <name>fs.s3a.connection.timeout</name> <value>200000</value> </property> <property> <name>fs.s3a.endpoint</name> <value><<Host IP address>></value> </property>

Propriedades do core-site.xml do Hadoop

200 ECS 3,3 Guia de Acesso a dados

Page 201: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Exemplo 2 core-site.xml (continuação)

<property> <name>fs.s3a.fast.upload</name> <value>true</value> </property> <property> <name>fs.s3a.fast.upload.buffer</name> <value>disk</value> </property> <property> <name>fs.s3a.max.total.tasks</name> <value>5</value> </property> <property> <name>fs.s3a.multiobjectdelete.enable</name> <value>true</value> </property> <property> <name>fs.s3a.multipart.purge</name> <value>false</value> </property> <property> <name>fs.s3a.multipart.purge.age</name> <value>86400</value> </property> <property> <name>fs.s3a.multipart.size</name> <value>67108864</value> </property> <property> <name>fs.s3a.multipart.threshold</name> <value>2147483647</value> </property> <property> <name>fs.s3a.paging.maximum</name> <value>1000</value> </property> <property> <name>fs.s3a.path.style.access</name> <value>false</value> </property> <property> <name>fs.s3a.readahead.range</name> <value>64K</value> </property> <property> <name>fs.s3a.secret.key</name> <value><<secret key>></value> </property> <property> <name>fs.s3a.socket.recv.buffer</name> <value>8192</value> </property>

Propriedades do core-site.xml do Hadoop

Exemplo de core-site.xml para ECS S3 201

Page 202: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Exemplo 2 core-site.xml (continuação)

<property> <name>fs.s3a.socket.send.buffer</name> <value>8192</value> </property> <property> <name>fs.s3a.threads.keepalivetime</name> <value>60</value> </property> <property> <name>fs.s3a.threads.max</name> <value>10</value> </property> <property> <name>fs.s3a.user.agent.prefix</name> <value>User-Agent: APN/1.0 Hortonworks/1.0 HDP/</value> </property> <property> <name>fs.trash.interval</name> <value>360</value> </property> <property> <name>ha.failover-controller.active-standby-elector.zk.op.retries</name> <value>120</value> </property> <property> <name>ha.zookeeper.acl</name> <value>sasl:nn:rwcda</value> </property> <property> <name>hadoop.http.authentication.cookie.domain</name> <value>centera.lab.emc.com</value> </property> <property> <name>hadoop.http.authentication.kerberos.keytab</name> <value>/etc/security/keytabs/spnego.service.keytab</value> </property> <property> <name>hadoop.http.authentication.kerberos.principal</name> <value>HTTP/[email protected]</value> </property> <property> <name>hadoop.http.authentication.signature.secret.file</name> <value>/etc/security/http_secret</value> </property> <property> <name>hadoop.http.authentication.simple.anonymous.allowed</name> <value>false</value> </property> <property> <name>hadoop.http.authentication.type</name> <value>kerberos</value> </property>

Propriedades do core-site.xml do Hadoop

202 ECS 3,3 Guia de Acesso a dados

Page 203: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Exemplo 2 core-site.xml (continuação)

<property> <name>hadoop.http.cross-origin.allowed-headers</name> <value>X-Requested-With,Content-Type,Accept,Origin,WWW-Authenticate,Accept-Encoding,Transfer-Encoding</value> </property> <property> <name>hadoop.http.cross-origin.allowed-methods</name> <value>GET,PUT,POST,OPTIONS,HEAD,DELETE</value> </property> <property> <name>hadoop.http.cross-origin.allowed-origins</name> <value>*</value> </property> <property> <name>hadoop.http.cross-origin.max-age</name> <value>1800</value> </property> <property> <name>hadoop.http.filter.initializers</name> <value>org.apache.hadoop.security.AuthenticationFilterInitializer,org.apache.hadoop.security.HttpCrossOriginFilterInitializer</value> </property> <property> <name>hadoop.proxyuser.ambari-server.groups</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.ambari-server.hosts</name> <value><Ambari server fully qualified name>></value> </property> <property> <name>hadoop.proxyuser.hdfs.groups</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.hdfs.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.hive.groups</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.hive.hosts</name> <value><<hive host>></value> </property> <property> <name>hadoop.proxyuser.HTTP.groups</name> <value>users</value> </property> <property> <name>hadoop.proxyuser.knox.groups</name>

Propriedades do core-site.xml do Hadoop

Exemplo de core-site.xml para ECS S3 203

Page 204: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Exemplo 2 core-site.xml (continuação)

<value>users</value> </property> <property> <name>hadoop.proxyuser.knox.hosts</name> <value><<knox host>></value> </property> <property> <name>hadoop.proxyuser.livy.groups</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.livy.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.yarn.groups</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.yarn.hosts</name> <value><<yarn host>></value> </property> <property> <name>hadoop.rpc.protection</name> <value>authentication,privacy</value> </property> <property> <name>hadoop.security.auth_to_local</name> <value>RULE:[1:$1@$0]([email protected])s/.*/ambari-qa/RULE:[1:$1@$0]([email protected])s/.*/hbase/RULE:[1:$1@$0]([email protected])s/.*/hdfs/RULE:[1:$1@$0]([email protected])s/.*/spark/RULE:[1:$1@$0]([email protected])s/.*/yarn-ats/RULE:[1:$1@$0](.*@SM.EMC.COM)s/@.*//RULE:[2:$1@$0]([email protected])s/.*/activity_analyzer/RULE:[2:$1@$0]([email protected])s/.*/activity_explorer/RULE:[2:$1@$0]([email protected])s/.*/ams/RULE:[2:$1@$0]([email protected])s/.*/ams/RULE:[2:$1@$0]([email protected])s/.*/ams/RULE:[2:$1@$0]([email protected])s/.*/atlas/RULE:[2:$1@$0]([email protected])s/.*/hdfs/RULE:[2:$1@$0]([email protected])s/.*/hbase/RULE:[2:$1@$0]([email protected])s/.*/hive/RULE:[2:$1@$0]([email protected])s/.*/mapred/RULE:[2:$1@$0]([email protected])s/.*/knox/RULE:[2:$1@$0]([email protected])s/.*/yarn/RULE:[2:$1@$0]([email protected])s/.*/hdfs/RULE:[2:$1@$0]([email protected])s/.*/yarn/RULE:[2:$1@$0]([email protected])s/.*/spark/RULE:[2:$1@$0]([email protected])s/.*/yarn/RULE:[2:$1@$0]([email protected])s/.*/yarn-ats/DEFAULT</value> </property> <property> <name>hadoop.security.authentication</name> <value>kerberos</value> </property>

Propriedades do core-site.xml do Hadoop

204 ECS 3,3 Guia de Acesso a dados

Page 205: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Exemplo 2 core-site.xml (continuação)

<property> <name>hadoop.security.authorization</name> <value>true</value> </property> <property> <name>hadoop.security.instrumentation.requires.admin</name> <value>false</value> </property> <property> <name>io.compression.codecs</name> <value>org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.SnappyCodec</value> </property> <property> <name>io.file.buffer.size</name> <value>131072</value> </property> <property> <name>io.serializations</name> <value>org.apache.hadoop.io.serializer.WritableSerialization</value> </property> <property> <name>ipc.client.connect.max.retries</name> <value>50</value> </property> <property> <name>ipc.client.connection.maxidletime</name> <value>30000</value> </property> <property> <name>ipc.client.idlethreshold</name> <value>8000</value> </property> <property> <name>ipc.server.tcpnodelay</name> <value>true</value> </property> <property> <name>mapreduce.jobtracker.webinterface.trusted</name> <value>false</value> </property> <property> <name>net.topology.script.file.name</name> <value>/etc/hadoop/conf/topology_script.py</value> </property> </configuration>

Propriedades do core-site.xml do Hadoop

Exemplo de core-site.xml para ECS S3 205

Page 206: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Propriedades do core-site.xml do Hadoop

206 ECS 3,3 Guia de Acesso a dados

Page 207: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

APÊNDICE E

Gerenciamento externo de chaves

l Gerenciamento de chaves externas................................................................. 208

Gerenciamento externo de chaves 207

Page 208: Guia de Acesso a dados - Dell Technologies US...Recursos compatíveis e não compatíveis da API do S3 O ECS dá suporte a um subconjunto da API REST Amazon S3. As seções a seguir

Gerenciamento de chaves externas

Como parte da D@RE (Data at Rest Encryption, criptografia de dados em repouso), oECS dá suporte a gerenciadores externos e centralizados de chaves. Essesgerenciadores externos e centralizados de chaves são compatíveis com o KMIP (KeyManagement Interoperability Protocol, protocolo de interoperabilidade dogerenciamento de chaves), que aprimora a segurança de nível corporativo do sistema.Além disso, ele permite que os clientes usem os servidores centralizados de chavespara armazenar as KEKs (Key Encrypting Keys, principais chaves de criptografia) denível superior e oferecer os seguintes benefícios:

l Ajuda a obter benefícios da produção de chaves baseada em HSM (HardwareSecurity Module, módulo de segurança de hardware) e da tecnologia decriptografia mais recente oferecida pelos servidores especializados degerenciamento de chaves.

l Oferece proteção contra a perda de todo o equipamento, armazenando asprincipais informações sobre chaves fora do equipamento.

O ECS incorpora o padrão KMIP para integração aos gerenciadores externos dechaves e atua como um client do KMIP, além de dar suporte a:

l Dá suporte ao gerenciador de chaves Gemalto Safenet.

Obs.

As versões compatíveis de gerenciador de chaves são determinadas pelo client deKTP (Key-Trust-Platform) da Dell EMC.

l Dá suporte ao uso das KEKs de nível superior (chave mestra) oferecidas por umgerenciador externo de chaves.

l Dá suporte ao rodízio das KEKs de nível superior (chave mestra) oferecidas por umgerenciador externo de chaves.

Gerenciamento externo de chaves

208 ECS 3,3 Guia de Acesso a dados