elastic cloud storage (ecs)...elastic cloud storage (ecs) versión 3.0 guía de acceso a datos...

224
Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Upload: others

Post on 30-May-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Elastic Cloud Storage (ECS)Versión 3.0

Guía de acceso a datos302-003-221

04

Page 2: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Copyright © 2013-2017 EMC Corporation Todos los derechos reservados.

Publicado en Enero de 2017

Dell considera que la información de este documento es precisa en el momento de su publicación. La información está sujeta a cambios sin previo

aviso.

LA INFORMACIÓN DE ESTA PUBLICACIÓN SE PROPORCIONA “TAL CUAL”. DELL NO SE HACE RESPONSABLE NI OFRECE GARANTÍA DE

NINGÚN TIPO CON RESPECTO A LA INFORMACIÓN DE ESTA PUBLICACIÓN Y, ESPECÍFICAMENTE, RENUNCIA A TODA GARANTÍA

IMPLÍCITA DE COMERCIABILIDAD O CAPACIDAD PARA UN PROPÓSITO DETERMINADO. EL USO, LA COPIA Y LA DISTRIBUCIÓN DE

CUALQUIER SOFTWARE DE DELL DESCRITO EN ESTA PUBLICACIÓN REQUIEREN LA LICENCIA DE SOFTWARE CORRESPONDIENTE.

Dell, EMC y otras marcas comerciales pertenecen a Dell Inc. o sus filiales. Las demás marcas comerciales pueden ser propiedad de sus respectivos

dueños. Publicado en México.

Dirección local de EMCEMC Argentina (Cono Sur) Tel. +54-11-4021-3622 http://www.DellEMC.com/es-ar/index.htmEMC México Tel. +52-55-5080-3700 http://www.DellEMCemc.com/es-mx/index.htmEMC Venezuela (Norte de Latinoamérica) Tel. +58-212-206-6911 http://www.DellEMCemc.com/es-ve/index.htm

2 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 3: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

9

11

S3 13

Introducción al servicio de soporte de Amazon S3 en ECS 15Soporte de API de Amazon S3 en ECS........................................................16

Funciones compatibles de S3 17Funcionalidades compatibles y no compatibles de la API de S3................... 18

Extensiones de S3 23Extensiones de S3...................................................................................... 24Extensiones del rango de bytes.................................................................. 24

Actualización de un rango de bytes dentro de un objeto................ 24Sobrescritura de la parte de un objeto........................................... 25Adición de datos a un objeto.......................................................... 26Lectura de múltiples rangos de bytes dentro de un objeto............. 27

Retención................................................................................................... 28Ciclo de vida (vencimiento) y retención.........................................29

Sistema de archivos habilitado................................................................... 29

Extensión de la búsqueda de metadatos de S3 31Uso de la búsqueda de metadatos.............................................................. 32Asignación de valores del índice de metadatos a un depósito......................32Asignación de metadatos a objetos mediante el protocolo de S3................35Uso de las consultas de búsqueda de metadatos........................................ 36Uso de la búsqueda de metadatos desde SDK Java de ECS ....................... 41Atributos opcionales y metadatos del sistemas ECS...................................42

Crear y administrar claves secretas 43Crear y administrar claves secretas............................................................ 44Creación de una clave para un usuario de objetos.......................................44

Generación de una seña secreta del portal de ECS........................ 44Creación de una seña secreta S3 usando API de REST deadministración de ECS...................................................................45

Cree una seña secreta S3: autoservicio...................................................... 45Trabajo con claves de autoservicio................................................ 46

Autenticación con el servició de S3 49Autenticación con el servició de S3............................................................ 50

Acceso de cliente Java 53

Figuras

Tablas

Parte 1

Capítulo 1

Capítulo 2

Capítulo 3

Capítulo 4

Capítulo 5

Capítulo 6

Capítulo 7

CONTENIDO

Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos 3

Page 4: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Uso del SDK para obtener acceso al servicio de S3.................................... 54Uso del Java SDK de Amazon........................................................ 54Cliente SDK Java para ECS........................................................... 56

OpenStack Swift 59

Introducción a la compatibilidad con OpenStack Swift en ECS61Soporte de la API de OpenStack Swift en ECS...........................................62

Funciones compatibles con Swift 63Operaciones compatibles con OpenStack Swift......................................... 64

Extensiones de Swift 67Extensiones de API de Swift.......................................................................68Actualización de un rango de bytes dentro de un objeto.............................68Sobrescritura de la parte de un objeto........................................................69Adición de datos a un objeto....................................................................... 70Lectura de múltiples rangos de bytes dentro de un objeto...........................71

Autenticación 73Autenticación de OpenStack Swift............................................................. 74

Crear usuarios de Swift en el Portal de ECS.................................. 74Autenticación de la versión 1 de OpenStack ...............................................75Autenticación de la versión 2 de OpenStack............................................... 77Autenticación mediante la integración de ECS Keystone V3....................... 79

Configurar ECS para autenticar a los usuarios de Keystone...........80

Autorización 83Autorización de contenedores.................................................................... 84

EMC Atmos 87

Introducción al servicio de soporte de EMC Atmos en ECS 89Soporte de API de EMC Atmos en ECS...................................................... 90

Funciones compatibles con Atmos 91Llamadas compatibles de la API REST de EMC Atmos............................... 92Llamadas no compatibles de la API REST de EMC Atmos...........................94Compatibilidad de subgrupo de usuarios de la API REST de EMC Atmos....94

Extensiones de API de Atmos 97Extensiones de API.....................................................................................98

Adición de datos a un objeto..........................................................98

CAS 101

Parte 2

Capítulo 8

Capítulo 9

Capítulo 10

Capítulo 11

Capítulo 12

Parte 3

Capítulo 13

Capítulo 14

Capítulo 15

Parte 4

CONTENIDO

4 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 5: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Configuración del soporte de CAS en ECS 103Configuración de compatibilidad de CAS en ECS...................................... 104Almacenamiento inactivo.......................................................................... 104Cumplimiento de normas...........................................................................105

Cumplimiento de normas y protección de la plataforma............... 106Política de retención y cumplimiento de normas...........................106Agente de cumplimiento de normas..............................................108

Retención de CAS en ECS........................................................................ 108Retención avanzada para las aplicaciones de CAS: retención basada eneventos, retención para asuntos legales y controlador mín./máx................111Establecer políticas de retención de espacio de nombres...........................117Creación y configuración de un depósito para un usuario de CAS.............. 119Configurar un usuario de objetos de CAS.................................................. 120Establecer varias ACL de depósito para CAS............................................. 121API de administración de ECS que admiten usuarios de CAS.................... 123Compatibilidad de la API del SDK de almacenamiento direccionable porcontenido (CAS)....................................................................................... 124

API de administración de ECS 125

Introducción a la REST API de administración de ECS 127API de REST de administración de ECS.................................................... 128

Autenticación con el servicio de administración de ECS 129Autenticación con API de REST de administración de ECS....................... 130

Autenticación con AUTH-TOKEN ................................................ 130Autenticación con cookies............................................................ 131Cerrar sesión................................................................................ 132Whoami........................................................................................ 132

Resumen de la REST API de administración de ECS 135Resumen de API de REST de administración de ECS................................ 136

HDFS 141

¿Qué es ECS HDFS? 143¿Qué es ECS HDFS?.................................................................................144Configuración de Hadoop para usar ECS HDFS ........................................145ECSURI de HDFS para el acceso al sistema de archivos............................146Modos de autenticación de Hadoop.......................................................... 146

Acceso al depósito como un sistema de archivos..........................147ACL de grupo personalizado y grupo predeterminado del depósito....147Superusuario y supergrupo de Hadoop......................................... 148Acceso multiprotocolo (crosshead)..............................................149Modo de autenticación Kerberos de Hadoop................................ 149Usuario proxy............................................................................... 149Usuario de equivalencia................................................................ 150Compatibilidad con SymLink........................................................ 150

Migración de un clúster simple a uno de Hadoop de Kerberos................... 150Interacción del sistema de archivos........................................................... 151

Capítulo 16

Parte 5

Capítulo 17

Capítulo 18

Capítulo 19

Parte 6

Capítulo 20

CONTENIDO

Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos 5

Page 6: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Aplicaciones de Hadoop compatibles y no compatibles.............................. 151

Creación de un depósito para el sistema de archivos de HDFS153Creación de un depósito mediante el portal de ......................................... 154

Configurar las ACL del depósito de un grupo personalizado..........157Permisos de ACL del depósito para un usuario............................. 158

Ejemplos de permisos de depósitos de Hadoop y ECS...............................159

Utilice Hortonworks Ambari para configurar Hadoop con ECSHDFS 163Implementación de un clúster de Hortonworks con Ambari....................... 164Descargar Ambari......................................................................................164Descargue ECS HDFS Client Library......................................................... 164Configurar un catálogo local desde el cual desea implementar la librería decliente de ECS.......................................................................................... 165Instale el servidor de Ambari ..................................................................... 165Activar la plataforma de Ambari Hadoop ECS........................................... 165Instalación manual del agente de Ambari...................................................166Instalación de Hadoop .............................................................................. 167

Configuración de la integración de ECS HDFS con un clústersimple de Hadoop 171Configuración de la integración de ECS HDFS con un clúster simple deHadoop......................................................................................................172Planificación de la integración de ECS HDFS y Hadoop.............................172Obtención del paquete de instalación y de compatibilidad de ECS HDFS.. 173Implementación de la biblioteca de clientes HDFS de ECS........................ 173Edición del archivo Hadoop core-site.xml..................................................175Edición de HBASE hbase-site.xml............................................................. 179Reiniciar y verificar el acceso.................................................................... 179

Configuración de la integración de ECS HDFS a un clúster deHadoop (kerberizado) seguro 181Integrar el clúster de Hadoop seguro a ECS HDFS ................................... 182Planear la migración desde un clúster simple a uno de Kerberos............... 182Asignar nombres de grupo.........................................................................183Configuración de los nodos ECS con el principal del servicio de ECS........ 183Asegurar el depósito de ECS con metadatos............................................. 187

Carga de los valores de metadatos a ECS mediante la API de RESTde administración......................................................................... 190

Edite core-site.xml.....................................................................................191Reiniciar y verificar el acceso.................................................................... 195

Guía sobre la configuración de Kerberos 197Guía sobre la configuración de Kerberos................................................... 198

Configuración del KDC de Kerberos............................................. 198Configuración de la autenticación de usuario AD para Kerberos... 199

Configuración de uno o más nodos ECS nuevos con el principal del serviciode ECS......................................................................................................201

Capítulo 21

Capítulo 22

Capítulo 23

Capítulo 24

Capítulo 25

CONTENIDO

6 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 7: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Solución de problemas 205Solución de problemas..............................................................................206Compruebe que AD/LDAP está configurado correctamente con el clústerHadoop seguro......................................................................................... 206Reinicio de los servicios después de la configuración hbase......................207Falla la prueba PIG: no se puede obtener el principal de Kerberos.............207Permiso denegado para el usuario de AD.................................................. 207Errores de permisos..................................................................................208\n no se pudo procesar la solicitud: %s......................................................211Habilitar el registro y la depuración del lado del cliente de Kerberos.......... 211Depuración de Kerberos en KDC............................................................... 212Eliminación de la desviación del reloj......................................................... 212

Propiedades de core-site.xml de Hadoop para ECS HDFS 213Propiedades de Hadoop core-site.xml para ECS HDFS............................. 214

Ejemplo de core-site.xml para el modo de autenticación simple... 218

Ejemplo de metadatos de depósito seguro 219Asegurar los metadatos del depósito........................................................ 220

Capítulo 26

Capítulo 27

Capítulo 28

CONTENIDO

Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos 7

Page 8: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

CONTENIDO

8 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 9: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Activar el cumplimiento de normas en un nuevo espacio de nombres en el Portal deECS...........................................................................................................................108Opciones de retención para los depósitos de CAS..................................................... 112Escenarios de EBR.....................................................................................................114Escenarios de retención para asuntos legales............................................................ 117Nueva política de retención........................................................................................118Políticas de retención para un espacio de nombres.................................................... 119Configuración de CAS para usuarios de objetos........................................................ 120Editar ACL del depósito............................................................................................. 121Administración de ACL de depósitos......................................................................... 122Integración de ECS HDFS en un clúster de Hadoop.................................................. 144

1

2345678910

FIGURAS

Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos 9

Page 10: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

FIGURAS

10 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 11: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

API de S3 compatibles................................................................................................ 18Funciones adicionales..................................................................................................19API de S3 no compatibles........................................................................................... 20Llamadas compatibles de OpenStack Swift................................................................ 64Llamadas no compatibles de OpenStack Swift........................................................... 65Llamadas compatibles de la API de REST de Atmos....................................................92Llamadas no compatibles de la API de REST de Atmos...............................................94Extensiones de la API de objetos................................................................................ 98Comparación de los requisitos de los archivos regulares e inactivos..........................104Recursos de la API de administración de ECS para la retención................................. 110Funciones de la API de CAS para la retención basada en eventos.............................. 115Funciones de la API de CAS relativas a la retención para asuntos legales...................117ACL de depósitos...................................................................................................... 122Grupos de ACL de depósitos..................................................................................... 123API de REST de administración de ECS- resumen de métodos................................. 136Ejemplos de permisos de depósitos para acceder al sistema de archivos en modosimple........................................................................................................................160Ejemplos de permisos de depósitos para acceder al sistema de archivos en modoKerberos.................................................................................................................... 161Prerrequisitos de configuración de ECS HDFS.......................................................... 172Biblioteca de clientes HDFS de ECS ......................................................................... 173ubicaciones de core-site.xml..................................................................................... 175ubicaciones de hbase-site.xml................................................................................... 179Ubicación de archivos de core-site.xml .................................................................... 192Propiedades de Hadoop core-site.xml....................................................................... 214

12345678910111213141516

17

181920212223

TABLAS

Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos 11

Page 12: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

TABLAS

12 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 13: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

PARTE 1

S3

Capítulo 1, "Introducción al servicio de soporte de Amazon S3 en ECS"

Capítulo 2, "Funciones compatibles de S3"

Capítulo 3, "Extensiones de S3"

Capítulo 4, "Extensión de la búsqueda de metadatos de S3"

Capítulo 5, "Crear y administrar claves secretas"

Capítulo 6, "Autenticación con el servició de S3"

Capítulo 7, "Acceso de cliente Java"

S3 13

Page 14: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

S3

14 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 15: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

CAPÍTULO 1

Introducción al servicio de soporte de AmazonS3 en ECS

l Soporte de API de Amazon S3 en ECS............................................................... 16

Introducción al servicio de soporte de Amazon S3 en ECS 15

Page 16: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Soporte de API de Amazon S3 en ECSEn esta parte se describe la compatibilidad de ECS con la API de Amazon S3.

El servicio de objetos Amazon S3 está disponible en los siguientes puertos.

Protocolo Puertos

HTTP 9020

HTTPS 9021

En los siguientes temas se describen la compatibilidad con la API de S3, la extensiónque proporciona ECS y la forma de autenticarse con el servicio y de utilizar SDK paradesarrollar clientes que puedan acceder al servicio:

l Funcionalidades compatibles y no compatibles de la API de S3 en la página 18

l Extensiones de S3 en la página 24

l Uso de la búsqueda de metadatos en la página 32

l Crear y administrar claves secretas en la página 44

l Autenticación con el servició de S3 en la página 50

l Uso del SDK para obtener acceso al servicio de S3 en la página 54

Algunos aspectos de autenticación y direccionamiento de depósitos son específicos deECS. Si desea configurar una aplicación existente para que se comunique con ECS odesarrollar una nueva aplicación que utilice la API de S3 para que se comunique conECS, debe consultar el siguiente tema:

l Guía del administrador Establecer la dirección URL base

Introducción al servicio de soporte de Amazon S3 en ECS

16 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 17: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

CAPÍTULO 2

Funciones compatibles de S3

l Funcionalidades compatibles y no compatibles de la API de S3...........................18

Funciones compatibles de S3 17

Page 18: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Funcionalidades compatibles y no compatibles de la API deS3

ECS admite un subconjunto de la API de REST de Amazon S3.

Las siguientes secciones detallan las API compatibles y no compatibles:

l API de S3 compatibles en la página 18

l API de S3 no compatibles en la página 20

API de S3 compatiblesLa siguiente tabla enumera los métodos de API de S3 compatibles.

Tabla 1 API de S3 compatibles

Característica Notas

Servicio GET ECS es compatible con los parámetros marker y max-keyspara habilitar la paginación de la lista de depósitos.

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

Por ejemplo:

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

Categoría DELETE

CORS de categoría DELETE

Ciclo de vida de categoríaDELETE

Solo la parte de la expiración es compatible con el ciclo devida. Las políticas relacionadas con el archiving (AWS Glacier)no son compatibles. El ciclo de vida no es compatible en losdepósitos habilitados para el sistema de archivos.

Categoría GET (lista deobjetos)

CORS de categoría GET

ACL de categoría GET

Ciclo de vida de categoríaGET

Solo la parte de la expiración es compatible con el ciclo devida. Las políticas relacionadas con el archiving (AWS Glacier)no son compatibles. El ciclo de vida no es compatible en losdepósitos habilitados para el sistema de archivos.

Versiones de objeto decategoría GET

Control de versiones decategoría GET

Categoría HEAD

Enumerar cargas de múltiplespartes

Funciones compatibles de S3

18 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 19: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Tabla 1 API de S3 compatibles (continuación)

Característica Notas

Categoría PUT

CORS de categoría PUT

ACL de categoría PUT

Ciclo de vida de categoríaPUT

Solo la parte de la expiración es compatible con el ciclo devida. Las políticas relacionadas con el archiving (AWS Glacier)no son compatibles. El ciclo de vida no es compatible en losdepósitos habilitados para el sistema de archivos.

Control de versiones decategoría PUT

Objeto DELETE

Eliminar múltiples objetos

Objeto GET

ACEL de objeto GET

Objeto HEAD

Objeto PUT Es compatible con PUT fragmentada

ACL de objeto PUT

Objeto PUT - Copia

Objeto OPTIONS

Iniciar carga de múltiplespartes

Cargar parte

Cargar parte - Copia

Completar carga de múltiplespartes

ECS devuelve un ETag de "00" para esta solicitud. Estodifiere de la respuesta de Amazon S3.

Anular carga de múltiplespartes

Enumerar partes

Tabla 2 Funciones adicionales

Característica Notas

URL prefirmados ECS es compatible con el uso de URL prefirmadas para quelos usuarios puedan tener acceso a los objetos sin necesidadde credenciales.

Puede obtener más información aquí.

PUT fragmentada La operación PUT se puede utilizar para cargar objetos enfragmentos. La transferencia fragmentada utiliza elencabezado de codificación de transferencia (codificación de

Funciones compatibles de S3

Funcionalidades compatibles y no compatibles de la API de S3 19

Page 20: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Tabla 2 Funciones adicionales (continuación)

Característica Notas

transferencia: fragmentada) para especificar que el contenidose transmitirá en fragmentos. Esto permite que el contenidode envíe antes de que se conozca el tamaño total de la carga.

API de S3 no compatiblesLa siguiente tabla enumera los métodos de API de S3 no compatibles.

Tabla 3 API de S3 no compatibles

Característica Notas

Política de categoría DELETE

Etiquetado de categoríaDELETE

Sitio web de categoríaDELETE

Política de categoría GET

Ubicación de categoría GET ECS solo tiene conocimiento de un solo centro de datosvirtual.

Registro de categoría GET

Notificación de categoría GET La notificación solo se define para la funcionalidad deredundancia reducida de S3. Actualmente, ECS no admitenotificaciones.

Etiquetado de categoría GET

Solicitud de pagos decategoría GET

ECS cuenta con su propio modelo de pagos.

Sitio web de categoría GET

Política de categoría PUT

Registro de categoría PUT

Notificación de categoría PUT La notificación solo se define para la funcionalidad deredundancia reducida de S3. Actualmente, ECS no admitenotificaciones.

Etiquetado de categoría PUT

Solicitud de pagos decategoría PUT

ECS cuenta con su propio modelo de pagos.

Sitio web de categoría PUT

API de objeto

Torrent de objeto GET

Objeto POST

Funciones compatibles de S3

20 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 21: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Tabla 3 API de S3 no compatibles (continuación)

Característica Notas

Restaurar objeto POST Esta operación se relaciona con AWS Glacier, que no escompatible con ECS.

Funciones compatibles de S3

Funcionalidades compatibles y no compatibles de la API de S3 21

Page 22: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Funciones compatibles de S3

22 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 23: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

CAPÍTULO 3

Extensiones de S3

l Extensiones de S3..............................................................................................24l Extensiones del rango de bytes.......................................................................... 24l Retención...........................................................................................................28l Sistema de archivos habilitado........................................................................... 29

Extensiones de S3 23

Page 24: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Extensiones de S3ECS es compatible con una cantidad de extensiones de la API de S3.

Las extensiones y la API que las admiten se enumeran a continuación.

l Extensiones del rango de bytes

l Extensión de retención

l Extensión habilitada para el sistema de archivos

l Extensión de la búsqueda de metadatos

Extensiones del rango de bytes

Se proporcionan las siguientes extensiones del rango de bytes:

l Actualización de un rango de bytes dentro de un objeto en la página 24

l Sobrescritura de la parte de un objeto en la página 25

l Adición de datos a un objeto en la página 26

l Lectura de múltiples rangos de bytes dentro de un objeto en la página 27

Actualización de un rango de bytes dentro de un objetoA continuación, se muestra un ejemplo de la utilización de extensiones de la API deECS para actualizar un rango de bytes de un objeto.

Primero realice una solicitud GET en el objeto denominado object1, ubicado enbucket1 para revisar el objeto. object1 tiene el valor The quick brown fox jumps over the lazy dog.

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

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

The quick brown fox jumps over the lazy dog.

Ahora debe actualizar un rango de bytes específico dentro de este objeto. Para ello, elencabezado del rango en la solicitud de datos de objetos debe incluir lascompensaciones de inicio y de finalización del objeto que desea actualizar. El formatoes el siguiente: Range: bytes=<startOffset>-<endOffset>

Extensiones de S3

24 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 25: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

En el siguiente ejemplo, la solicitud PUT incluye el encabezado del rango con el valorbytes=10-14, que indica que los bytes 10,11,12,13,14 serán reemplazados por el valorenviado en la solicitud. Aquí, se envía el nuevo valor de green.

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

Al leer el objeto nuevamente, el valor nuevo será The quick green fox jumpsover the lazy dog. (La palabra brown se reemplazó con green). Ha actualizadoun rango de bytes específico dentro de este objeto.

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

Sobrescritura de la parte de un objetoA continuación, se muestra un ejemplo del uso de las extensiones de la API de parasobrescribir la parte de un objeto.

Puede sobrescribir la parte de un objeto proporcionando solo la compensación de inicioen la solicitud de datos. Los datos en la solicitud se escribirán al inicio de lacompensación proporcionada. El formato es el siguiente: Range:<startingOffset>-

Extensiones de S3

Sobrescritura de la parte de un objeto 25

Page 26: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Por ejemplo, para escribir el inicio de datos brown cat en la compensación 10, Ud.debería emitir la siguiente solicitud PUT:

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

Al recuperar un objeto, puede ver el valor final de The quick brown cat jumpsover the lazy dog and cat. (green fox se reemplazó por brown cat). Hasobrescrito una parte de los datos en este objeto en la compensación de inicioproporcionada.

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

Adición de datos a un objetoA continuación, se muestra un ejemplo del uso de las extensiones de la API de ECSpara agregar datos a un objeto.

Puede haber casos en los que necesite agregar un objeto, pero la determinación de lacompensación exacta de bytes no es eficiente o útil. Para este escenario, ECSproporciona la capacidad de agregar atómicamente datos al objeto sin especificar unacompensación (la compensación correcta se devuelve en la respuesta).

Se puede utilizar un encabezado de rango con el valor especial bytes=-1- paraagregar datos a un objeto. De esta manera, el objeto se puede extender sin conocer eltamaño del objeto existente.

El formato es el siguiente: Range: bytes=-1-

Extensiones de S3

26 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 27: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Una solicitud de ejemplo que muestra la adición a un objeto existente con un valor derango de bytes=-1-. Aquí el valor and cat se envía en la solicitud.

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

Cuando se recupera el objeto nuevamente, puede ver el valor total The quickgreen fox jumps over the lazy dog and cat.. Ha agregado datos a esteobjeto.

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

Lectura de múltiples rangos de bytes dentro de un objetoA continuación, se muestra un ejemplo del uso de las extensiones de la API de ECSpara leer múltiples rangos de byte dentro de un objeto.

Para leer dos rangos de bytes específicos en el objeto denominado object1, debeemitir la siguiente solicitud GET para Range: bytes==4-8,41-44. La respuesta delectura será para las palabras quick y lazy.

Extensiones de S3

Lectura de múltiples rangos de bytes dentro de un objeto 27

Page 28: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Nota

La API de Amazon S3 admite solo un rango cuando se utiliza el encabezado HTTPRange para la lectura; ECSes compatible con múltiples rangos de bytes.

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

Retención

El cabezal de S3 de ECS admite la retención de objetos para evitar que se eliminen omodifiquen durante un período especificado. Esto es una extensión de ECS y no estádisponible en la API de S3 estándar.

La retención puede establecerse de las siguientes maneras:

Período de retención en objetos

Almacena un período de retención con el objeto. El período de retención seestablece mediante un encabezado x-emc-retention-period en el objeto.

Política de retención en objetos

Se puede establecer una política de retención en el objeto y se puede establecerel período asociado con la política para el espacio de nombres. Esto permite que elperíodo de retención para un grupo de objetos se establezca en el mismo valormediante una política y pueda cambiarse para todos los objetos si se cambia dichapolítica. El uso de una política proporciona mucha más flexibilidad que la aplicacióndel período de retención a un objeto. Además, se pueden establecer variaspolíticas de retención para un espacio de nombres a fin de permitir a losdiferentes grupos de objetos tener diferentes períodos de retención.Desde el portal de ECS, su administrador de ECS debe establecer la política deretención aplicada a un objeto mediante el encabezado x-emc-retention-policy en el objeto y el período de retención de la política.

Período de retención en el depósito

Un período de retención que se almacena en un depósito se puede usar paraestablecer una retención para todos los objetos, y la política o el período deretención en el nivel de objetos se usa para proporcionar una configuración de

Extensiones de S3

28 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 29: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

objetos específica en la que se requiera una retención más prolongada. El períodode retención se establece mediante un encabezado x-emc-retention-perioden el depósito.

Cuando se realiza un intento de modificar o eliminar el objeto, se utiliza el período máslargo del objeto o de la retención del depósito, establecido mediante los períodos o lapolítica de retención de objetos, a fin de determinar si se puede ejecutar la operación.

También pueden crearse depósitos de S3 desde la API REST de administración de ECSo desde el portal de ECS y, además, se puede establecer el período de retención paraun depósito desde ahí.

Ciclo de vida (vencimiento) y retención

ECS es compatible con S3 Lifecycle Configuration en los depósitos que tienenhabilitado el control de versiones y en aquellos que no lo tienen.

Cuando requiera modificar y eliminar objetos, pero deba garantizar que los objetos aúnse conserven por un período, puede habilitar el control de versiones en un depósito yutilizar la funcionalidad de ciclo de vida para determinar cuándo se eliminarán lasversiones de objetos eliminados de ECS.

El control de versiones y el ciclo de vida son funciones estándares de S3. Sin embargo,el vencimiento del ciclo de vida está estrechamente relacionado con la retención, quees una extensión de ECS. Si el ciclo de vida vence antes de que venza el período deretención, el objeto no se eliminará hasta que el período de retención termine.

Sistema de archivos habilitado

Los depósitos de S3 también pueden tener el sistema de archivos (FS) habilitado, demodo que se puedan leer los archivos escritos mediante el protocolo de S3 medianteprotocolos de archivos, como NFS y HDFS, y viceversa.

Habilitar el acceso de FSSe puede habilitar el acceso del sistema de archivos mediante el encabezado x-emc-file-system-access-enabled cuando se crea un depósito mediante el protocolode S3. El acceso del sistema de archivos también se puede habilitar cuando se crea undepósito desde el portal de ECS (mediante la API REST de administración de ECS).

Limitación sobre el soporte del FSSe aplican las siguientes limitaciones:

l Cuando se habilita el FS para un depósito, no se puede habilitar la administracióndel ciclo de vida de S3.

l Cuando se habilita el FS para un depósito, no es posible utilizar la retención.

Soporte entre cabezales para el FSEl soporte entre cabezales se refiere al acceso a los objetos escritos mediante unprotocolo diferente compatible con ECS. Los objetos escritos mediante el cabezal deS3 pueden leerse y escribirse mediante los protocolos del sistema de archivos de NFSy HDFS.

Un aspecto importante del soporte entre cabezales es la manera en que los permisosde objetos/archivos se traducen entre los protocolos y, en el caso del acceso delsistema de archivos, la manera en que los conceptos de grupo y usuario se traducenentre los protocolos de archivos y objetos.

Extensiones de S3

Ciclo de vida (vencimiento) y retención 29

Page 30: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Puede encontrar más información sobre el soporte entre cabezales con sistemas dearchivos en las siguientes secciones:

l Configuración de HDFS

l Guía del administrador Configurar el acceso a archivos de NFS

Extensiones de S3

30 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 31: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

CAPÍTULO 4

Extensión de la búsqueda de metadatos de S3

l Uso de la búsqueda de metadatos...................................................................... 32l Asignación de valores del índice de metadatos a un depósito............................. 32l Asignación de metadatos a objetos mediante el protocolo de S3....................... 35l Uso de las consultas de búsqueda de metadatos................................................36l Uso de la búsqueda de metadatos desde SDK Java de ECS ............................... 41l Atributos opcionales y metadatos del sistemas ECS...........................................42

Extensión de la búsqueda de metadatos de S3 31

Page 32: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Uso de la búsqueda de metadatosLa API compatible con S3 de ECS proporciona una extensión de búsqueda demetadatos para la API que permite que los objetos dentro de un depósito se puedanindexar con base en sus metadatos y que el índice de metadatos que se deseaconsultar encuentre los objetos y sus datos asociados.

Tradicionalmente, los metadatos se pueden asociar con objetos mediante la API de S3de ECS y, si conoce la identidad del objeto en el que está interesado, puede leer susmetadatos. Sin embargo, sin la función de búsqueda de metadatos de ECS, no esposible encontrar un objeto con base en sus metadatos sin iterar en el conjunto deobjetos de un depósito.

Los metadatos pueden ser metadatos del usuario o metadatos del sistema. ECS define yescribe automáticamente los metadatos del sistema a los objetos; los clientes seencargan de escribir los metadatos del usuario con base en los requisitos del usuariofinal. Los metadatos del usuario y del sistema se pueden indexar y servir como basepara las búsquedas de metadatos. La cantidad de valores de metadatos que se puedenindexar se limita a 30 y se debe definir cuando se crea el depósito.

Nota

En el caso de objetos pequeños (100 kB como máximo), la tasa de recopilación dedatos se reduce ligeramente cuando se aumenta la cantidad de claves de índice. Losdatos de las pruebas de rendimiento que muestran el impacto de usar índices demetadatos para objetos más pequeños están disponibles en el informe técnico derendimiento de ECS.

Además de los metadatos del sistema, los objetos también tienen atributos que puedendevolverse como parte de los resultados de búsqueda de metadatos.

En los siguientes temas se describen los pasos que implica la configuración y el uso dela función de búsqueda de metadatos:

l Asignación de valores del índice de metadatos a un depósito en la página 32

l Asignación de metadatos a objetos mediante el protocolo de S3 en la página 35

l Uso de las consultas de búsqueda de metadatos en la página 36

Se enumeran los valores de metadatos del sistema que están disponibles y se puedenindexar y los valores de metadatos que pueden devolverse opcionalmente conresultados de consulta de búsqueda, aquí.

Asignación de valores del índice de metadatos a un depósitoPuede establecer valores del índice de metadatos en un depósito mediante el Portal deECS, la API de REST de administración de ECS o mediante el protocolo de S3. Losvalores del índice deben reflejar el nombre de los metadatos que indexan y se puedenbasar en los metadatos del sistema o del usuario.

Se proporciona una lista de los metadatos del sistema disponibles en Atributosopcionales y metadatos del sistemas ECS en la página 42.

Los valores del índice se configuran cuando se crea un depósito. Puede desactivar eluso de indexación en un depósito, pero no puede cambiar o eliminar valores de índiceindividuales.

Extensión de la búsqueda de metadatos de S3

32 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 33: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Configuración de los valores de índice mediante el portal

La página Manage > Bucket le permite crear depósitos y asignar valores de índicedurante el proceso de creación. Consulte Guía del administrador Crear y administrardepósitos para obtener detalles.

Configuración de valores de índice mediante la API de REST de administración de ECS

Los métodos que brinda la API de REST de administración de ECS para trabajar conlos índices se enumeran en la tabla a continuación y se proporcionan vínculos dereferencia para la API.

Ruta de API Descripción

GET /object/bucket/searchmetadata Enumera los nombres de todas las claves demetadatos del sistema disponibles paraasignarlas a un nuevo depósito.

POST /object/bucket Asigna los nombres de índice de metadatosque se indexarán para el depósitoespecificado. Los nombres de índice sesuministran en la carga útil de método.

GET /object/bucket Obtiene una lista de depósitos. La informaciónde depósito para cada uno de estos muestralos detalles de la búsqueda de metadatos.

GET /object/bucket/{bucketname}/info Obtiene los detalles del depósitoseleccionado. La información para el depósitoincluye los detalles de la búsqueda demetadatos.

DELETE /object/bucket/{bucketname}/searchmetadata

Detiene la indexación mediante las claves demetadatos.

Ejemplo: Obtener una lista de los nombres de metadatos disponiblesEl siguiente ejemplo obtiene la lista completa de nombres de metadatos disponiblespara la indexación y que pueden devolverse en consultas.

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

Los resultados de la consulta son los siguientes.

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

Extensión de la búsqueda de metadatos de S3

Asignación de valores del índice de metadatos a un depósito 33

Page 34: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

<Key><Name>CreateTime</Name><Datatype>datetime</Datatype>

</Key><Key>

<Name>ObjectName</Name><Datatype>string</Datatype>

</Key></IndexableKeys><OptionalAttributes>

<Attribute><Name>ContentType</Name><Datatype>string</Datatype>

</Attribute><Attribute>

<Name>Expiration</Name><Datatype>datetime</Datatype>

</Attribute><Attribute>

<Name>ContentEncoding</Name><Datatype>string</Datatype>

</Attribute><Attribute>

<Name>Expires</Name><Datatype>datetime</Datatype>

</Attribute><Attribute>

<Name>Retention</Name><Datatype>integer</Datatype>

</Attribute></OptionalAttributes>

</MetadataSearchList>

Ejemplo: Obtener la lista de claves que se indexan para un depósitoEl siguiente ejemplo obtiene la lista de claves de metadatos que se indexan en laactualidad para un depósito.

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

Los resultados de este ejemplo son los siguientes.

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

Configuración de valores mediante la API de S3

Los métodos que brinda la API de S3 para trabajar con los índices se enumeran en la tabla a continuación y se proporcionan vínculos de referencia para la API.

Extensión de la búsqueda de metadatos de S3

34 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 35: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Ruta de API Descripción

GET /?searchmetadata Enumera los nombres de todos los metadatosdel sistema disponibles cuando se realiza laindexación en depósitos nuevos.

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

Crea un depósito con la clave de metadatosde búsqueda indicada en el encabezado.

Nota

Se debe asociar un tipo de datos con unaclave de metadatos de usuario, pero no esnecesario para una clave de metadatos delsistema.

GET /{bucket}/?searchmetadata Obtiene la lista de claves de metadatos que seindexan en la actualidad para el depósito.

EjemploEl siguiente ejemplo muestra cómo crear un depósito con los índices de metadatospara tres claves de metadatos del sistema y dos claves de metadatos del usuario.

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"

Nota

Cuando se agrega un nuevo objeto con x-amz-meta-, los valores que contienencaracteres especiales no se deben codificar con url.

Asignación de metadatos a objetos mediante el protocolo deS3

Los usuarios finales pueden asignar metadatos de usuario a objetos mediante elencabezado “x-amz - meta-”. El valor asignado puede ser cualquier cadena decaracteres y distingue mayúsculas de minúsculas.

Cuando se realiza una indexación de metadatos, de modo que puedan utilizarse comola base de las búsquedas de objeto (la función de búsqueda de metadatos), se asignaun tipo de datos a los datos. Al escribir metadatos en objetos, los clientes debenescribir datos en el formato adecuado, de modo que se puedan usar correctamente enlas búsquedas.

Los tipos de datos son los siguientes:

Cadena

Si el término del índice de búsqueda se marca como texto, la cadena demetadatos se considerará una cadena en todas las comparaciones de búsqueda.

Número entero

Si el término del índice de búsqueda se marca como número entero, la cadena demetadatos se convertirá en un número entero en las comparaciones de búsqueda.

Extensión de la búsqueda de metadatos de S3

Asignación de metadatos a objetos mediante el protocolo de S3 35

Page 36: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Decimal

Si un término del índice de búsqueda se marca como decimal, la cadena demetadatos se convertirá en un valor decimal, de manera que el carácter “.” setratará como un punto decimal.

Fecha y hora

Si el término del índice de búsqueda se marca como fecha y hora, la cadena demetadatos se considerará una fecha y hora con el formato esperado: aaaa-MM-ddTHH:mm:ssZ Si desea que la cadena se trate como fecha y hora, se deberáutilizar el formato de aaaa-MM-ddTHH:mm:ssZ cuando se especifiquen losmetadatos.

EjemploEl siguiente ejemplo utiliza la API de S3 para cargar un objeto y dos valores demetadatos de usuario en el 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

Uso de las consultas de búsqueda de metadatosLa función de búsqueda de metadatos proporciona un idioma de consulta enriquecidoque permite buscar objetos que han indexado metadatos.

En la siguiente tabla se muestra la sintaxis.

Sintaxis de la API Cuerpo de la respuesta

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

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

Extensión de la búsqueda de metadatos de S3

36 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 37: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Sintaxis de la API Cuerpo de la respuesta

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

Las palabras clave de la expresión y sus significados se enumeran a continuación:

expression

Una expresión en el formulario:

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

Donde “condición” es un filtro de nombre de la clave de metadatos en elformulario:

{selector} {operator}{argument},

Por ejemplo:

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

selector

Un nombre clave con capacidad de búsqueda asociado con el depósito.

operador

Un operador. Uno de: ==, >, <, <=, >=

"/?"

Un valor respecto al cual se prueba el selector.

attributes=[fieldname,...]

Especifica cualquier atributo opcional de objeto que se debe incluir en el informe.Los valores del atributo se incluirán en el informe donde se encuentre dichoatributo en el objeto. Los valores opcionales del atributo abarcan:

l ContentEncoding

l ContentType

l Retención

l Vencimiento

Extensión de la búsqueda de metadatos de S3

Uso de las consultas de búsqueda de metadatos 37

Page 38: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

l Expira

sorted=[selector]

Especifica un nombre de clave con capacidad de búsqueda asociado con eldepósito. El nombre de clave debe ser una clave que aparezca en la expresión. Enausencia de &sorted=keyname, la salida se ordenará según el primer nombre claveque aparezca en la expresión de consulta.

Nota

Si se utilizan operadores “or” en la expresión, el orden de clasificación esindeterminado.

include-older-versions=[true|false]

Cuando se habilita el control de versiones de S3 en un depósito, si se establece enverdadero, devolverá las versiones actuales y anteriores de objetos que coincidancon la expresión. El valor predeterminado es falso.

max-num

El número máximo de objetos que coinciden con la consulta que se deberíadevolver. Si hay más objetos que el max-num, se devolverá un marcador quepodrá utilizarse para recuperar más coincidencias.

marker

El marcador que se devolvió por una consulta anterior y que indica el punto desdeel cual se deben devolver las coincidencias de la consulta.

Consultas datetime (fecha y hora)

Los valores datetime en los metadatos del usuario se especifican en el formatoISO-8601 “aaaa-MM-dd'T'HH:mm:ssZ” y ECS los conserva en ese formato. Lasconsultas de metadatos también utilizan este formato. Sin embargo, ECS conserva losvalores datetime para los metadatos del sistema como epoch time, la cantidad demilisegundos desde comienzos de 1970.

Cuando una consulta devuelve resultados, también devuelve el formato datetime queECS conservó. A continuación, se muestra un ejemplo de los dos formatos.

Ejemplo del encabezado de carga de metadatos del usuario:

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

Formato de expresión de la consulta de usuario y sistema:

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

Fragmento de resultados de la consulta: metadatos del sistema

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

Extensión de la búsqueda de metadatos de S3

38 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 39: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Fragmento de resultados de la consulta: metadatos del usuario

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

Uso de markers y max-num para paginar los resultados

Puede especificar el número máximo de objetos que una consulta devolverá medianteel uso del parámetro de consulta max-keys.

El siguiente ejemplo especifica una cantidad máxima de objetos como 3.

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

Cuando una consulta coincide con más objetos que las max-keys que se especificaron,también se devolverá un marcador que podrá utilizarse para devolver los objetos de lapágina siguiente que coincidan con la consulta, pero que no se hayan devuelto.

La siguiente consulta especifica un marcador que se recuperó de una consultaanterior:

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

Cuando los objetos que se devuelven son la última página de objetos, se devolverá NOMORE PAGES en el NextMarker del cuerpo de la respuesta.

<NextMarker>NO MORE PAGES</NextMarker>

Uso de caracteres especiales en las consultas

Se requiere el uso de la codificación url para garantizar que el servicio de REST deECS reciba correctamente los caracteres especiales. Es posible que se requiera lacotización a fin de garantizar que cuando ECS evalúe la consulta no malinterprete lossímbolos. Por ejemplo:

l Cuando se realiza una consulta sobre los valores x-amz-meta, los caracteresespeciales deben codificarse con url. Por ejemplo: cuando se usa “%” (ASCII 25hex) o “/” ( ASCII 2F), deben codificarse como %25 y 2F, respectivamente.

l Cuando se realiza una consulta en los valores x-amz-meta que tienen caracteresreservados para SQL, los caracteres reservados se deben usar como escape. Estoes para asegurarse de que el analizador de SQL que ECS utiliza no los considereoperadores. Por ejemplo: 'ab < cd' (es decir, asegúrese de que se utilice un par decomillas en el servicio para que el analizador de SQL que ECS utiliza no loconsidere operadores). Los caracteres reservados para SQL incluyen losoperadores de comparación (=, <, >, +, -, !, ~) y los separadores de sintaxis (coma,punto y coma).

Extensión de la búsqueda de metadatos de S3

Uso de las consultas de búsqueda de metadatos 39

Page 40: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Es posible tener diferentes maneras de cotización y estas dependen del cliente quese utilizó. Un ejemplo de las herramientas de la línea de comandos de Unix, comoS3curl.pl, sería:

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

En este caso, el valor de búsqueda se encuentra entre comillas simples y eso estáenvuelto en comillas dobles.

Ejemplos de la búsqueda de metadatos

El siguiente ejemplo utiliza la API de S3 para buscar una coincidencia de valor demetadatos del usuario y el tamaño particular de un objeto en un depósito.

Nota

Algunos clientes de REST pueden requerir que codifique “spaces” con el código url%20.

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

El resultado muestra tres objetos que coinciden con la búsqueda.

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

Extensión de la búsqueda de metadatos de S3

40 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 41: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

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

Uso de la búsqueda de metadatos desde SDK Java de ECS

En el SDK 3.0, hay una opción para excluir los parámetros “search” y“searchmetadata” de la firma si se está conectando a una versión de ECS anterior a3.0. Estos parámetros no eran parte del procesamiento de firma en ECS 2.x, peroahora son parte de este a fin de mejorar la seguridad.

Se proporciona la siguiente tabla de compatibilidad para mostrar el soporte de SDKpara la función de búsqueda de metadatos:

Extensión de la búsqueda de metadatos de S3

Uso de la búsqueda de metadatos desde SDK Java de ECS 41

Page 42: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Versión de ECS

2.x 3.x

SDK 2.x Sí No

SDK 3.x Sí Sí

Atributos opcionales y metadatos del sistemas ECSLos metadatos del sistema se asocian automáticamente con cada objeto almacenadoen el área de almacenamiento de objetos. Algunos metadatos del sistema siempre secompletan y pueden utilizarse como claves de índice; otros metadatos no siempre secompletan, pero, cuando están presentes, se pueden devolver con los resultados deconsulta de búsqueda de metadatos.

Metadatos del sistemaLos metadatos del sistema que se enumeran en la siguiente tabla se pueden usar comoclaves para los índices de búsqueda de metadatos.

Nombre (alias) Tipo Descripción

ObjectName cadena Nombre del objeto.

Owner cadena Identidad del propietario del objeto.

Size integer Tamaño del objeto.

CreateTime datetime Hora en la que se creó el objeto.

LastModified datetime Fecha y hora en el cual se modificó por última vezel objeto.

Nota

Modificación compatible con extensiones deactualización de rango de bytes S3 de ECS, y nocon la API de S3 pura.

Atributos de metadatos opcionalesLos atributos de metadatos del sistema opcionales pueden completarse o no para unobjeto, pero se pueden devolver de manera opcional junto con los resultados deconsulta de búsqueda. En la siguiente tabla, se enumeran los atributos de metadatosdel sistema opcionales.

Nombre (alias) Tipo

ContentType cadena

Expiration datetime

ContentEncoding cadena

Expires datetime

Retention integer

Extensión de la búsqueda de metadatos de S3

42 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 43: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

CAPÍTULO 5

Crear y administrar claves secretas

l Crear y administrar claves secretas....................................................................44l Creación de una clave para un usuario de objetos.............................................. 44l Cree una seña secreta S3: autoservicio..............................................................45

Crear y administrar claves secretas 43

Page 44: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Crear y administrar claves secretasLos usuarios de los servicios de objetos de ECS necesitan una seña secreta paraautenticarse en un servicio.

Las claves secretas pueden crearse y ponerse a la disposición del usuario de objetos delas siguientes maneras:

l El administrador crea una clave y la distribuye al usuario de objetos (Creación deuna clave para un usuario de objetos en la página 44).

l El usuario de objetos que es un usuario de dominio crea una nueva clave utilizandola API de autoservicio que proporciona API de REST de administración de ECS(Cree una seña secreta S3: autoservicio en la página 45).

Es posible tener dos claves secretas para un usuario. Cuando cambia (operación aveces denominada “renovación”) una clave secreta, se puede establecer un tiempo deexpiración en minutos para la clave anterior. Durante el intervalo de vencimiento, seaceptarán las dos claves para las solicitudes. Esto proporciona un período de gracia enel que se puede actualizar una aplicación para utilizar la nueva clave.

Creación de una clave para un usuario de objetosLos usuarios de administración de ECS pueden crear una seña secreta para un usuariode objetos.

l Generación de una seña secreta del portal de ECS en la página 44

l Creación de una seña secreta S3 usando API de REST de administración deECS en la página 45

Generación de una seña secreta del portal de ECSPuede generar una seña secreta en el portal de ECS.

Antes de comenzar

l Debe ser un administrador del sistema o un administrador de espacio de nombresde ECS

Si es un administrador del sistema, puede crear una seña secreta para un usuario deobjetos que pertenezca a cualquier espacio de nombres. Si es un administrador deespacio de nombres, puede crear una seña secreta para un usuario de objetos quepertenezca a su espacio de nombres.

Procedimiento

1. En el portal ECS, seleccione la página Manage > Users.

2. En la tabla de usuarios de objetos, seleccione Edit para el usuario al que deseaasignar una seña secreta.

3. Para S3, seleccione Generate & Add Password.

4. Copie la clave generada y envíela por correo electrónico al usuario de objetos.

Crear y administrar claves secretas

44 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 45: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Creación de una seña secreta S3 usando API de REST de administración deECS

API de REST de administración de ECS permite a un usuario de administración crearuna seña secreta para un usuario de objeto S3.

Los API se realizan de la siguiente manera:

Ruta de API Descripción

/object/user-secret-keys/{uid} API para permitir la asignación de clavessecretas a usuarios de objetos y permitir laadministración de claves secretas.

El Administrador de espacio de nombrespuede crear claves para los usuarios en suespacio de nombres. Administrador delsistema puede asignar claves a los usuarios encualquier espacio de nombres.

Puede encontrar más información acerca de la llamada a la API en la referencia de APIREST de administración de ECS.

Cree una seña secreta S3: autoservicioAPI de REST de administración de ECS ofrece permite que los usuarios de dominioautenticados soliciten una seña secreta para tener acceso al área de almacenamientode objetos.

La referencia de REST API de administración de ECS se puede utilizar cuando deseecrear un cliente personalizado para ejecutar ciertas operaciones de administración deECS. Para operaciones simples, los usuarios de dominio pueden utilizar curl o uncliente HTTP basado en navegador para ejecutar la API para crear una seña secreta.

Cuando un usuario ejecuta la API object/secret-keys, ECS creaautomáticamente un usuario de objetos y asigna una seña secreta.

Ruta de API Descripción

/object/secret-keys La API permite que los usuarios del cliente S3creen una nueva seña secreta que les permitaacceder a los objetos y depósitos dentro de suespacio de nombres.

Esto se conoce también como API deautoservicio.

La carga para /object/secret-keys puede incluir un tiempo de vencimiento declave existente opcional.

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

Crear y administrar claves secretas

Creación de una seña secreta S3 usando API de REST de administración de ECS 45

Page 46: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Si va a crear una seña secreta por primera vez, puede omitir el parámetroexisting_key_expiry_time_mins, y una llamada sería:

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>

Trabajo con claves de autoservicioHay una serie de operaciones que es posible que desee ejecutar con claves secretas deautoservicio utilizando Referencia de API de REST de administración de ECS.

Los ejemplos proporcionados utilizan la herramienta curl para demostrar lassiguientes actividades.

l Inicio de sesión como un usuario de dominio en la página 46

l Generación de la primera clave en la página 46

l Generación de una segunda clave en la página 47

l Selección de claves en la página 47

l Eliminación de todas las claves secretas en la página 48

Inicio de sesión como un usuario de dominioPuede iniciar sesión como un usuario de dominio y obtener un token de autenticaciónque se puede utilizar para autenticar solicitudes posteriores.

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

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

Generación de la primera clavePuede generar una seña secreta.

curl -ks -H "X-SDS-AUTH-TOKEN: BAAcaVAzNU16eVcwM09rOWd2Y1ZoUFZ4QmRTK2JVPQMAQQIADTE0MzAwNzQ4ODA1NTQDAC51cm46VG9rZW46YWJmODA1NTEtYmFkNC00ZDA2LWFmMmMtMTQ1YzRj

Crear y administrar claves secretas

46 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 47: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

OTdlNGQ0AgAC0A8=" -H "Content-Type: application/json" -X POST -d "{}" https://10.241.48.31:4443/object/secret-keys | xmllint --format -

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

Generación de una segunda clavePuede generar una segunda seña secreta y establecer el vencimiento de la primeraclave.

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

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

Selección de clavesPuede comprobar las claves que se le asignaron. En este caso hay dos claves y laprimera tiene una hora/fecha de vencimiento.

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

Crear y administrar claves secretas

Trabajo con claves de autoservicio 47

Page 48: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Eliminación de todas las claves secretasSi necesita borrar sus claves secretas antes de regenerarlas. Puede utilizar losiguiente.

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

Crear y administrar claves secretas

48 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 49: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

CAPÍTULO 6

Autenticación con el servició de S3

l Autenticación con el servició de S3....................................................................50

Autenticación con el servició de S3 49

Page 50: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Autenticación con el servició de S3El servicio de S3 de ECS permite la autenticación mediante la versión de firma 2 y laversión de firma 4. Este tema no identifica ningún aspecto específico de ECS delproceso de autenticación.

Amazon S3 utiliza un encabezado de autorización que debe estar presente en todas lassolicitudes para identificar el usuario y proporcionar una firma para la solicitud. Elformato del encabezado de autorización difiere entre la autenticación de la versión defirma 2 y la versión de firma 4.

A fin de crear un encabezado de autorización, necesitará un ID de clave de acceso deAWS y una clave de acceso secreta. En ECS, el ID de clave de acceso de AWS seasigna el ID de usuario (UID) de ECS. El ID de clave de acceso de AWS tiene 20caracteres (para algunos clientes de S3, como el navegador de S3, es necesarioverificar esto), pero el servicio de datos de ECS no tiene esta limitación.

La autenticación con firma V2 y firma V4 se presenta en:

l Autenticación con firma V2

l Autenticación con firma V4

Se aplican las siguientes notas:

l En el servicio de datos de objetos de ECS, se puede configurar el UID (con la APIde ECS o la IU de ECS) con 2 claves secretas. El servicio de datos de ECSintentará usar la primera clave secreta y, si la firma calculada no coincide, intentaráutilizar la segunda clave secreta. Si la segunda clave falla, se rechazará la solicitud.Cuando los usuarios agregan o cambian la clave secreta, antes de usarla, debenesperar 2 minutos para que se puedan restaurar todos los nodos del servicio dedatos con la nueva clave secreta.

l En el servicio de datos de ECS, el espacio de nombres también se considera en elcálculo de firma de HMAC.

Autenticación con firma V2

El encabezado de autorización cuando se utiliza la firma V2 se ve de la siguientemanera:

Authorization: AWS <AWSAccessKeyId>:<Signature>

Por ejemplo:

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

La autenticación con firma V2 se describe en:

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

Autenticación con firma V4

Autenticación con el servició de S3

50 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 51: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

El encabezado de autorización cuando se utiliza la firma V4 se ve de la siguientemanera:

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

El componente de la credencial abarca su ID de clave de acceso, seguido del alcancede la credencial. El alcance de la credencial abarca la cadena de datos/región/nombrede servicio/finalización. Para ECS, el nombre de servicio siempre es s3 y la regiónpuede ser cualquier cadena. Cuando se procesa la firma, ECS utilizará la cadena de laregión que el cliente pasó.

La autenticación con firma V4 se describe en:

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

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

A continuación se proporciona un ejemplo de una solicitud de depósito de PUT confirma V4:

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)

Respuesta:

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

Autenticación con el servició de S3

Autenticación con el servició de S3 51

Page 52: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Autenticación con el servició de S3

52 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 53: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

CAPÍTULO 7

Acceso de cliente Java

l Uso del SDK para obtener acceso al servicio de S3............................................54

Acceso de cliente Java 53

Page 54: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Uso del SDK para obtener acceso al servicio de S3Al desarrollar aplicaciones que se comunican con el servicio de S3 de ECS, hay variosSDK que admitirán la actividad de su desarrollo.

La comunidad de EMC proporciona información sobre los diversos clientes que estándisponibles y que proporcionan pautas sobre su uso: Comunidad de ECS: recursos paradesarrolladores.

Los siguientes temas describen el uso del SDK de Amazon S3 y el uso del SDK Java deEMC ECS.

l Uso del Java SDK de Amazon en la página 54

l Cliente SDK Java para ECS en la página 56

Nota

Si desea utilizar las extensiones de la API de ECS (consulte Extensiones de S3 en lapágina 24), en el Java SDK de EMC ECS encontrará la compatibilidad con estasextensiones. Si no necesita compatibilidad con las extensiones de ECS, o si tieneaplicaciones existentes que las utilizan, puede usar el SDK Java de Amazon.

Nota

La compatibilidad de SDK Java de ECS con la extensión de búsqueda de metadatos se describe en Uso de la búsqueda de metadatos desde SDK Java de ECS en la página 41.

Uso del Java SDK de AmazonPuede acceder al almacenamiento de objetos de ECS con el SDK Java S3.

De modo predeterminado, el objeto del cliente AmazonS3Client se cifra para trabajardirectamente desde amazon.com. En esta sección, se muestra cómo configurarAmazonS3Client para que trabaje desde ECS.

Para crear una instancia de un objeto de AmazonS3Client, debe pasarle credenciales.Esto se logra al crear un objeto de AWSCredentials y al pasarle la clave de acceso deAWS (su nombre de usuario de ECS) y la seña secreta generada para ECS.

El siguiente fragmento de código muestra cómo instalar esto.

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

De modo predeterminado, el cliente de Amazon intentará comunicarse con AmazonWebServices. Para reemplazar este comportamiento y contactar con ECS, necesitaconfigurar un punto terminal específico.

Puede configurar el terminal con el método de setEndpoint. El protocolo especificadoen el terminal determina si el cliente debe ser dirigido al puerto HTTP (9020) o alpuerto HTTPS (9021).

Acceso de cliente Java

54 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 55: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Nota

Si desea utilizar el puerto HTTPS, se debe configurar el JDK de su aplicación para quevalide el certificado de ECS correctamente; de lo contrario, el cliente presentaráerrores de verificación de SSL y no podrá conectarse.

En el siguiente fragmento de código, se utiliza el cliente para acceder a ECS medianteHTTP:

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

Al utilizar el direccionamiento del estilo de la ruta (ecs1.emc.com/mybucket), debeconfigurar la opción setPathStyleAccess, como se muestra a continuación:

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

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

El siguiente código muestra cómo enumerar objetos en una categoría.

ObjectListing objects = client.listObjects("mybucket");for (S3ObjectSummary summary : objects.getObjectSummaries()) {

System.out.println(summary.getKey()+ " "+summary.getOwner());}

La operación CreateBucket difiere de otras operaciones en que espera que seespecifique una región. En función de S3, esto indicaría el centro de datos en el que sedebe crear la categoría. Sin embargo, ECS no admite regiones. Por este motivo,cuando se solicita la operación CreateBucket, especificamos la región estándar, queevita que el cliente de AWS descargue el archivo de configuración de la región deAmazon desde Amazon CloudFront.

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

A continuación, se proporciona el ejemplo completo para comunicarse con el serviciode datos de S3 de ECS, para crear un depósito y manipular un objeto:

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

Acceso de cliente Java

Uso del Java SDK de Amazon 55

Page 56: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

BasicAWSCredentials(uid, secret));

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

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

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

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

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

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

Cliente SDK Java para ECSEl SDK Java de ECS se basa en el SDK Java de Amazon S3 y admite las extensiones dela API de ECS.

A continuación, se muestra un ejemplo del uso de ViPRS3client.

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(); }

Acceso de cliente Java

56 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 57: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

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); } catch (Exception e) { } }}

Acceso de cliente Java

Cliente SDK Java para ECS 57

Page 58: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Acceso de cliente Java

58 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 59: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

PARTE 2

OpenStack Swift

Capítulo 8, "Introducción a la compatibilidad con OpenStack Swift en ECS"

Capítulo 9, "Funciones compatibles con Swift"

Capítulo 10, "Extensiones de Swift"

Capítulo 11, "Autenticación"

Capítulo 12, "Autorización"

OpenStack Swift 59

Page 60: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

OpenStack Swift

60 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 61: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

CAPÍTULO 8

Introducción a la compatibilidad con OpenStackSwift en ECS

l Soporte de la API de OpenStack Swift en ECS.................................................. 62

Introducción a la compatibilidad con OpenStack Swift en ECS 61

Page 62: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Soporte de la API de OpenStack Swift en ECSECS incluye soporte para la API de OpenStack Swift. Esta sección describe lasoperaciones compatibles y los mecanismos de autorización y autenticación.

El servicio OpenStack Swift está disponible en los siguientes puertos.

Protocolo Puertos

HTTP 9024

HTTPS 9025

Los siguientes temas describen los métodos compatibles, las extensiones de ECS y elmecanismo de autenticación:

l Operaciones compatibles con OpenStack Swift en la página 64

l Extensiones de API de Swift en la página 68

l Autenticación de OpenStack Swift en la página 74

l Autorización de contenedores en la página 84

Aquí se pueden encontrar ejemplos que muestran el uso de la API de OpenStack Swift:

l Ejemplos de la API de OpenStack

Introducción a la compatibilidad con OpenStack Swift en ECS

62 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 63: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

CAPÍTULO 9

Funciones compatibles con Swift

l Operaciones compatibles con OpenStack Swift.................................................64

Funciones compatibles con Swift 63

Page 64: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Operaciones compatibles con OpenStack SwiftLas siguientes secciones detallan las solicitudes de la API de REST de OpenStack queson compatibles con ECS.

l Llamadas compatibles de OpenStack Swift en la página 64

l Llamadas no compatibles de OpenStack Swift en la página 65

Esta información proviene de la sección V1 de la API de almacenamiento de objetos deldocumento de Referencia de la API de OpenStack.

Llamadas compatibles de OpenStack SwiftECS admite las siguientes llamadas de la API de REST de OpenStack Swift.

Tabla 4 Llamadas compatibles de OpenStack Swift

Método Ruta Descripción

GET v1/{account} Recupera una lista de contenedores dealmacenamiento existentes solicitados por nombre.

GET v1/{account}/{container}

Recupera una lista de objetos almacenados en elcontenedor.

PUT v1/{account}/{container}

Crea un contenedor.

DELETE v1/{account}/{container}

Elimina un contenedor vacío.

POST v1/{account}/{container}

Crea o actualiza los metadatos arbitrarios decontenedores asociando encabezados de metadatospersonalizados con la URL del nivel del contenedor.Estos encabezados deben tomar el formato X-Container-Meta-*.

HEAD v1/{account}/{container}

Recupera los metadatos de los contenedores.Actualmente, no incluye la cantidad de objetos ni losbytes utilizados.El usuario requiere privilegios de administrador.

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

Recupera los datos del objeto.

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

Escribe, o sobrescribe, el contenido y los metadatosde un objeto.Se utiliza para copiar el objeto existente a otro objetocon el encabezado X-Copy-From para designar elorigen.

Para un objeto grande dinámico (DLO) o un objetogrande estático (SLO) el objeto puede ser unmanifiesto, tal como se describe aquí.

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

Elimina un objeto del sistema de almacenamiento deforma permanente. Junto con el comando COPYpuede usar COPY y luego DELETE para transferirefectivamente un objeto.

Funciones compatibles con Swift

64 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 65: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Tabla 4 Llamadas compatibles de OpenStack Swift (continuación)

Método Ruta Descripción

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

Recupera los metadatos del objeto y otrosencabezados HTTP estándar.

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

Establece y sobrescribe los metadatos arbitrarios deobjetos. Estos metadatos deben emplear el formatoX-Object-Meta-*. Los encabezados X-Delete-At oX-Delete-After para los objetos con vencimientotambién pueden ser asignados por esta operación.Pero otros encabezados como el tipo de contenidono pueden ser modificados por esta operación.

Llamadas no compatibles de OpenStack SwiftECS no admite las siguientes llamadas de la API de REST de OpenStack Swift.

Tabla 5 Llamadas no compatibles de OpenStack Swift

Método Ruta Descripción

HEAD v1/{account} Recupera los metadatos de la cuenta, por ejemplo, lacantidad de contenedores, el total de bytesalmacenados en el almacenamiento deOpenStackObject para la cuenta y el grupo deusuarios.

POST v1/{account} Crear o actualizar los metadatos de la cuentaasociando los encabezados de metadatospersonalizados con la URL del nivel de la cuenta.Estos encabezados deben emplear el formato X-Account-Meta-*.

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

La copia se admite mediante PUT v1/{account}/{container}/{object} con el encabezado X-Copy-From.

Funciones compatibles con Swift

Operaciones compatibles con OpenStack Swift 65

Page 66: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Funciones compatibles con Swift

66 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 67: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

CAPÍTULO 10

Extensiones de Swift

l Extensiones de API de Swift.............................................................................. 68l Actualización de un rango de bytes dentro de un objeto.................................... 68l Sobrescritura de la parte de un objeto............................................................... 69l Adición de datos a un objeto...............................................................................70l Lectura de múltiples rangos de bytes dentro de un objeto.................................. 71

Extensiones de Swift 67

Page 68: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Extensiones de API de Swift

Varias extensiones para las API de objetos son compatibles.

Actualización de un rango de bytes dentro de un objetoA continuación, se muestra un ejemplo de la utilización de extensiones de la API deECS para actualizar un rango de bytes de un objeto.

Primero realice una solicitud GET en el objeto denominado object1, ubicado en bucket1 para revisar el objeto. object1 tiene el valor The quick brown fox jumps over the lazy dog.

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

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

The quick brown fox jumps over the lazy dog.

Ahora debe actualizar un rango de bytes específico dentro de este objeto. Para ello, el encabezado del rango en la solicitud de datos de objetos debe incluir las compensaciones de inicio y de finalización del objeto que desea actualizar. El formatoes el siguiente: Range: bytes=<startOffset>-<endOffset>En el siguiente ejemplo, la solicitud PUT incluye el encabezado del rango con el valorbytes=10-14, que indica que los bytes 10,11,12,13,14 serán reemplazados por el valorenviado en la solicitud. Aquí, se envía el nuevo valor de green.

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

green

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

Extensiones de Swift

68 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 69: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

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

Al leer el objeto nuevamente, el valor nuevo será The quick green fox jumpsover the lazy dog. (La palabra brown se reemplazó con green). Ha actualizadoun rango de bytes específico dentro de este objeto.

GET /bucket1/object1 HTTP/1.1Cookie: JSESSIONID=wdit99359t8rnvipinz4tbtuACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 17 Jun 2013 20:16:00 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:OGVN4z8NV5vnSAilQTdpv/fcQzU=Accept-Encoding: gzip, deflate, compress

HTTP/1.1 200 OKDate: Mon, 17 Jun 2013 20:16:00 GMTContent-Type: application/octet-streamLast-Modified: Mon, 17 Jun 2013 20:15:16 GMTETag: 10Content-Type: application/jsonContent-Length: 43

The quick green fox jumps over the lazy dog.

Sobrescritura de la parte de un objetoA continuación, se muestra un ejemplo del uso de las extensiones de la API de parasobrescribir la parte de un objeto.

Puede sobrescribir la parte de un objeto proporcionando solo la compensación de inicioen la solicitud de datos. Los datos en la solicitud se escribirán al inicio de lacompensación proporcionada. El formato es el siguiente: Range:<startingOffset>-Por ejemplo, para escribir el inicio de datos brown cat en la compensación 10, Ud.debería emitir la siguiente solicitud PUT:

PUT /bucket1/object1 HTTP/1.1Content-Length: 9Range: bytes=10-ACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 17 Jun 2013 20:51:41 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:uwPjDAgmazCP5lu77Zvbo+CiT4Q=Accept-Encoding: gzip, deflate, compress

brown cat

HTTP/1.1 204 No ContentETag: 25x-amz-id-2: object1x-amz-request-id: 65be45c2-0ee8-448a-a5a0-fff82573aa3bContent-Length: 0Date: Mon, 17 Jun 2013 20:51:41 GMT

Extensiones de Swift

Sobrescritura de la parte de un objeto 69

Page 70: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Al recuperar un objeto, puede ver el valor final de The quick brown cat jumpsover the lazy dog and cat. (green fox se reemplazó por brown cat). Ha sobrescrito una parte de los datos en este objeto en la compensación de inicio proporcionada.

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

HTTP/1.1 200 OKDate: Mon, 17 Jun 2013 20:51:55 GMTContent-Type: application/octet-streamLast-Modified: Mon, 17 Jun 2013 20:51:41 GMTETag: 25Content-Type: application/jsonContent-Length: 51

The quick brown cat jumps over the lazy dog and cat.

Adición de datos a un objetoA continuación, se muestra un ejemplo del uso de las extensiones de la API de ECSpara agregar datos a un objeto.

Puede haber casos en los que necesite agregar un objeto, pero la determinación de lacompensación exacta de bytes no es eficiente o útil. Para este escenario, ECSproporciona la capacidad de agregar atómicamente datos al objeto sin especificar unacompensación (la compensación correcta se devuelve en la respuesta).

Se puede utilizar un encabezado de rango con el valor especial bytes=-1- paraagregar datos a un objeto. De esta manera, el objeto se puede extender sin conocer eltamaño del objeto existente.

El formato es el siguiente: Range: bytes=-1-

Una solicitud de ejemplo que muestra la adición a un objeto existente con un valor derango de bytes=-1-. Aquí el valor and cat se envía en la solicitud.

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

and cat

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

Extensiones de Swift

70 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 71: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Cuando se recupera el objeto nuevamente, puede ver el valor total The quick green fox jumps over the lazy dog and cat. Ha agregado datos a este objeto.

GET /bucket1/object1 HTTP/1.1ACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 17 Jun 2013 20:46:56 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:D8FSE8JoLl0MTQcFmd4nG1gMDTg=Accept-Encoding: gzip, deflate, compress

HTTP/1.1 200 OKDate: Mon, 17 Jun 2013 20:46:56 GMTContent-Type: application/octet-streamLast-Modified: Mon, 17 Jun 2013 20:46:01 GMTETag: 24Content-Type: application/jsonContent-Length: 51

The quick green fox jumps over the lazy dog and cat.

Lectura de múltiples rangos de bytes dentro de un objetoA continuación, se muestra un ejemplo del uso de las extensiones de la API de ECSpara leer múltiples rangos de byte dentro de un objeto.

Para leer dos rangos de bytes específicos en el objeto denominado object1, debeemitir la siguiente solicitud GET para Range: bytes==4-8,41-44. La respuesta delectura será para las palabras quick y lazy.

Nota

La API de Amazon S3 admite solo un rango cuando se utiliza el encabezado HTTPRange para la lectura; ECSes compatible con múltiples rangos de bytes.

GET /bucket1/object1 HTTP/1.1Date: Mon, 17 Jun 2013 20:51:55 -0000x-emc-namespace: emcRange: bytes==4-8,41-44Content-Type: application/octet-streamAuthorization: AWS wuser1:/UQpdxNqZtyDkzGbK169GzhZmt4=Accept-Encoding: gzip, deflate, compress

HTTP/1.1 206 Partial ContentDate: Mon, 17 Jun 2013 20:51:55 GMTContent-Type: multipart/byteranges;boundary=bound04acf7f0ae3cccLast-Modified: Mon, 17 Jun 2013 20:51:41 GMTContent-Length: 230

--bound04acf7f0ae3cccContent-Type: application/octet-streamContent-Range: bytes 4-8/50quick--bound04acf7f0ae3cccContent-Type: application/octet-streamContent-Range: bytes 41-44/50lazy--bound04acf7f0ae3ccc--

Extensiones de Swift

Lectura de múltiples rangos de bytes dentro de un objeto 71

Page 72: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Extensiones de Swift

72 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 73: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

CAPÍTULO 11

Autenticación

l Autenticación de OpenStack Swift.....................................................................74l Autenticación de la versión 1 de OpenStack ...................................................... 75l Autenticación de la versión 2 de OpenStack.......................................................77l Autenticación mediante la integración de ECS Keystone V3...............................79

Autenticación 73

Page 74: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Autenticación de OpenStack Swift

ECS ofrece compatibilidad con diversas versiones del protocolo de autenticación deOpenStack Swift.

v1

ECS habilita a los usuarios de objetos para que se autentiquen con el servicio de ECS Swift y obtengan un token de autenticación que se pueda utilizar cuando realiza llamadas posteriores de la API al servicio de ECS Swift. Consulte Autenticación de la versión 1 de OpenStack en la página 75.

v2

ECS permite que los usuarios de objetos se autentiquen con el servicio de ECS Swift para obtener un token incluido en el alcance, es decir, un token asociado con un grupo de usuarios (equivalente a un proyecto), que se pueda utilizar cuando realiza llamadas posteriores de la API al servicio de ECS Swift. Consulte Autenticación de la versión 2 de OpenStack en la página 77.

v3

ECS valida a los usuarios de Keystone V3 que presentan tokens dentro del alcancede un proyecto de Keystone. Consulte Autenticación mediante la integración deECS Keystone V3 en la página 79.

Para los protocolos v1 y v2, para acceder al área de almacenamiento de objetos deECS mediante el protocolo de OpenStack Swift, se requiere una cuenta de usuario deobjetos ECS y una contraseña de Swift.

Para v3, los usuarios se crean y se asignan a los proyectos y a las funciones fuera deECS mediante un servicio de Keystone V3. ECS no ejecuta la autenticación, perovalida el token de autenticación con el servicio de Keystone V3.

La asignación de credenciales de Swift a los usuarios de objetos de ECS se describe en Crear usuarios de Swift en el Portal de ECS en la página 74.

Crear usuarios de Swift en el Portal de ECSLos usuarios de objetos de ECS pueden recibir credenciales para acceder al área dealmacenamiento de objetos de ECS mediante el protocolo de OpenStack Swift.

Antes de comenzar

Debe ser un administrador del sistema de ECS.

Puede encontrar más información acerca de cómo agregar usuarios de objetos de ECS en Guía del administrador Administrar usuarios y funciones.

Procedimiento

1. En el portal de ECS, seleccione Manage > Users.

Aparece la página User Management.

2. En la página User Management, seleccione New Object User o agregue unacontraseña de Swift a un usuario existente seleccionando la acción Editcorrespondiente a un usuario que aparezca en la tabla de usuarios.

Si planea crear un nuevo usuario, deberá ingresar un nombre para el usuario y seleccionar el espacio de nombres al que pertenece el usuario.

Autenticación

74 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 75: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

3. En el campo Groups que se encuentra en el área Swift, ingrese un grupo al quepertenecerá el usuario.

El área Swift está destacada en la siguiente figura.

Si especifica el grupo “admin”, los usuarios automáticamente podrán ejecutartodas las operaciones de contenedor. Si especifica un grupo diferente, esegrupo debe recibir permisos para el contenedor. Consulte Autorización decontenedores en la página 84 para obtener más información acerca de laautorización del contenedor.

4. Escriba una contraseña para el usuario de Swift.

5. Seleccione Set Password & Groups.

Autenticación de la versión 1 de OpenStackPuede autenticar con el servicio de ECS OpenStack Swift mediante V1 del protocolode autenticación de este procedimiento.

Procedimiento

1. Adquirir un ID único y una contraseña para un usuario de objetos de ECS.

Puede hacerlo desde el Portal de ECS (consulte Crear usuarios de Swift en elPortal de ECS en la página 74) o puede llamar a la siguiente REST API de ECSpara generar una contraseña.

Solicitud:

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

Autenticación

Autenticación de la versión 1 de OpenStack 75

Page 76: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Respuesta:

HTTP 200

2. Llame a la API de REST de autenticación de OpenStack que se muestra acontinuación. Utilice el puerto 9024 para HTTP, o el puerto 9025 para HTTPS.

Solicitud:

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

Respuesta:

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

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

Resultados

Si el UID y la contraseña están validados por ECS, el almacenamiento URL y el tokense devuelven en el encabezado de la respuesta. Otras solicitudes son autenticadasmediante la inclusión de este token. El almacenamiento URL proporciona el nombre delhost y la dirección del recurso. Puede acceder a los contenedores y a los objetosproporcionando el siguiente encabezado X-Storage- Url:

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

El token generado vence 24 horas después de la creación. Si repite la solicitud deautenticación dentro del período de 24 horas con el mismo UID y contraseña,OpenStack generará el mismo token. Una vez que finaliza el período de 24 horas,OpenStack devolverá un nuevo token.

En el siguiente ejemplo de una autenticación simple, la primera llamada de RESTdevuelve X-Auth-Token. La segunda llamada de REST utiliza ese X-Auth-Token paraejecutar una solicitud GET en una cuenta.

$ 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

Autenticación

76 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 77: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

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

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

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

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

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

Autenticación de la versión 2 de OpenStackECS incluye compatibilidad limitada con la autenticación de la versión 2 de OpenStack(Keystone).

Antes de comenzar

ECS proporciona una implementación del servicio de identidad de OpenStack Swift V2que permite que una aplicación de Swift que utiliza la autenticación V2 autentique a losusuarios. Los usuarios deben ser usuarios de objetos de ECS que posean credencialesde OpenStack Swift que los habilitan para acceder al área de almacenamiento deobjetos de ECS mediante el protocolo Swift.

Para hacer llamadas de la API de Swift, solo se pueden utilizar tokens incluidos en elalcance de un grupo de usuarios o un espacio de nombres de ECS (equivalente a unproyecto de Swift). Se puede obtener y utilizar un token no incluido en el alcance paraacceder al servicio de identidad a fin de recuperar la identidad del grupo de usuariosantes de obtener un token incluido en el alcance de un grupo de usuarios y un terminalde servicio.

El token incluido en el alcance y el terminal de servicios se pueden utilizar para realizarla autenticación con ECS, como se describe en la sección anterior que describe laautenticación de la versión 1.

Autenticación

Autenticación de la versión 2 de OpenStack 77

Page 78: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Los dos artículos enumerados a continuación proporcionan información adicionalimportante.

l Flujo de trabajo de clave y alcance de token de OpenStack

l Autenticar para la API de administrador

Procedimiento

1. Para recuperar un token no incluido en el alcance de ECS, puede usar la APIde /v2.0/tokens y proporcionar un nombre de usuario y una contraseña parael servicio de ECS Swift.

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

La respuesta se ve como la siguiente. El token no incluido en el alcance estáprecedido por el ID y los tokens generados por ECS están precedidos por elprefijo “ecs_”.

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

2. Recupere información de grupos de usuarios asociada al token no incluido en elalcance.

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

La respuesta se ve como la siguiente.

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

3. Recupere el token incluido en el alcance junto con 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

Autenticación

78 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 79: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

A continuación, se muestra un ejemplo de respuesta. El token incluido en elalcance está precedido por el 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"}]}]}}

4. Utilice el token incluido en el alcance y la URL del terminal de servicios para laautenticación rápida. Este paso es igual que en la versión 1 de OpenStack.

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

Autenticación mediante la integración de ECS Keystone V3ECS proporciona soporte para Keystone V3 mediante la validación de los tokens deautenticación proporcionados por los usuarios de OpenStack Swift. Para Keystone V3,los usuarios se crean fuera de ECS mediante un servicio de Keystone V3. ECS noejecuta la autenticación, pero valida el token de autenticación con el servicio deKeystone V3.

Nota

En el dominio de Keystone, un proyecto se puede considerar como el equivalente deun grupo de usuarios o espacio de nombres de ECS. Un espacio de nombres de ECS sepuede considerar como un grupo de usuarios.

Keystone V3 permite que a los usuarios se les asignen funciones y que las accionesque están autorizados a ejecutar se basen en su membresía de funciones. Sinembargo, el soporte de ECS para Keystone V3 actualmente no es compatible con laspolíticas de Keystone, por lo que los usuarios deben estar en la función o grupo“admin” para ejecutar las operaciones de contenedor.

Los tokens de autenticación deben estar incluidos en el alcance de un proyecto; no sepermiten los tokens no incluidos en el alcance con ECS. Las operaciones relacionadascon los tokens no incluidos en el alcance, como la obtención de una lista de proyectos(equivalentes a un grupo de usuarios en ECS) y servicios, las deben ejecutar losusuarios directamente contra el servicio de Keystone y, a continuación, deben obtenerun token incluido en el alcance del servicio de Keystone que se pueda validar medianteECS y, si es válido, que se pueda utilizar para realizar la autenticación con ECS.

Para activar la validación de ECS, debe tener un proveedor de autenticaciónconfigurado en ECS, de modo que cuando recibe un token no incluido en el alcance deun proyecto de parte de un usuario, ECS puede validarlo con el proveedor deautenticación de Keystone V3. Además, se debe crear un espacio de nombres de ECScorrespondiente al proyecto de Keystone. Se proporciona más información en Configurar ECS para autenticar a los usuarios de Keystone en la página 80.

Autenticación

Autenticación mediante la integración de ECS Keystone V3 79

Page 80: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Comprobaciones de autorizaciónECS utiliza la información proporcionada por los tokens de Keystone para ejecutar lasdecisiones de autorización. Las comprobaciones de autorización son las siguientes:

1. ECS verifica si el proyecto al que se dirige el token coincide con el proyecto en ladirección URI.

2. Si la operación es una operación de objeto, ECS evalúa las ACL asociadas con elobjeto para determinar si se permite la operación.

3. Si la operación es una operación de contenedor, ECS evalúa la operación solicitadacontra las funciones del usuario para el proyecto, como se indica a continuación:

a. Si la operación es una operación de enumeración de los contenedores y elusuario tiene la función de administrador, está permitida.

b. Si la operación es una operación de creación de contenedores y el usuario tienela función de administrador, está permitida.

c. Si la operación es una operación de actualización de los metadatos delcontenedor y el usuario tiene la función de administrador, está permitida.

d. Si la operación es una operación de lectura de los metadatos del contenedor yel usuario tiene la función de administrador, está permitida.

e. Si la operación es una operación de eliminación de los contenedores y el usuariotiene la función de administrador, está permitida.

DominiosEn Keystone V3 todos los usuarios pertenecen a un dominio, y un dominio puede tenermúltiples proyectos. Los usuarios tienen acceso a los proyectos según la función quedesempeñen. Si un usuario no está asignado a un dominio, el dominio que posean seráel predeterminado.

Los objetos y los contenedores creados por usuarios de Swift Keystone V3pertenecerán a <user>@<domain.com>. Si el usuario no se asignó a un dominio, sunombre de usuario asignado a los contenedores y a los objetos será <user>@default.

Configurar ECS para autenticar a los usuarios de KeystonePara autenticar a los usuarios de Keystone, debe agregar un proveedor deautenticación a ECS y crear un espacio de nombres al que pertenezcan los usuarios deSwift.

Antes de comenzar

Se aplican los siguientes prerrequisitos:

l Necesitará credenciales para una cuenta de administrador del sistema ECS.

l Deberá obtener la identidad del proyecto de Keystone al que pertenecen losusuarios Swift que accederán a ECS.

Procedimiento

1. Inicie sesión en ECS como administrador del sistema.

2. Cree un proveedor de autenticación que especifique el terminal de servicios deKeystone V3 y las credenciales de una cuenta de administrador que se puedautilizar para validar los tokens.

Consulte Guía del administrador Configuración de un proveedor de autenticación.

3. Cree un espacio de nombres de ECS con el mismo ID que el proyecto o cuentade Keystone al que pertenecen los usuarios que desean autenticarse.

Autenticación

80 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 81: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Deberá obtener el ID del proyecto de Keystone.

Resultados

Una vez que se crea el espacio de nombres, los usuarios que pertenecen al proyectode Keystone correspondiente y que tienen un token incluido en el alcance de eseproyecto se pueden autenticar con ECS (a través de la comunicación de ECS con elproveedor de autenticación de Keystone) y utilizar la API de Swift para acceder al áreade almacenamiento de objetos de ECS.

Autenticación

Configurar ECS para autenticar a los usuarios de Keystone 81

Page 82: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Autenticación

82 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 83: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

CAPÍTULO 12

Autorización

l Autorización de contenedores............................................................................84

Autorización 83

Page 84: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Autorización de contenedoresLa autorización de OpenStack Swift se enfoca solamente en contenedores.

Actualmente, Swift admite dos tipos de autorización:

l Autorización de estilo de referencia

l Autorización de estilo de grupo

ECS admite solo la autorización basada en grupos.

Los usuarios administradores pueden realizar todas las operaciones dentro de lacuenta. Los usuarios no administradores solo pueden realizar operaciones porcontenedor, basadas en las listas de control de acceso X-Container-Read y X-Container-Write. Las siguientes operaciones se pueden otorgar a los usuarios noadministradores:

El administrador asigna el acceso de lectura al contenedorEl usuario “admin” puede asignar permisos de lectura a un grupo mediante lo siguiente:

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

Este comando permite que los usuarios que pertenecen a la LISTA DEL GRUPOtengan derechos de acceso de lectura al contenedor 1. Por ejemplo, para asignarpermisos de lectura al grupo “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}

Después de que se les otorga el permiso de lectura, los usuarios que pertenecen a losgrupos de destino pueden ejecutar estas operaciones:

l HEAD contenedor: recuperar los metadatos de los contenedores. Solo estápermitido si el usuario está asignado a un grupo que tiene privilegios deadministrador de grupos de usuarios.

l GET contenedor: enumerar objetos dentro de un contenedor.

l GET objetos con el contenedor: leer el contenido del objeto dentro del contenedor.

El administrador asigna el acceso de escritura al contenedorEl usuario “admin” puede asignar permisos de lectura a un grupo mediante lo siguiente:

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

Autorización

84 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 85: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Este comando permite que los usuarios que pertenecen a la GROUP LIST tenganderechos de acceso de escritura a container1. Por ejemplo, para asignar permisos deescritura al 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}

A los usuarios en la LISTA DEL GRUPO se les otorga el permiso de escritura. Despuésde que se les otorga el permiso de escritura, los usuarios que pertenecen a los gruposde destino pueden ejecutar las siguientes operaciones:

l POST contenedor: establecer metadatos. Comenzar con el prefijo "X-Container-Meta".

l PUT objetos dentro del contenedor: escribir/invalidar objetos con el contenedor.

Puede obtener más información sobre la autorización en: Operaciones de contenedor.

Autorización

Autorización de contenedores 85

Page 86: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Autorización

86 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 87: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

PARTE 3

EMC Atmos

Capítulo 13, "Introducción al servicio de soporte de EMC Atmos en ECS"

Capítulo 14, "Funciones compatibles con Atmos"

Capítulo 15, "Extensiones de API de Atmos"

EMC Atmos 87

Page 88: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

EMC Atmos

88 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 89: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

CAPÍTULO 13

Introducción al servicio de soporte de EMCAtmos en ECS

l Soporte de API de EMC Atmos en ECS..............................................................90

Introducción al servicio de soporte de EMC Atmos en ECS 89

Page 90: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Soporte de API de EMC Atmos en ECSECS es compatible con un subconjunto de la API de EMC Atmos. En este artículo sedetallan las operaciones compatibles y las extensiones de ECS.

El servicio de objetos EMC Atmos está disponible en los siguientes puertos.

Protocolo Puertos

HTTP 9022

HTTPS 9023

Puede encontrar más información sobre las operaciones compatibles en la Guía delprogramador de Atmos que está disponible en EMC Supportzone.

l Guía del programador de Atmos

Se proporciona compatibilidad con formato de cable para todas las operacionescompatibles. Por lo tanto, las operaciones que se describen en la Guía del programadorde Atmos se aplican a las operaciones de la API expuestas por ECS.

La Guía del programador de Atmos también proporciona información para autenticar laAPI de Atmos y proporciona ejemplos detallados para muchas de las funcionesadmitidas.

Introducción al servicio de soporte de EMC Atmos en ECS

90 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 91: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

CAPÍTULO 14

Funciones compatibles con Atmos

l Llamadas compatibles de la API REST de EMC Atmos....................................... 92l Llamadas no compatibles de la API REST de EMC Atmos.................................. 94l Compatibilidad de subgrupo de usuarios de la API REST de EMC Atmos........... 94

Funciones compatibles con Atmos 91

Page 92: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Llamadas compatibles de la API REST de EMC AtmosECS es compatible con un subconjunto de la API de EMC Atmos.

Se admiten las siguientes llamadas de la API de REST de Atmos. Se muestran lasllamadas para el objeto y las interfaces del espacio de nombres.

Tabla 6 Llamadas compatibles de la API de REST de Atmos

Método Ruta Descripción

Operaciones de servicios

GET /rest/service Obtención deinformación sobre elsistema

Operaciones de objetos

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

Cree un objeto

(Consulte las notas quese muestran acontinuación)

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

Elimine un objeto

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

Actualización de unobjeto

(Consulte las notas quese muestran acontinuación)

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

Lectura de un objeto (olista del directorio)

POST /rest/namespace/<path>?rename Cambio del nombre de unobjeto

Operaciones de metadatos

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

Obtención de metadatosde un usuario para unobjeto

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

Obtención de metadatosde un usuario

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

Eliminación de metadatosde un usuario

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

Obtención de metadatosde un sistema para unobjeto

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

Obtención de ACL

POST /rest/objects/<ObjectID>?acl Configuración de ACL

Funciones compatibles con Atmos

92 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 93: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Tabla 6 Llamadas compatibles de la API de REST de Atmos (continuación)

Método Ruta Descripción

/rest/namespace/<path>?acl

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

Obtención de etiquetasde metadatos para unobjeto

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

Obtención deinformación de un objeto

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

Obtención de todos losmetadatos del objeto

Operaciones de espacio-objeto

GET /rest/objects Listado de objetos

GET /rest/objects?listabletags Obtención de etiquetasnumerables

Acceso anónimo

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

URL compartible

Nota

l El encabezado x-emc-wschecksum es compatible con ECS.

l La carga de formularios HTML no es compatible.

l GET /rest/objects no es compatible con varios tipos de respuesta con x-emc-accept. Por ejemplo, el text/plain no se admite.

l El vencimiento y la retención de objetos no se admiten.

l La lectura, escritura y eliminación del trabajo de las ACL en ECS es igual que enAtmos.

Etiquetas numerables de AtmosLas etiquetas numerables son etiquetas especiales definidas por el usuario utilizadaspara enumerar o filtrar objetos. Por ejemplo, una aplicación podría permitir que unusuario final etiquetara un grupo de imágenes (objetos) con una etiqueta como"Vacation2016". Más adelante, la aplicación puede responder a una consulta de"Vacation2016" mediante la enumeración solo de los objetos etiquetados con estaetiqueta numerable.

En ECS Atmos, un usuario no puede eliminar ni modificar las etiquetas numerables deotro usuario. En determinadas circunstancias, se permite esta capacidad en Atmosnativo.

Las etiquetas numerables se indexan en ECS, lo que aumenta el rendimiento y laescalabilidad de la recuperación de objetos etiquetados.

Funciones compatibles con Atmos

Llamadas compatibles de la API REST de EMC Atmos 93

Page 94: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

En ECS, la etiqueta de metadatos EMC_TAGS se utiliza para conservar las etiquetasnumerables. Este nombre de etiqueta no debe utilizarse en las etiquetas de metadatosdefinidas por el usuario.

Llamadas no compatibles de la API REST de EMC Atmos

Las siguientes llamadas de API de REST de Atmos no se admiten.

Tabla 7 Llamadas no compatibles de la API de REST de Atmos

Método Ruta Descripción

Versiones de objetos

POST /rest/objects/<objectID>?versions

Creación de una versión de unobjeto

DELETE /rest/objects/<objectID>?versions

Eliminación de una versión deun objeto

GET /rest/objects/<objectID>?versions

Listado de versiones de unobjeto

PUT /rest/objects/<objectID>?versions

Restauración de una versiónde un objeto

Acceso anónimo

POST /rest/accesstokens Creación de un token deacceso

GET /rest/accesstokens/<token_id>?info

Obtención de detalles deltoken de acceso

DELETE /rest/accesstokens/<token_id>

Eliminación de un token deacceso

GET /rest/accesstokens Listado de tokens de acceso

GET /rest/accesstokens/<token_id>

Descarga de contenido deforma anónima

Compatibilidad de subgrupo de usuarios de la API REST deEMC Atmos

ECS incluye dos llamadas a la API REST nativa que se usan específicamente paraagregar la compatibilidad con el subgrupo de usuarios de ECS a las aplicaciones deAtmos.

Estas llamadas se detallan a continuación:

Llamada API Ejemplo

Creación de subgrupo de usuarios INGRESE Http url: /rest/subtenantEncabezados requeridos: x-emc-uid (porejemplo, x-emc-

Funciones compatibles con Atmos

94 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 95: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Llamada API Ejemplo

[email protected] ) x-emc-signature.

El subtenantID se establece en el encabezado“subtenantID” de la respuesta.

Eliminación del subgrupo de usuarios ELIMINE Http url: /rest/subtenants/{subtenantID}Encabezados requeridos: x-emc-uid (porejemplo, [email protected] ) x-emc-signature

Nota

Los ID de subgrupos de usuarios se conservan en ECS después de la migración: Elencabezado esx-emc-subtenant-id: {original_subt_id}.

Funciones compatibles con Atmos

Compatibilidad de subgrupo de usuarios de la API REST de EMC Atmos 95

Page 96: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Funciones compatibles con Atmos

96 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 97: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

CAPÍTULO 15

Extensiones de API de Atmos

l Extensiones de API............................................................................................ 98

Extensiones de API de Atmos 97

Page 98: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Extensiones de APIVarias extensiones para las API de objetos son compatibles.

Las extensiones y la API que las admiten aparecen en la siguiente tabla.

Tabla 8 Extensiones de la API de objetos

Característica Notas

PUT objeto (rango, agregar)

Utiliza el encabezado del rango para especificar el rango del objetoagregado.

Adición de datos a un objeto en la página 98

Adición de datos a un objetoA continuación, se muestra un ejemplo del uso de las extensiones de la API de paraagregar datos a un objeto.

Puede haber casos en los que necesite agregar un objeto, pero la determinación de lacompensación exacta de bytes no es eficiente o útil. Para este escenario, proporcionala capacidad de agregar atómicamente datos al objeto sin especificar unacompensación (la compensación correcta se devuelve en la respuesta).

Se puede utilizar un encabezado de rango con el valor especial bytes=-1- paraagregar datos a un objeto. De esta manera, el objeto se puede extender sin conocer eltamaño del objeto existente.

El formato es el siguiente: Range: bytes=-1-

Una solicitud de ejemplo que muestra la adición a un objeto existente con un valor derango de bytes=-1-. Aquí el valor and cat se envía en la solicitud.

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)

Extensiones de API de Atmos

98 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 99: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

La posición de desplazamiento en la que se agregaron los datos se devuelve en elencabezado x-emc-append-offset.

Cuando se recupera el objeto nuevamente, puede ver el valor total The quickgreen fox jumps over the lazy dog and cat. Ha agregado datos a este objeto.

Extensiones de API de Atmos

Adición de datos a un objeto 99

Page 100: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Extensiones de API de Atmos

100 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 101: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

PARTE 4

CAS

Capítulo 16, "Configuración del soporte de CAS en ECS"

CAS 101

Page 102: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

CAS

102 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 103: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

CAPÍTULO 16

Configuración del soporte de CAS en ECS

l Configuración de compatibilidad de CAS en ECS..............................................104l Almacenamiento inactivo.................................................................................. 104l Cumplimiento de normas.................................................................................. 105l Retención de CAS en ECS................................................................................ 108l Retención avanzada para las aplicaciones de CAS: retención basada en eventos,

retención para asuntos legales y controlador mín./máx......................................111l Establecer políticas de retención de espacio de nombres.................................. 117l Creación y configuración de un depósito para un usuario de CAS......................119l Configurar un usuario de objetos de CAS..........................................................120l Establecer varias ACL de depósito para CAS.....................................................121l API de administración de ECS que admiten usuarios de CAS............................ 123l Compatibilidad de la API del SDK de almacenamiento direccionable por contenido

(CAS)............................................................................................................... 124

Configuración del soporte de CAS en ECS 103

Page 104: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Configuración de compatibilidad de CAS en ECSIntroduce la compatibilidad de CAS (almacenamiento direccionable por contenido) enECS.

ECS CAS permite a las aplicaciones del cliente basadas en SDK CAS almacenar,recuperar y eliminar objetos de contenido fijo del almacenamiento de ECS.

El almacenamiento subyacente de ECS debe provisionarse antes de configurar ECS. El aprovisionamiento normalmente se completa cuando se instala un nuevo rack de ECS. Esto incluye la configuración de un pool de almacenamiento, VDC y grupo de replicación. En ECS CAS, puede utilizar la documentación estándar si necesita crear o editar estos objetos para que sean compatibles con CAS. Consulte Guía del administrador Configuración de pools de almacenamiento, VDC y grupos de replicación.

Para los pools de almacenamiento, puede considerar la configuración de un archivoinactivo. Consulte Almacenamiento inactivo en la página 104.

A continuación, configure sus espacios de nombres, sus usuarios y sus depósitosmediante la documentación estándar:

l Guía del administrador Configurar un espacio de nombres

l Guía del administrador Administrar usuarios y funciones

l Guía del administrador Crear y administrar depósitos

En este capítulo se describe cómo modificar la configuración básica para que seacompatible con CAS.

Almacenamiento inactivoDescribe los archivos de almacenamiento inactivo.

Los archivos inactivos almacenan objetos que no cambian con frecuencia y que nonecesitan el esquema predeterminado sólido de EC. El esquema de EC utilizado paraun archivo inactivo es de 10 fragmentos de datos más 2 fragmentos de codificación(10/12). La eficiencia es 1.2x.

Puede especificar un archivo inactivo (almacenamiento inactivo) cuando crea unnuevo pool de almacenamiento. Después de crear el pool de almacenamiento, no sepuede cambiar el esquema de EC. Este esquema puede admitir la pérdida de un solonodo. Asimismo, puede admitir la pérdida de una unidad de seis o dos unidades de 12en dos nodos independientes.

Requisitos de EC

Tabla 9 Comparación de los requisitos de los archivos regulares e inactivos

Caso de uso Cómo se habilita Cantidadmínima denodosnecesarios

Cantidadmínima dediscosnecesarios

Discosrecomendados

Eficiencia deEC

Esquema deEC

Archivo regular Opción predeterminada 4 16* 32 1.33x 12/16

Archivoinactivo

Configurado por eladministrador delsistema

8 12* 24 1.2 veces 10/12

Configuración del soporte de CAS en ECS

104 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 105: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Tabla 9 Comparación de los requisitos de los archivos regulares e inactivos (continuación)

Nota

*Dado que la configuración mínima que se puede implementar para el dispositivo de C-Series es de dos dispositivos con 12 discos cada uno, la cantidad mínima real es de 24 discos.

Configuración del pool de almacenamientoPara establecer un archivo inactivo desde el portal, seleccione Cold Storage cuandocree un nuevo pool de almacenamiento. Una vez creado un pool de almacenamiento,esta configuración no se puede cambiar.

Cumplimiento de normasDescribe las funciones de ECS que son compatibles con los estándares del gobierno ydel sector para el almacenamiento de registros electrónicos.

ECS cumple los requisitos de almacenamiento de los siguientes estándares, según locertifica Cohasset Associates Inc:

l Comisión de bolsa y valores (SEC) en las normativas 17 C.F.R. § 240.17a-4(f)

l Comisión de comercio de futuros de productos (CFTC) en las normativas 17 C.F.R.§ 1.31(b)-(c)

Configuración del soporte de CAS en ECS

Cumplimiento de normas 105

Page 106: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

El cumplimiento de normas está certificado en los dispositivos ECS Appliance con elsoftware ECS 2.2.1 y versiones posteriores. También se certifican las instalaciones desolo software ECS 3.0 y versiones posteriores que se ejecutan en el hardware de otrosfabricantes certificado por ECS.

El cumplimiento de normas tiene tres componentes:

l Protección de la plataforma: abordar las vulnerabilidades de seguridad comunes.

l Retención de registros basada en políticas: limitar la capacidad de cambiar laspolíticas de retención para los registros que se encuentran retenidos.

l Creación de informes de cumplimiento de normas: un agente del sistema registraperiódicamente el estado de cumplimiento de normas del sistema.

Cumplimiento de normas y protección de la plataformaDescribe las funciones de seguridad ECS compatibles con los estándares decumplimiento de normas.

Funciones de seguridad de la plataforma de ECS:

l Se deshabilita el acceso raíz a los nodos; es decir, no se permiten inicios de sesiónen la cuenta raíz.

l Los clientes de ECS pueden acceder a los nodos a través de la cuenta admin quese establece durante la instalación.

l Las cuentas de usuario admin autorizadas ejecutan comandos en los nodos queusan sudo.

l Hay un registro de la auditoría completa para los comandos sudo.

l ESRS proporciona la capacidad de apagar todo el acceso remoto a los nodos. En elAdministrador de políticas de ESRS, establezca la acción Start RemoteTerminal en Never Allow.

l Todos los puertos innecesarios, como ftpd, sshd, entre otros, están cerrados.

l El administrador de bloqueo de ECS (inicio de sesión: emcsecurity) puedebloquear los nodos en un clúster. Esto significa que el acceso remoto a la redmediante el protocolo SSH está deshabilitado. El administrador de bloqueo puedeasí desbloquear un nodo a fin de permitir actividades de mantenimiento remotas uotro acceso autorizado. (El bloqueo de nodos no afecta a los usuarios autorizadosdel portal de ECS o de la API de administración de ECS). Consulte la Guía deladministrador de ECS para obtener información sobre el bloqueo y el desbloqueo denodos.

Política de retención y cumplimiento de normasDescribe las reglas mejoradas para la retención de registros en un sistema ECSactivado para el cumplimiento de normas.

ECS cuenta con funciones de retención de objetos activadas o definidas en el nivel delobjeto, del depósito y del espacio de nombres. El cumplimiento de normas fortaleceestas funciones mediante la limitación de los cambios que se pueden realizar en laconfiguración de la retención de los objetos que están siendo retenidos. Las reglasincluyen:

l El cumplimiento de normas está activado en el nivel del espacio de nombres. Estosignifica que todos los depósitos en el espacio de nombres deben tener un períodode retención mayor que cero. Para CAS, se pueden crear depósitos con valor deretención cero, siempre que la configuración Enforce Retention Information inObject esté habilitada.

Configuración del soporte de CAS en ECS

106 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 107: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

l El cumplimiento de normas únicamente se puede activar en un espacio de nombresal momento de crearlo. (El cumplimiento de normas no se puede agregar a unespacio de nombres existente).

l Una vez activado, no se puede desactivar.

l Todos los depósitos en un espacio de nombres deben tener un período deretención mayor que cero.

Nota

Si tiene una aplicación que asigna períodos de retención en el nivel del objeto, noutilice ECS para asignar un período de retención mayor que el período de retenciónde la aplicación. Esta acción provocará errores en la aplicación.

l Un depósito que posea datos no se puede eliminar, sin importar su valor deretención.

l Utilizar la opción Infinite en un depósito significa que los objetivos que residen eneste depósito en un espacio de nombres activado para el cumplimiento de normasnunca se podrán eliminar.

l El período de retención para un objeto no se puede eliminar ni acortar. Por lo tanto,el período de retención para un depósito no se puede eliminar ni acortar.

l Se pueden aumentar los períodos de retención de los objetos y de los depósitos.

l Ningún usuario puede eliminar un objeto que está sujeto a retención. Esto incluye alos usuarios con el permiso de eliminación con privilegios de CAS.

Configuración del soporte de CAS en ECS

Política de retención y cumplimiento de normas 107

Page 108: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Figura 1 Activar el cumplimiento de normas en un nuevo espacio de nombres en el Portal de ECS

Agente de cumplimiento de normasDescribe la operación del agente de cumplimiento de normas.

Las funciones de cumplimiento de normas están activadas de forma predeterminada, a excepción del monitoreo de cumplimiento de normas. Si el monitoreo está activado, el agente registra periódicamente un mensaje en un hilo de ejecución.

Nota

Haga un acuerdo con el servicio al cliente de EMC para activar el monitoreo decumplimiento de normas. Los mensajes de monitoreo se encuentran disponibles deforma obligatoria desde el nodo. No aparecen en el Portal de ECS.

Retención de CAS en ECSUn objeto de CAS puede contar con un período de retención que rige la cantidad detiempo que el objeto se conserva en almacenamiento de ECS antes de que unaaplicación pueda eliminarlo.

Configuración del soporte de CAS en ECS

108 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 109: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Períodos de retenciónLa aplicación de CAS asigna los períodos de retención en el C-Clip para el objeto.

Por ejemplo, si un documento financiero debe conservarse durante tres años a partirde su fecha de creación, se especifica un período de retención de tres años en el C-Clip asociado con el documento financiero. También es posible especificar que eldocumento se conserve indefinidamente.

Políticas de retención (clases de retención)

Nota

El concepto de Centera de “clases de retención” se asigna a las “políticas deretención” en ECS. Esta documentación utiliza “políticas de retención”.

Las políticas de retención permiten que se capturen los casos de uso de retención yque se apliquen a C-Clips. Por ejemplo, diferentes tipos de documentos pueden tenerdiferentes períodos de retención. Usted podría requerir los siguientes períodos deretención:

l Financiero: 3 añosl Legal: 5 añosl Correo electrónico: 6 meses

Cuando se aplica una política de retención a una serie de C-Clips, cambiando lapolítica, el período de retención cambia para todos los objetos a los que se aplique lapolítica.

Las políticas de retención están asociados con espacios de nombres en ECS y sonreconocidos por la aplicación de CAS como clases de retención.

CAS y retención en el nivel de depósito de ECSLa retención en el nivel de depósito no es la retención predeterminada del pool enCentera. En ECS, la retención de CAS predeterminada es constantemente cero.

Cambio de comportamiento para el período de retención predeterminado enobjetos escritos sin retención en el nivel de objetos en espacios de nombres decumplimiento de normasA partir de la versión 3.0 de ECS, cuando una aplicación escriba C-Clips sin retenciónde objetos a un depósito de CAS de ECS en un espacio de nombres de cumplimientode normas y el depósito tenga un valor de retención (6 meses, por ejemplo), el períodode retención predeterminado de infinito (-1) se asignará a los C-Clips. Los C-Clips nose pueden eliminar nunca debido a que su período de retención real es el más largo delos dos: el período de retención en el nivel de depósito y la retención predeterminadaen el nivel de objetos.

Este es un cambio de comportamiento de ECS 2.2.1 que hace que ECS esté deacuerdo con el comportamiento de Centera, donde la retención del poolpredeterminado en el modo de cumplimiento de normas de CE+ siempre es infinita(-1).

In ECS 2.2.1, cuando una aplicación escribe C-Clips sin retención de objetos a undepósito de CAS de ECS en un espacio de nombres de cumplimiento de normas, y eldepósito tiene un valor de retención (6 meses, por ejemplo), el período de retenciónasignado a los C-Clips es cero (0). En este caso, el período de retención real para losC-Clips será el valor de retención de depósito (6 meses). Los C-Clips puedeneliminarse en 6 meses.

Después de actualizar de ECS 2.2.1 a ECS 3.0 o a una versión posterior, lasaplicaciones que dependen del comportamiento de ECS 2.2.1 escribirán C-Clips que nose podrán eliminar nunca.

Configuración del soporte de CAS en ECS

Retención de CAS en ECS 109

Page 110: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Detenga y vuelva a configurar sus aplicaciones para asignar la retencióncorrespondiente en el nivel de objetos antes de que interactúen con ECS 3.0 o susversiones posteriores.

En el ejemplo anterior, la aplicación debe asignar la retención de 6 meses en el nivel deobjetos a los C-Clips.

Precedencia de CASCuando varios períodos de retención se aplican a un objeto de CAS en ECS, el períodode retención con el valor más alto tiene precedencia, sin importar cómo se aplicó laretención.

Cómo aplicar la retención CASPuede definir políticas de retención para espacios de nombres en el portal de ECS ocon la API de administración de ECS. Consulte Establecer políticas de retención deespacio de nombres.

Su aplicación externa de CAS puede asignar un período de retención fijo o una políticade retención a C-Clip durante su creación.

Al aplicar los períodos de retención mediante API, especifique el período en segundos.

Tenga en cuenta que la CAS de ECS usa el tiempo de creación de C-Clip para todoslos cálculos relacionados con la retención, y no el tiempo de migración.

Cómo crear políticas de retención con la API de administración de ECS.Puede crear períodos y políticas de retención utilizando API de REST deadministración de ECS; a continuación se proporciona un resumen.

Tabla 10 Recursos de la API de administración de ECS para la retención

Método Descripción

PUT /object/bucket/{bucketName}/retention

El valor de retención para un depósito defineun período de retención obligatorio que seaplica a cada objeto dentro de un depósito. Siestablece un período de retención de un año,no se podrá eliminar un objeto del depósitodurante un año.

GET /object/bucket/{bucketName}/retention

Devuelve el período de retención que estáestablecido actualmente para un depósitoespecificado.

POST /object/namespaces/namespace/{namespace}/retention

Para los espacios de nombres, el ajuste deretención actúa como una política, donde cadapolítica es un par <Name>:<Retentionperiod>. Puede definir una serie de políticasde retención para un espacio de nombres ypuede asignar una política, por nombre, a unobjeto en el espacio de nombres. Esto lepermite cambiar el período de retención de unconjunto de objetos que tienen la mismapolítica asignada al cambiar la políticacorrespondiente.

PUT /object/namespaces/namespace/{namespace}/retention/{class}

Actualiza el período para un período deretención asociado a un espacio de nombres.

GET /object/namespaces/namespace/{namespace}/retention

Devuelve las políticas de retención definidaspara un espacio de nombres.

Configuración del soporte de CAS en ECS

110 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 111: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Tabla 10 Recursos de la API de administración de ECS para la retención (continuación)

Puede obtener más información sobre la API de administración de ECS aquí: API deREST de administración de ECS. La referencia en línea está aquí: Referencia de API deREST de administración de ECS.

Retención avanzada para las aplicaciones de CAS: retenciónbasada en eventos, retención para asuntos legales ycontrolador mín./máx.

Describe las funciones de retención avanzada disponibles en la API de CAS que soncompatibles con ECS.

Las aplicaciones del cliente utilizan la API de CAS para permitir las estrategias deretención. Cuando se migran las cargas de trabajo de CAS a ECS, el reconocimientopor parte de ECS de las funciones de la API de CAS permiten a las aplicaciones de losclientes seguir trabajando con los datos migrados. En ECS, las siguientes funciones deadministración de retención avanzada (ARM) están disponibles sin una licencia aparte:

l Retención basada en eventos: la capacidad de configurar un objeto a través de suC-Clip para que aplique (active) un período o política de retención cuando laaplicación de CAS reciba un evento especificado.

l Retención para asuntos legales: la capacidad de impedir la eliminación de un objetosi la aplicación de CAS le aplicó una retención de este tipo a través de su C-Clip. Laaplicación de CAS puede aplicar hasta un máximo de 100 retenciones para asuntoslegales a un objeto mediante la creación y la aplicación de ID únicos de retenciónpara asuntos legales.

l Controlador mín./máx.: La capacidad de un administrador de establecer límites enel nivel de depósito para un período de retención fijo o variable. Un período deretención variable es aquel que está configurado para admitir la retención basadaen eventos. En ECS, los administradores del sistema o del espacio de nombrespueden establecer los valores con el portal de ECS. Los programadores puedenutilizar la API de administración de ECS para establecer los valores.

Nota

ARM es compatible con los datos de CAS heredados escritos con cualquier esquemade asignación de nombres que se migre a ECS.

Controlador mín./máx. para la retención de CAS en el nivel de depósitoEn el portal de ECS, busque un depósito de CAS y seleccione Edit. Todos los controlesque se muestran en la pantalla que aparece a continuación son característicasexclusivas de CAS, excepto por el control de Bucket Retention Period. BucketRetention Period es la función de retención de depósito estándar de ECS compatiblecon todos los tipos de depósito de ECS.

Configuración del soporte de CAS en ECS

Retención avanzada para las aplicaciones de CAS: retención basada en eventos, retención para asuntos legales y controlador

mín./máx. 111

Page 112: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Figura 2 Opciones de retención para los depósitos de CAS

En la tabla siguiente, se explican las funciones de retención de depósito de CAS.

Característica Descripción

EnforceRetentionInformation inObject

Si este control está habilitado, no se puede crear ningún objeto de CAS sinla información de retención (período o política). Si se intenta guardar estetipo de objeto, devolverá un error. Si está habilitado, es posible no

configurar Bucket Retention Period incluso en el ambiente habilitadopara el cumplimiento de normas.

Nota

Cuando se migra un modo de CE+ de Centera a ECS, se habilita EnforceRetention Information in Object de forma predeterminada en eldepósito.

Bucket RetentionPeriod

Si se especifica un período de retención de depósito, entonces seimplementará el período más largo si hay un período de retención en elnivel de depósito y en el nivel de objetos.

En un ambiente habilitado para el cumplimiento de normas, BucketRetention Period es obligatorio, a menos que se implemente la

información de retención en el objeto. Sin embargo, una vez configurado el

Bucket Retention Period, este no se puede restablecer incluso si seimplementa la información de retención en el objeto.

Minimum FixedRetention Period

Esta característica controla los períodos de retención especificados en losobjetos. Si el período de retención del objeto se encuentra fuera de los

Configuración del soporte de CAS en ECS

112 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 113: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Característica Descripción

Maximum FixedRetention Period

límites que se especifican aquí, entonces fallará cualquier intento deescribir el objeto.Cuando se utilizan las políticas de retención, no se implementa laconfiguración mín./máx..

Si selecciona Infinite para Minimum Fixed Retention Period,significa que todos los valores de retención deben ser infinitos. Si

selecciona Maximum Fixed Retention Period, significa que no hayningún límite máximo.

Las restricciones de retención mín./máx. se aplican a cualquier C-Clipescrito en un depósito. Si una herramienta de otros fabricantes basada enSDK migra un clip, la retención debe encontrarse dentro de límites; de locontrario, se produce un error.

Minimum VariableRetention Period

Esta característica controla los períodos de retención variablesespecificados en los objetos con retención basada en eventos (EBR). En laEBR, se establece un período de retención de base y la función deactivación programada tiene la capacidad de aumentar el período deretención cuando se inicia la activación. Si el nuevo período de retenciónde un objeto se encuentra fuera de los límites que se especifican aquí,entonces fallará cualquier intento de escribir el objeto en respuesta a laactivación.Cuando se utilizan las políticas de retención, no se implementa laconfiguración mín./máx..

Si selecciona Infinite para Maximum Variable Retention Period,significa que todos los valores de retención deben ser infinitos. Si

selecciona Maximum Variable Retention Period, significa que no hayningún límite máximo.

Las restricciones de retención mín./máx. se aplican a cualquier C-Clipescrito en un depósito. Si una herramienta de otros fabricantes basada enSDK migra un clip, la retención debe encontrarse dentro de límites; de locontrario, se produce un error.

MaximumVariableRetention Period

Nota

Si el programador o el administrador del sistema no estableció ningún valor para losperíodos de retención fijos y variables, la función get de la API de administración deECS no devolverá valores para la configuración mín./máx. La opción EnforceRetention Information in C-Clip devolverá un valor predeterminado de false.

Retención basada en eventosLa retención basada en eventos (EBR) es una instrucción que especifica que no sepuede eliminar un registro antes de un evento y durante un período especificadoposterior al evento. En CAS, la EBR es un C-Clip con una política o un período deretención de base especificado y una activación definida por una aplicación que puedeestablecer un período de retención más prolongado cuando se inicia la activación. Elperíodo de retención únicamente comienza cuando se inicia la activación. Cuando semarca un C-Clip para EBR, este no puede eliminarse antes del evento, a menos que seutilice una eliminación con privilegios.

Cuando se utiliza EBR, el ciclo de vida de C-Clip es el siguiente:

Configuración del soporte de CAS en ECS

Retención avanzada para las aplicaciones de CAS: retención basada en eventos, retención para asuntos legales y controlador

mín./máx. 113

Page 114: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

l Create: la aplicación crea un C-Clip nuevo y lo marca como parte de la EBR. Laaplicación puede proporcionar un período de retención fijo que actúe como unaretención mínima y debe proporcionar una política o un período de retenciónbasada en eventos.

l Trigger Event: La aplicación activa el evento, que es el punto de inicio de la políticao el período de retención basada en eventos. En este punto, la aplicación puedeasignar un nuevo período de retención basada en eventos, siempre que sea mayorque el asignado en el momento de la creación del C-Clip.

l Delete: Cuando la aplicación intenta eliminar el C-Clip, deben cumplirse lassiguientes condiciones:

n Venció la retención de la política (espacio de nombres)

n Venció la retención del depósito

n Venció la retención fija

n Se activó el evento

n Vencieron la EBR configurada en el momento de la creación y todos cambiosposteriores (extensiones) en el momento del evento

La siguiente figura muestra los tres escenarios posibles para un C-Clip como parte deEBR:

l C1 tiene una retención fija o mínima que ya venció antes de que se activara elevento.

l C2 tiene una retención fija o mínima que vencerá antes de que venza la EBR.

l C3 tiene una retención fija o mínima que vencerá después de que venza la EBR.

Figura 3 Escenarios de EBR

Para los espacios de nombres que no cumplan los requisitos, los comandos deeliminación con privilegios pueden reemplazar la retención fija y variable para EBR.

Cuando se aplica la retención EBR, esta debe cumplir con la configuración delcontrolador mín./máx. para el período de retención variable.

Configuración del soporte de CAS en ECS

114 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 115: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Tabla 11 Funciones de la API de CAS para la retención basada en eventos

Función Descripción

FPClip_EnableEBRWithClass Esta función establece un C-Clip que cumple losrequisitos para recibir un evento futuro ypermite que una clase de retención basada eneventos (EBR) se asigne al C-Clip durante eltiempo de creación de este.

FPClip_EnableEBRWithPeriod Esta función establece un C-Clip que cumple losrequisitos para recibir un evento futuro ypermite que un período de retención basada eneventos (EBR) se asigne al C-Clip durante eltiempo de creación de este.

FPClip_IsEBREnabled Esta función devuelve un valor booleano queindica si un C-Clip está habilitado para laretención basada en eventos (EBR) o no.

FPClip_GetEBRClassName Esta función recupera el nombre de la política deretención basada en eventos (EBR) asignado alC-Clip.

FPClip_GetEBREventTime Esta función devuelve la hora del eventoestablecida en un C-Clip cuando el evento deretención basada en eventos (EBR) se activópara ese C-Clip.

FPClip_GetEBRPeriod Esta función devuelve el valor (en segundos) delperíodo de retención basada en eventos (EBR)asociado con un C-Clip.

FPClip_TriggerEBREvent Esta función activa el evento de un C-Clip parael cual se habilitó la retención basada en eventos(EBR).

FPClip_TriggerEBREventWithClass Esta función activa el evento de un C-Clip parael cual se habilitó la retención basada en eventos(EBR) y asigna una nueva política de EBR al C-Clip.

FPClip_TriggerEBREventWithPeriod Esta función activa el evento de un C-Clip parael cual se habilitó la retención basada en eventos(EBR) y asigna un nuevo período de EBR al C-Clip.

Retención para asuntos legalesLa retención para asuntos legales permite que las aplicaciones de CAS evitentemporalmente la eliminación de un C-Clip. La retención para asuntos legales es útilpara los datos que están sujetos a una investigación oficial, citación o consulta y queno se deben eliminar hasta que se termine la investigación. Una vez que no seanecesario retener los datos, la aplicación puede liberar la retención para asuntoslegales y el comportamiento normal de retención se reanuda. La aplicación de CAScoloca y elimina una retención para asuntos legales en el nivel de C-Clip.

Configuración del soporte de CAS en ECS

Retención avanzada para las aplicaciones de CAS: retención basada en eventos, retención para asuntos legales y controlador

mín./máx. 115

Page 116: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Nota

Incluso una eliminación con privilegios no puede eliminar un C-Clip sujeto a retenciónpara asuntos legales.

Un C-Clip puede estar sujeto a varias retenciones para asuntos legales. La aplicacióndebe generar ID únicos de retención para asuntos legales y debe poder rastrear lasretenciones para asuntos legales específicas que se asocian al C-Clip. La aplicación nopuede consultar un C-Clip para obtener esta información. Hay solo una función quedetermina el estado de la retención para asuntos legales del C-Clip. Si hay una o variasretenciones para asuntos legales en el C-Clip, esta función devuelve el valorverdadero; de lo contrario, será falso.

Cuando se utiliza la retención para asuntos legales, el ciclo de vida del C-Clip es elsiguiente:

l Crear: La aplicación crea un C-Clip nuevo y proporciona un período fijo o uno deretención basada en eventos.

l Establecer la retención para asuntos legales: Una aplicación pone el C-Clip enespera. Esta aplicación puede ser diferente de la aplicación que escribió el C-Clip.

l Liberar la retención para asuntos legales: Una aplicación libera el C-Clip. Estaaplicación puede ser diferente de la aplicación que estableció la retención paraasuntos legales o escribió el C-Clip.

l Eliminar: Cuando la aplicación intenta eliminar el C-Clip, deben cubrirse lassiguientes condiciones:

n No hay ninguna otra retención para asuntos legales pendiente en el C-Clip.

n Venció la retención de la política.

n Venció la retención del depósito estándar. (La retención del depósito estándarestá disponible para todos los tipos de objeto de ECS, pero no se recomiendapara CAS).

n Venció el período de retención fijo (función exclusiva de CAS).

n Venció la retención basada en eventos (función exclusiva de CAS).

La siguiente figura muestra los tres escenarios posibles para un C-Clip sujeto aretención para asuntos legales:

l C1 tiene una retención fija que ya venció antes de que se activara la retención.

l C2 tiene una retención fija que vencerá durante la retención.

l C3 tiene una retención fija que vencerá después de la liberación de la retención.

Configuración del soporte de CAS en ECS

116 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 117: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Figura 4 Escenarios de retención para asuntos legales

Se pueden asignar varias retenciones para asuntos legales a un C-Clip. Si este es elcaso, cada retención para asuntos legales requiere una llamada de API independientecon un identificador único para este tipo de retención.

Nota

El tamaño máximo correspondiente al ID de retención para asuntos legales es de 64caracteres. El ID de retención para asuntos legales máximo por C-Clip es de 100. Estaslimitaciones se implementan mediante la API de CAS.

Tabla 12 Funciones de la API de CAS relativas a la retención para asuntos legales

Función Descripción

FPClip_GetRetentionHold Esta función determina el estado deretención del C-Clip y devuelve los valoresverdadero o falso.

FPClip_SetRetentionHold Esta función establece o restablece unaretención en un C-Clip. En el caso de quetengan lugar varias retenciones paraasuntos legales, proporcione un ID únicopara este tipo de retención. Realice unallamada por ID en el caso de variasretenciones de este tipo.

Establecer políticas de retención de espacio de nombresProporciona instrucciones de configuración específicas de CAS para las políticas deretención del espacio de nombres.

La función de política de retención del espacio de nombres proporciona una manera dedefinir y administrar las clases de retención de CAS para todos los C-Clips creados enel espacio de nombres.

Configuración del soporte de CAS en ECS

Establecer políticas de retención de espacio de nombres 117

Page 118: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Un espacio de nombres puede tener muchas políticas de retención asociadas, dondecada política define un período de retención. Mediante la aplicación de una política deretención a una serie de C-Clips (con la API), un cambio en la política de retencióncambia el período de retención de todos los objetos relacionados con la política. ParaCAS, las clases de retención se aplican al C-Clip de un objeto mediante la aplicación. Siun objeto se encuentra en un período de retención, no se permiten las solicitudes paramodificar el objeto.

Procedimiento

1. En ECSportal, seleccione Manage > Namespace.

2. Para editar la configuración de un espacio de nombres existente, elija la acciónEdit asociada con el espacio de nombres existente.

3. Agregue y configure políticas de retención.

a. En el área de políticas de retención, seleccione Add para agregar una nuevapolítica.

b. Ingrese un nombre para la política.

c. Especifique el período para la política de retención.

Seleccione la casilla de verificación Infinite para asegurarse de que nunca seeliminen objetos con esta política.Figura 5 Nueva política de retención

4. Seleccione Save.

Configuración del soporte de CAS en ECS

118 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 119: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Figura 6 Políticas de retención para un espacio de nombres

Creación y configuración de un depósito para un usuario deCAS

Configure un depósito para que sea compatible con un usuario de CAS.

En ECS, los usuarios de administración crean depósitos y se convierten en lospropietarios del depósito. Para CAS, los usuarios de objetos se deben establecer comopropietarios del depósito. Siga este procedimiento para establecer de forma correctaun depósito de CAS y hacer que el usuario de CAS sea el propietario del depósito. Eneste ejemplo, newcasadmin1 es un usuario de administración, newcasuser1 es unusuario de objetos de CAS, y newcasns1 es el espacio de nombres. El procedimientosupone que se configuraron los dos usuarios y el espacio de nombres.

Procedimiento

1. Inicie sesión en el portal de ECS como newcasadmin1.

2. En ECSportal, seleccione Manage > Bucket.

3. Elija New Bucket.

4. Complete los campos tal como se muestra a continuación:

Campo Valor

Grupo de replicación Su grupo de replicación

Establezca el usuario actual como elpropietario del depósito

Verificar

CAS Activado

5. Elija Save.

6. Seleccione Manage > User.

7. Asegúrese de que la pestaña Object User esté activa, busque newcasuser1 yseleccione Edit.

8. En Default Bucket, escriba newcasbucket1 y seleccione Set Bucket.

9. Elija Close.

10. Seleccione Manage > Bucket.

Configuración del soporte de CAS en ECS

Creación y configuración de un depósito para un usuario de CAS 119

Page 120: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

11. Busque newcasbucket1 y seleccione Edit bucket.

12. En Bucket Owner, escriba newcasuser1.

13. Elija Save.

Configurar un usuario de objetos de CASConfigurar un usuario de objetos para que utilice CAS.

Al configurar un usuario de objetos, puede asignar características de CAS al perfil queconforma los elementos de un perfil de CAS. Podrá ver el archivo PEA resultante parasu uso en las aplicaciones de CAS.

Procedimiento

1. En ECSportal, seleccione Manage > Users.

2. Para editar la configuración de un usuario de objetos existente, elija la acciónEdit asociada con el usuario.

Figura 7 Configuración de CAS para usuarios de objetos

3. En el área de CAS, escriba una contraseña (seña secreta) o elija Generate paraque el portal cree una para usted.

4. Elija Set Password.

5. Elija Generate PEA File para generar el archivo PEA que su solicitud necesitarápara autenticarse en el almacenamiento de CAS de ECS.

6. Mediante el establecimiento de un depósito predeterminado, todas las accionesque realice el usuario que no especifiquen un depósito usarán el depósitopredeterminado especificado. Escriba el nombre del depósito predeterminado yseleccione Set Bucket.

7. Elija Add Attribute para agregar una etiqueta de metadatos al usuario.

8. Agregue el nombre y el valor de la etiqueta de metadatos.

Consulte la documentación del SDK de CAS para obtener más informaciónsobre las etiquetas de metadatos.

Configuración del soporte de CAS en ECS

120 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 121: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

9. Elija Save Metadata.

Establecer varias ACL de depósito para CASEdite lista de control de acceso de un depósito para limitar el acceso de un usuario.

Algunas ACL de depósito de ECS se mapean a permisos de CAS, y otras no tienenningún significado para los datos de CAS.

Procedimiento

1. En ECSportal, seleccione Manage > Bucket.

2. Para editar las ACL de un depósito existente, elija la acción Edit ACL asociadacon el depósito existente.

Figura 8 Editar ACL del depósito

3. Elija Edit asociado con el usuario.

Configuración del soporte de CAS en ECS

Establecer varias ACL de depósito para CAS 121

Page 122: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Figura 9 Administración de ACL de depósitos

4. Modifique los permisos.

Tabla 13 ACL de depósitos

ACL de ECS Definición de ACL

READ Funcionalidades de lectura, consultas yexistencia

WRITE Funcionalidades de escritura y de retenciónpara asuntos legales

FULL_CONTROL Lectura, eliminación, consulta, existencia,copia de clip, escritura, retención paraasuntos legales

PRIVILEDGED_WRITE Eliminación con privilegios

DELETE Delete

Configuración del soporte de CAS en ECS

122 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 123: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Nota

Otros ECS ACL no tienen ningún significado para CAS.

5. Seleccione Save.

6. También puede editar las ACL a nivel de grupo. Los grupos están predefinidos yla membresía al grupo se basa automáticamente en criterios del usuario. ElijaGroup ACLs.

7. Seleccione Add.

8. Seleccione el grupo que desea editar de la lista Group Name.

Tabla 14 Grupos de ACL de depósitos

Grupo de ACL de depósitos Descripción

público Todos los usuarios, autenticados o no.

todos los usuarios Todos los usuarios autenticados.

otro Los usuarios autenticados, pero no elpropietario del depósito.

entrega de registro No compatible.

9. Edite las ACL y seleccione Save.

API de administración de ECS que admiten usuarios de CASDescribe los recursos de la API de administración de ECS que se puede utilizar paraadministrar la configuración del usuario y del perfil de CAS.

Descripciones de recursos de la API de administración de ECS:

l GET /object/user-cas/secret/{uid}: Obtiene la seña secreta de CASpara el usuario especificado.

l GET /object/user-cas/secret/{namespace}/{uid}: Obtiene la señasecreta de CAS para el espacio de nombres y el usuario especificados.

l POST /object/user-cas/secret/{uid}: Crea o actualiza la seña secreta deCAS para un usuario especificado.

l GET /object/user-cas/secret/{namespace}/{uid}/pea: Genera unarchivo PEA para el usuario especificado.

l POST /object/user-cas/secret/{uid}/deactivate: Elimina la señasecreta de CAS para un usuario especificado.

l GET /object/user-cas/bucket/{namespace}/{uid}: Obtiene el depósitopredeterminado para el espacio de nombres y el usuario especificados.

l GET /object/user-cas/bucket/{uid}: Obtiene el depósito predeterminadopara un usuario especificado.

l POST /object/user-cas/bucket/{namespace}/{uid}: Actualiza eldepósito predeterminado para el espacio de nombres y el usuario especificados.

l GET /object/user-cas/applications/{namespace}: Obtiene lasaplicaciones registradas de CAS para un espacio de nombres especificado.

Configuración del soporte de CAS en ECS

API de administración de ECS que admiten usuarios de CAS 123

Page 124: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

l POST /object/user-cas/metadata/{namespace}/{uid}: Actualiza lasaplicaciones registradas de CAS para un espacio de nombres y un usuarioespecificados.

l GET /object/user-cas/metadata/{namespace}/{uid}: Obtiene losmetadatos del usuario de CAS para el espacio de nombres y el usuarioespecificados.

Consulte Referencia de API de REST de administración de ECS para obtener másinformación.

Compatibilidad de la API del SDK de almacenamientodireccionable por contenido (CAS)

Versiones compatiblesECS es compatible con la compilación de CAS 3.1.544 o versiones posteriores.Además, debe verificar que la aplicación de su ISV sea compatible con ECS.

En Soporte para la configuración de aplicaciones del SDK de CAS con el portal de ECSpuede obtener más información acerca del soporte de ECS CAS.

Soporte de CAS QueryCAS Query es compatible a partir de ECS 2.2.

Nota

En ECS, las operaciones de CAS Query arrojan resultados según la hora de creacióndel C-Clip existente y la hora de la eliminación del C-Clip eliminado (reflejo). En EMCCentera, las operaciones de consulta arrojan resultados basados en la hora deescritura del objeto.

API no compatibles en las versiones de ECS anteriores a ECS 3.0Las llamadas de API del SDK de CAS no son compatibles con las versiones de ECSanteriores a 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

Configuración del soporte de CAS en ECS

124 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 125: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

PARTE 5

API de administración de ECS

Capítulo 17, "Introducción a la REST API de administración de ECS"

Capítulo 18, "Autenticación con el servicio de administración de ECS"

Capítulo 19, "Resumen de la REST API de administración de ECS"

API de administración de ECS 125

Page 126: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

API de administración de ECS

126 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 127: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

CAPÍTULO 17

Introducción a la REST API de administraciónde ECS

l API de REST de administración de ECS............................................................ 128

Introducción a la REST API de administración de ECS 127

Page 128: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

API de REST de administración de ECSEn esta parte se describe cómo acceder a API de REST de administración de ECS ycómo realizar la autenticación, además de que se proporciona un resumen de las rutasde API. API de REST de administración de ECS permite que el área de almacenamientode objetos se configure y administre. Una vez que se configura el área dealmacenamiento de objetos, se ejecutan las operaciones de creación, lectura,actualización y eliminación de los objetos subsiguientes mediante los protocolos deobjetos y archivos compatibles con ECS.

Puede consultar los siguientes artículos para obtener información sobre la forma deacceder a la API de REST y autenticar:

l Autenticación con API de REST de administración de ECS en la página 130

y las rutas de API se resumen en:

l Resumen de API de REST de administración de ECS en la página 136

Además, se proporciona una referencia de la API en:

l Referencia de API de REST de administración de ECS

Referencia de API de REST de administración de ECS se genera automáticamente delcódigo fuente y proporciona una referencia para los métodos disponibles en la API.

Introducción a la REST API de administración de ECS

128 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 129: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

CAPÍTULO 18

Autenticación con el servicio de administraciónde ECS

l Autenticación con API de REST de administración de ECS...............................130

Autenticación con el servicio de administración de ECS 129

Page 130: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Autenticación con API de REST de administración de ECS

ECS utiliza un sistema de autenticación basado en token para todas sus llamadas a laAPI de REST. Se proporcionan ejemplos para la autenticación con la API de REST deECS, con y sin cookies.

Una vez que un usuario se autentica con ECS, se devuelve un token de autenticación,que puede utilizarse para autenticar al usuario en las llamadas siguientes.

l Se devuelve un código HTTP 401 si el cliente sigue automáticamente lasredirecciones, lo que indica que necesita iniciar sesión y autenticarse para obtenerun token nuevo.

l Se devuelve un código HTTP 302 si el cliente no sigue automáticamente lasredirecciones. El código 302 indica al cliente dónde puede autenticarse de nuevo.

Puede recuperar y usar tokens de autenticación:

l Si guarda el cookie X-SDS-AUTH-TOKEN de una solicitud de autenticación exitosay envía este cookie en solicitudes posteriores.

l Si lee el encabezado HTTP X-SDS-AUTH-TOKEN de una solicitud de autenticaciónexitosa y lo copia en cualquier solicitud posterior.

La API REST está disponible en el puerto :4443, y los clientes acceden a ECS mediantela emisión de una solicitud de inicio de sesión en el formulario:

https://<ECS_IP>:4443/login

Autenticación con AUTH-TOKENEste ejemplo muestra cómo utilizar tokens de autenticación mediante la lectura delencabezado HTTP X-SDS-AUTH-TOKEN de una solicitud de autenticación exitosa y lacopia de ese encabezado en una solicitud posterior. Este ejemplo no utiliza cookies.Estos ejemplos están escritos en curl y formateados para facilitar la lectura.

Este comando ejecuta un GET en el recurso /login. La opción -u indica el usuario delencabezado de autenticación básica. La designación de usuario debe incluirse en lasolicitud. Tras la autenticación exitosa, se devuelve un código HTTP 200, así como elencabezado X-SDS-AUTH-TOKEN que contiene el token codificado.

La duración predeterminada del token de la API de administración es de ocho horas, locual significa que el token deja de ser válido después de ocho horas. El tiempo deinactividad predeterminado para un token es de dos horas; el token vence después deun tiempo de inactividad de dos horas. Si un usuario utiliza un token vencido, seráredirigido a la dirección URL “/login” y el uso posterior del token vencido provocará uncódigo de error de estado HTTP 401.

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

Autenticación con el servicio de administración de ECS

130 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 131: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

< 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):

El token se puede devolver de nuevo en la próxima llamada API. Puede copiar elcontenido de X-SDS-AUTH-TOKEN y pasarlo a la siguiente solicitud a través delswitch -H de curl.

curl https://10.247.100.247:4443/object/namespaces -k -H "X-SDS-AUTH-TOKEN: BAAcOHZLaGF4MTl3eFhpY0czZ0tWUGhJV2xreUE4PQMAUAQADTEzODU0OTQ4NzYzNTICAAEABQA5dXJu OnN0b3JhZ2VvczpUb2tlbjpkYzc3ODU3Mi04NWRmLTQ2YjMtYjgwZi05YTdlNDFkY2QwZDg6AgAC0A8="

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <namespaces> <namespace> <id>ns1</id> <link rel="self" href="/object/namespaces/namespace/ns1"/> <names>ns1</name> </namespace></namespaces>

Autenticación con cookiesEste ejemplo muestra cómo utilizar tokens de autenticación guardando el cookie deuna solicitud de autenticación exitosa, para luego pasar el cookie en una solicitudposterior. Estos ejemplos están escritos en curl y formateados para facilitar la lectura.

En este ejemplo, se especifica el parámetro ?using-cookies=true para indicar quedesea recibir cookies, además del encabezado normal del protocolo HTTP. Estecomando curl guarda el token de autenticación en un archivo denominadocookiefile en el directorio actual.

curl -L --location-trusted -k https://<ECS_IP>:4443/login?using-cookies=true -u "root:Password" -c cookiefile -v

Autenticación con el servicio de administración de ECS

Autenticación con cookies 131

Page 132: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

El siguiente comando pasa el cookie con el token de autenticación a través del switch -b, y devuelve información al grupo de usuarios.

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>

Cerrar sesiónLa API de cierre de sesión termina una sesión.

Un usuario determinado tiene permitido un máximo de 100 tokens de autenticaciónsimultáneos. Pasado este límite, el sistema rechaza cualquier conexión nueva para esteusuario hasta que se liberen tokens. Pueden liberarse cuando se vencen naturalmente,o llamando explícitamente a este URI:

https://<ECS_IP>:4443/logout

Si tiene varias sesiones que se ejecutan simultáneamente, este URI fuerza laterminación de todos los tokens relacionados con el usuario actual.

GET https://<ECS_IP>:4443/logout?force=true

A continuación se muestra un ejemplo de cierre de sesión.

Solicitud

GET https://<ECS_IP>:4443/logout

X-SDS-AUTH-TOKEN:{Auth_Token}

Pase el encabezado o cookie con el token de autenticación para cerrar la sesión.

Respuesta

HTTP 200

WhoamiUn usuario de ECS puede ver su propio nombre de usuario, asociación de grupos deusuarios y las funciones mediante la llamada API whoami.

Solicitud

GET https://<ECS_IP>:4443/user/whoami

Autenticación con el servicio de administración de ECS

132 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 133: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Respuesta

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>

Este ejemplo muestra la salida whoami para el usuario raíz y para un usuario al que seasignó la función NAMESPACE_ADMIN para el espacio de nombres "ns1".

Autenticación con el servicio de administración de ECS

Whoami 133

Page 134: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Autenticación con el servicio de administración de ECS

134 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 135: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

CAPÍTULO 19

Resumen de la REST API de administración deECS

l Resumen de API de REST de administración de ECS........................................136

Resumen de la REST API de administración de ECS 135

Page 136: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Resumen de API de REST de administración de ECSAPI de REST de administración de ECS permite que el área de almacenamiento deobjetos de ECS se configure y administre.

La siguiente tabla resume API de REST de administración de ECS.

Tabla 15 API de REST de administración de ECS- resumen de métodos

Área de la API Descripción

Configuración

Certificado /object-certAPI para la administración de certificados.

/object-cert/keystoreAPI que permite especificar la cadena de certificados utilizada porEMC, y que el certificado se rote.

Propiedades deconfiguración

/config/object/propertiesAPI que permite establecer el alcance de usuario como GLOBAL oESPACIO DE NOMBRES.

En el alcance GLOBAL, los usuarios son globales y pueden compartirseentre espacios de nombres. En este caso, el espacio de nombrespredeterminado asociado a un usuario determina el espacio denombres para las operaciones de objetos, y no hay necesidad desuministrar un espacio de nombres para una operación. Si el alcancede usuario es ESPACIO DE NOMBRES, un usuario está asociado a unespacio de nombres, por lo que podría haber más de un usuario con elmismo nombre, cada uno asociado a un espacio de nombres diferente.En el modo ESPACIO DE NOMBRES, se debe proporcionar un espaciode nombres para cada operación.

Debe establecerse antes de crear el primer usuario. El valorpredeterminado es GLOBAL.

Licencia /licenseAPI que permite que se agregue una licencia y que se recuperen losdetalles de la licencia.

Característica /feature/API para recuperar los detalles de una función.

Syslog /vdc/syslog/configAPI para administrar la configuración de syslog y enviar alertas alservidor de syslog para solución de problemas y fines de depuración.

SNMP /vdc/snmp/configAPI para administrar la configuración de SNMP y enviar alertas alservidor de SNMP para solución de problemas y fines de depuración.

CAS

Resumen de la REST API de administración de ECS

136 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 137: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Tabla 15 API de REST de administración de ECS- resumen de métodos (continuación)

Área de la API Descripción

Perfil de usuario deCAS

/object/user-casAPI que permite que se asignen claves secretas a los usuarios de CASy que se genere el archivo Pool Entry Authorization (PEA).

Acceso al sistema de archivos

NFS /object/nfsAPI para habilitar la creación de una exportación de NFS en función deun depósito de ECS y para permitir que los usuarios y los grupos deUnix accedan a la exportación.

Medición

Facturación /object/billingAPI que permite la medición del uso del área de almacenamiento deobjetos a nivel de grupo de usuarios y depósito. Consulte Guía deladministrador Administrar grupos de usuarios para obtener másinformación.

Migración

Transformación /object/transformationAPI para habilitar la transformación de datos.

Monitoreo

Capacidad /object/capacityAPI para recuperar la capacidad administrada actual.

Dashboard

Alerts /vdc/alertsAPI para recuperar alertas de auditoría.

Activity /vdc/eventsAPI para devolver los eventos de auditoría para un espacio de nombresespecificado.

Multiusuario

Namespace /object/namespacesAPI para habilitar la creación y administración de un espacio denombres.

También permite fijar el período de retención para el espacio denombres. Consulte Guía del administrador Administrar grupos deusuarios para obtener más información.

Georeplicación

Grupo de replicación /data/data-service/vpoolsAPI que permite la creación y administración de grupos de replicación.

Resumen de la REST API de administración de ECS

Resumen de API de REST de administración de ECS 137

Page 138: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Tabla 15 API de REST de administración de ECS- resumen de métodos (continuación)

Área de la API Descripción

Zona de falla temporal /tempfailedzone/API que permite recuperar todas las zonas de falla temporales o laszonas de falla temporales de un grupo de replicación específico.

Aprovisionamiento

URL de base /object/baseurlAPI que permite la creación de una dirección URL base que a su vez

permite que las aplicaciones existentes trabajen con el área de

almacenamiento de objetos de ECS. Para obtener más información

sobre la dirección URL base, visite: Guía del administrador Establecer

la dirección URL base.

Depósito /object/bucketAPI de aprovisionamiento y administración de depósitos.

/object/bucket/{bucketName}/lockAPI que permite que se bloquee el acceso al depósito. Consulte Guíadel administrador Administrar grupos de usuarios para obtener másinformación.

Área dealmacenamiento dedatos

/vdc/data-storesAPI que permite la creación de áreas de almacenamiento de datos ensistemas de archivos (/vdc/data-stores/filesystems) o

en nodos genéricos (/vdc/data-stores/commodity).

Nodo /vdc/nodesAPI para recuperar los nodos que están actualmente configuradospara el clúster.

Pool dealmacenamiento

/vdc/data-services/varraysAPI que permite la creación y administración de pools dealmacenamiento.

Centro de datosvirtual

/object/vdcsPermite que se agregue un VDC y se especifiquen sus extremos y laseña secreta para la replicación de datos entre los sitios de ECS.

Almacenamiento declaves VDC

/vdc/keystoreAPI para la administración de certificados de un VDC

Soporte

Call Home /vdc/callhome/API que permite que se configure ConnectEMC y que se creeneventos de alerta para ConnectEMC.

Paquete de la CLI /cliAPI para descargar el paquete de ECS.

Administración de usuarios

Resumen de la REST API de administración de ECS

138 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 139: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Tabla 15 API de REST de administración de ECS- resumen de métodos (continuación)

Área de la API Descripción

Proveedor deautenticación

/vdc/admin/authprovidersAPI que permite que se agreguen y administren proveedores deautenticación.

Contraseña de grupo(Swift)

/object/user-passwordAPI que permite generar una contraseña para utilizarla para laautenticación de OpenStack Swift.

Secret Key /object/user-secret-keysAPI que permite asignar claves secretas a usuarios de objetos y quepermite la administración de claves secretas.

Autoservicio de clavessecretas

/object/secret-keysAPI que permite que los usuarios del cliente S3 creen una nueva señasecreta que les permita acceder a los objetos y depósitos dentro de suespacio de nombres en el área de almacenamiento de objetos.

Usuario (objeto) /object/usersAPI para crear y administrar usuarios de objetos. Los usuarios deobjetos siempre están asociados con un espacio de nombres. La APIdevuelve una seña secreta que se puede utilizar para el acceso S3. Unusuario de objetos que tiene asignada una seña secreta S3 puedecambiarla usando la API de REST.

/object/users/lock.

Permite que se bloquee el acceso del usuario.

Usuario(administración)

/vdc/usersAPI para crear y administrar usuarios de administración. Puedenasignarse usuarios de administración a la función de administrador delsistema o a la función de administrador de espacio de nombres. Lacontraseña del usuario de administración local se puede cambiar.

Resumen de la REST API de administración de ECS

Resumen de API de REST de administración de ECS 139

Page 140: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Resumen de la REST API de administración de ECS

140 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 141: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

PARTE 6

HDFS

Capítulo 20, "¿Qué es ECS HDFS?"

Capítulo 21, "Creación de un depósito para el sistema de archivos de HDFS"

Capítulo 22, "Utilice Hortonworks Ambari para configurar Hadoop con ECS HDFS"

Capítulo 23, "Configuración de la integración de ECS HDFS con un clúster simple deHadoop"

Capítulo 24, "Configuración de la integración de ECS HDFS a un clúster de Hadoop(kerberizado) seguro"

Capítulo 25, "Guía sobre la configuración de Kerberos"

Capítulo 26, "Solución de problemas"

Capítulo 27, "Propiedades de core-site.xml de Hadoop para ECS HDFS"

Capítulo 28, "Ejemplo de metadatos de depósito seguro"

HDFS 141

Page 142: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

HDFS

142 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 143: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

CAPÍTULO 20

¿Qué es ECS HDFS?

l ¿Qué es ECS HDFS?........................................................................................ 144l Configuración de Hadoop para usar ECS HDFS ............................................... 145l ECSURI de HDFS para el acceso al sistema de archivos................................... 146l Modos de autenticación de Hadoop.................................................................. 146l Migración de un clúster simple a uno de Hadoop de Kerberos.......................... 150l Interacción del sistema de archivos................................................................... 151l Aplicaciones de Hadoop compatibles y no compatibles..................................... 151

¿Qué es ECS HDFS? 143

Page 144: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

¿Qué es ECS HDFS?ECS HDFS es un sistema de archivos compatible con Hadoop (HCFS) que le permiteejecutar aplicaciones Hadoop 2.X en la parte superior de la infraestructura dealmacenamiento de ECS.

Puede configurar su distribución de Hadoop para que se ejecute en contra del sistemade archivos incorporado de Hadoop, en contra de ECS HDFS o en contra de cualquiercombinación de HDFS, ECS HDFS u otros sistemas de archivo de Hadoop compatiblesque haya disponibles en su ambiente. La siguiente figura ilustra cómo ECS HDFS seintegra con un clúster de Hadoop existente.

Figura 10 Integración de ECS HDFS en un clúster de Hadoop

Hadoop Cluster

ResourceManager

Hadoop Client

ECS Client Library

Node Manager

MapReduce Task

Appliance Commodity

MapReduce Request

Node Manager

MapReduce Task

Node Manager

MapReduce Task

ECS data nodes

ECS data nodes

ECS data nodes

ECS Client Library ECS Client Library

En un ambiente de Hadoop configurado para utilizar ECS HDFS, cada uno de los nodosde datos de ECS HDFS funciona como un NameNode de Hadoop tradicional, lo quesignifica que todos los nodos de datos de ECS HDFS son capaces de aceptarsolicitudes de HDFS y proporcionarles servicio.

Cuando configura el cliente de Hadoop para utilizar ECS HDFS en lugar de HDFStradicional, la configuración indica que ECS HDFS haga toda la actividad de HDFS. Encada nodo cliente de ECS HDFS, cualquier componente tradicional de Hadoop

¿Qué es ECS HDFS?

144 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 145: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

utilizaría ECS HDFS Client Library (el archivo JAR ViPRFS) para ejecutar la actividadde HDFS.

Para integrar ECS HDFS en un ambiente de Hadoop existente, debe tener lo siguiente:

l Un clúster de Hadoop ya instalado y configurado. Las siguientes distribuciones soncompatibles:

n Hortonworks 2.0, 2.1, 2.2, 2.3

Nota

Cloudera o Pivotal HD no han certificado oficialmente a HDFS en ECS. Esto esparte del plan de trabajo futuro de ECS Hadoop.

Cuando utilice la distribución de Hortonworks, puede usar Hortonworks Ambari.Hortonworks 2.3 (Hadoop 2.7) viene con un paquete de discos de ECS que sepuede activar para simplificar la integración con ECS HDFS. La instrucción parautilizar esta distribución se proporciona en: Implementación de un clúster deHortonworks con Ambari en la página 164.

l Hadoop instalado y configurado para ser compatible con ECS HDFS, que requiere:

n Uno o más depósitos activados por sistemas de archivos que se utilizan para elacceso de HDFS.

n ECS Client Library se implementa en el clúster.

l Para un clúster de Hadoop que utiliza Kerberos o Kerberos con Active Directory.

n Las entidades de seguridad de Kerberos se implementan en los nodos de ECS

n Los metadatos seguros se implementan en el depósito.

Configuración de Hadoop para usar ECS HDFSHadoop almacena la información de configuración de sistema en una cantidad dearchivos, tales como core-site.xml, hdfs-site.xml, hive-site.xml, etc. Serequiere la edición de core-site.xml como parte de la configuración de ECS HDFS.

Existen varios tipos de propiedades para añadir o modificar en core-site.xml,incluso:

l Clases de Java de ECS HDFS: Este conjunto de propiedades define las clases deimplementación de ECS HDFS que están contenidas en ECS HDFS Client Library.Son obligatorias.

l Propiedades de ubicación de sistema de archivos: Estas propiedades definen elURI del sistema de archivos (esquema y autoridad) que se debe usar cuando seejecutan los trabajos de Hadoop, además de las direcciones IP en los nodos dedatos ECS para un sistema de archivos específico de ECS.

l Propiedades principales de alcance y servicio de Kerberos: Se requieren estaspropiedades solo cuando se ejecuta en un ambiente Hadoop donde está presenteKerberos. Estas propiedades mapean los usuarios de Hadoop y de ECS HDFS.

core-site.xml reside en cada nodo del clúster de Hadoop. Debe añadir las mismaspropiedades en cada instancia de core-site.xml.

¿Qué es ECS HDFS?

Configuración de Hadoop para usar ECS HDFS 145

Page 146: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Nota

Cuando se modifican los archivos de configuración, se recomienda siempre utilizar lainterfaz de administración en lugar de los archivos de edición manual. Además, loscambios realizados mediante la interfaz de administración se conservan en todo elclúster.

ECSURI de HDFS para el acceso al sistema de archivosDespués de configurar Hadoop para utilizar el sistema de archivos de ECS, puedeacceder a él al especificar la URI de ECS HDFS con viprfs:// como el esquema yuna combinación de depósito de ECS, espacio de nombres de grupo de usuarios ynombre de instalación definido por el usuario para la autoridad.

La URI de ECS HDFS se ve de la siguiente manera:

viprfs://bucket_name.namespace.installation/path

bucket_name corresponde a un depósito habilitado para HDFS. Contiene los datos quedesea analizar con Hadoop. namespace corresponde a un espacio de nombres degrupo de usuarios, y installation_name es un nombre que asigna a un conjuntoespecífico de nodos de ECS o un equilibrador de carga.ECS HDFS resuelve elinstallation_name para un conjunto de nodos de ECS o un equilibrador de carga con lapropiedad hosts fs.vipr.installation.[installation_name].hosts, que incluye lasdirecciones IP de los nodos de ECS o equilibrador de carga.

Si el installation_name mapea a un conjunto de nodos de ECSECS, puede especificarla frecuencia de consultas de ECS respecto de la lista de nodos activos ajustandofs.vipr.installation.[installation_name].resolution en dynamic, y fs.vipr.installation.[installation_name].resolution.dynamic.time_to_live_ms para especificar la frecuenciade consultas de ECS respecto de la lista de nodos activos.

Con un ambiente Hadoop que utiliza seguridad simple, puede especificar la URI de ECSHDFS como el sistema de archivos predeterminado en fijándolo como el valor de lapropiedad fs.defaultFS, pero no es un requisito. Si no especifica ECSHDFS como elsistema de archivos predeterminado, debe utilizar la URI completa, incluida la ruta,cada vez que acceda a los datos de ECS. Si tiene aplicaciones existentes que yautilizan otro sistema de archivos predeterminado, debe actualizar dichas aplicaciones.

Modos de autenticación de HadoopHadoop es compatible con dos modos diferentes de operación para determinar laidentidad de un usuario, de manera simple y mediante Kerberos.

Simple

En el modo simple, la identidad de un proceso del cliente está determinada por elsistema operativo del host. En sistemas similares a Unix, el nombre de usuario esel equivalente de 'whoami'.

Kerberos

En la operación kerberizada, la identidad de un proceso del cliente estádeterminada por sus credenciales de Kerberos. Por ejemplo, en un ambientekerberizado, un usuario puede utilizar la utilidad kinit para obtener un vale deconcesión de vales (TGT) de Kerberos y utilizar klist para determinar el principalactual. Cuando se mapea un principal de Kerberos a un nombre de usuario de

¿Qué es ECS HDFS?

146 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 147: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

HDFS, mediante la propiedad de Hadoop auth_to_local, se descartan todos loscomponentes, con excepción del primario. Por ejemplo, un principal de todd/[email protected] funcionará como el nombre de usuario simple quese mencionó en HDFS.

ECS HDFS se integra con clusters de Hadoop configurados para utilizar modos deautenticación simple o de Kerberos.

Cuando el clúster de Hadoop está protegido mediante el uso de Kerberos, ECS sepuede configurar para otorgar acceso a los usuarios con los principales de Kerberos enel formulario [email protected]; de manera alternativa, cuando ECS utiliza AD paraautenticar a los usuarios, se puede configurar una relación de confianza unidireccionalentre el ambiente de Kerberos y AD, de modo que los usuarios puedan autenticarsecon sus credenciales de AD, en el formulario [email protected].

Los permisos de archivos y directorios se determinan mediante la umask(fs.permissions.umask-mode). El umask recomendado es 022.

Acceso al depósito como un sistema de archivosEl depósito de ECS proporciona el almacenamiento del sistema de archivos de HDFS.Cuando se crea una depósito, es una indicación para que ECS lo tenga disponible comoun sistema de archivos.

Cuando otorga acceso al sistema de archivos, ECS (a través de la biblioteca declientes de ECS) utiliza los permisos configurados del depósito y la configuracióndentro del archivo core-site.xml Hadoop para determinar el acceso. Debeasegurarse de haber configurado el acceso suficiente para permitir que los usuarios yservicios de Hadoop puedan crear archivos y directorios en el sistema de archivos raíz(el depósito).

El propietario del depósito es el propietario del sistema de archivos raíz, y los permisosasignados a ese propietario en el depósito se traducen en permisos en el sistema dearchivos raíz. Además, se deben asignar las ACL del depósito de modo que cadausuario que requiera acceder al sistema de archivos de HDFS tenga permiso en eldepósito. Esto puede realizarse mediante la adición explícita de ACL de usuario paracada usuario en el depósito, o mediante la especificación de ACL de grupopersonalizado. Consulte ACL de grupo personalizado y grupo predeterminado deldepósito en la página 147. El propietario del depósito debe ser un usuario de objetosde ECS; otros usuarios no lo cumplen y pueden ser nombres de usuario de Unix delclúster de Hadoop.

Una vez que los usuarios tienen acceso al sistema de archivos, ya sea debido a que loposeen o se agregaron como usuarios para el depósito, o bien porque son miembrosdel grupo al que pertenece el sistema de archivos, los permisos de los archivos ydirectorios que creen estarán determinados por la propiedad umask en core-site.xml.

ECS también es compatible con el mecanismo de superusuario y supergrupo parapermitir el acceso a HDFS.

ACL de grupo personalizado y grupo predeterminado del depósitoPuede activar el acceso al depósito según las ACL de usuario o mediante la asignaciónde ACL de grupo personalizado. Los grupos personalizados son nombres de grupos deusuarios según se define en el clúster de Hadoop y permiten que los usuarios deHadoop accedan al depósito mediante HDFS.

Los grupos típicos definidos en el clúster de Hadoop son hdfs (con hdfs de usuario),hadoop (por lo general, incluye todos los usuarios de servicio) y los usuarios (incluye

¿Qué es ECS HDFS?

Acceso al depósito como un sistema de archivos 147

Page 148: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

otros usuarios que no son de servicio y que accederán a las aplicaciones en el clústerde Hadoop). Puede crear grupos correspondientes en el Portal de ECS y asignarlespermisos.

También es posible asignar un grupo predeterminado al depósito. El grupopredeterminado será el grupo asignado al sistema de archivos raíz “/”. Por ejemplo, siel propietario del depósito es hdfs y el grupo predeterminado está configurado comohadoop, “/” se establecerá en hdfs:hadoop en usuario y grupo, respectivamente. Ungrupo predeterminado también es un grupo personalizado y se mostrará en la ACL degrupo personalizado.

Si no se define un grupo predeterminado, la raíz del sistema de archivos no tendráningún grupo, como se muestra a continuación.

drwx---rwx+ - hdfs 0 2015-12-09 12:30 /

Si se define un grupo predeterminado de “hadoop”, la propiedad y los permisos seráncomo se muestra a continuación.

drwxrwxrwx+ - hdfs hadoop 0 2015-12-09 12:28 /

Los directorios creados en la raíz no heredan estos permisos.

Si no se asigna un grupo predeterminado, el propietario del depósito (el propietario delsistema de archivos raíz) puede asignar un grupo cuando acceda al HDFS desdeHadoop con hdfs dfs - chgrp y hdfs dfs - chmod.

Superusuario y supergrupo de Hadoop

El superusuario en un ambiente Hadoop es el usuario que inicia el NameNode. Por logeneral, hdfs o [email protected]. Con respecto a ECS HDFS, el superusuario es elpropietario del depósito. Por lo tanto, si desea que el superusuario de Hadoop tengaacceso de superusuario al depósito de ECS, debe asegurarse de que hdfs,[email protected] o [email protected] sean propietarios del depósito en caso deutilizar Active Directory para autenticar usuarios en el ambiente de Hadoop.

Para asegurarse de que el cliente de Hadoop tenga acceso de superusuario, tambiénpuede configurar un grupo de superusuarios mediante la propiedaddfs.permissions.superusergroup en core-site.xml. En el modo simple, lacomprobación para determinar si un usuario es miembro del supergrupo se realiza en elcliente mediante la verificación del valor de la propiedad de Hadoopdfs.permissions.supergroup. En el modo de Kerberos, la comprobación paradeterminar si un usuario es miembro del supergrupo se realiza en el servidor de ECS.

En general, cuando los depósitos están configurados para que el superusuario deHadoop o un grupo de superusuarios de Hadoop accedan a ellos, el superusuariotendrá acceso completo (lectura y escritura) al depósito. Los usuarios sin privilegiosde superusuario normalmente tendrán acceso de lectura, pero eso dependerá de cómose creó el depósito. Un usuario no debe ser un usuario de objetos de ECS para obteneracceso al depósito. El nombre debe coincidir con un usuario local de Unix, Kerberos oAD (según el modo de autenticación que se utilice).

Como parte de las mejores prácticas, se debe garantizar que el usuario o el principal dehdfs sea el propietario del depósito (superusuario) o un miembro de un grupo desuperusuarios.

¿Qué es ECS HDFS?

148 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 149: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Acceso multiprotocolo (crosshead)ECS es compatible con la capacidad de escribir datos en un depósito mediante elprotocolo de S3 y hacer que los datos estén disponibles como archivos a través deHDFS.

El acceso multiprotocolo (también denominado acceso crosshead) significa que losobjetos escritos en el depósito mediante el protocolo de S3 pueden convertirse en elasunto de las tareas de Hadoop, como MapReduce. De manera similar, los directorios ylos archivos que HDFS escribe se pueden leer y modificar mediante los clientes de S3.

A fin de que se pueda acceder a los datos escritos con S3 como archivos, eladministrador del depósito puede configurar un grupo predeterminado en el depósito ylos permisos predeterminados para los archivos y directorios que son propiedad de esegrupo. Este grupo de Unix predeterminado se asigna a los objetos cuando se crean apartir de S3, para que cuando HDFS acceda a ellos no tengan solo un propietario, sinoque también puedan tener la membresía de grupo y los permisos que permiten elacceso desde el clúster de Hadoop.

Los archivos que se crean mediante HDFS y a los que se accede mediante el protocolode S3 no se verán afectados por los permisos predeterminados; los permisos solo seaplican cuando los archivos se crean mediante el protocolo de S3.

Modo de autenticación Kerberos de HadoopCuando se integran Kerberos y el servidor Active Directory de ECS, el dominio deKerberos ofrece un solo espacio de nombres de usuarios para que los usuariosautenticados con kinit de Hadoop sean reconocidos como usuarios acreditados deECS.

En un clúster Hadoop que se ejecuta en modo Kerberos, debe haber una confianzaunidireccional entre el dominio de Kerberos y el dominio de Active Directory paraautenticar a los usuarios de ECS.

Las siguientes propiedades de traducción de identidad en core-site.xml se utilizanpara garantizar la traducción de usuario Hadoop a ECS adecuada:

l fs.permissions.umask-mode: Establezca el valor en 027.

l fs.viprfs.auth.anonymous_translation: Establezca el valor en CURRENT_USER.

l fs.viprfs.auth.identity_translation: Establezca el valor a CURRENT_USER_REALMpara que el dominio de usuarios se detecte automáticamente.

Además, debe establecer las siguientes propiedades en core-site.xml para definirun principal de servicio:

l viprfs.security.principal

Usuario proxyECS HDFS es compatible con el usuario proxy de Hadoop.

Un usuario proxy permite a un superusuario de Hadoop enviar trabajos o acceder aHDFS en nombre de otro usuario. La función del usuario proxy se puede comparar conlas funcionalidades del “usuario real” de Unix o Linux, en las que cuando se ejecuta uncomando como un usuario se asume la identidad de un usuario diferente, según seidentifica en la configuración de permisos en el archivo ejecutable.

Puede configurar los usuarios proxy para la suplantación de identidad segura según elespacio de nombres (o el depósito). Los usuarios proxy también son compatibles enmodo simple y de Kerberos. En ambos modos, el administrador puede restringir las

¿Qué es ECS HDFS?

Acceso multiprotocolo (crosshead) 149

Page 150: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

suplantaciones de identidad del proxy mediante las propiedades de“hadoop.proxyuser.*.*”.

Usuario de equivalenciaECS convierte a tres principios parte a dos directores de parte.

Un Kerberos principal, generalmente, está en el formulario primary/instance@realm, apesar de que la instancia no es necesario, loprimary@realmprincipio se aplica atodos los hosts en el dominio. Si se especifica la instancia, puede utilizarse paradesignar un host específico, comojoe/[email protected] o joe/[email protected]. Estos dos principios son para el mismo usuario primario (joe), pero están dirigidos a solo se otorga autenticación en los hosts (host1 o host2).

Este tipo de usuario principal se recomienda proporcionar un mayor nivel de seguridad.Desde la perspectiva ECS, cada principal tendría que se agregarán al ECS. Esto seconvierte en bastante engorrosa, por lo que la función de usuario de equivalenciapermite que la autorización de ECS que se realizarán mediante el uso de un principalde dos partes (primary@realm), incluso si se utilizan tres partes principales.

Compatibilidad con SymLinkEn HDFS estándar, un enlace simbólico que no especifica la URI completa a un archivoindica una ruta en la misma instancia de HDFS.

La misma regla se aplica a ECS HDFS. Cuando no especifica la URI completa en unenlace simbólico, ECS HDFS usa el espacio de nombres y el depósito actuales como laraíz. Para proporcionar un enlace simbólico a un archivo fuera del espacio de nombresy la categoría actuales, debe proporcionar la URI completa que incluye el esquema y laautoridad.

Nota

Hadoop 2.2 no es compatible con SymLinks.

Migración de un clúster simple a uno de Hadoop de KerberosECS proporciona soporte para la migración de un ambiente Hadoop simple a unambiente Hadoop seguro mediante Kerberos.

Cuando ECS HDFS se integra a un ambiente Hadoop que utiliza la seguridad simple,los archivos y directorios que los procesos y usuarios de Hadoop crearon seránpropiedad de usuarios no seguros. Si posteriormente migra el clúster de Hadoop parautilizar la seguridad de Kerberos, los archivos y directorios que se escriban en ECSHDFS ya no serán accesibles para esos usuarios.

ECS ofrece una función de migración integrada que le permite proporcionar a ECS unmapeo entre nombres cortos y principales de Kerberos, de modo que se puedaacceder a los archivos pertenecientes a los nombres cortos no seguros como elprincipal de Kerberos mapeado.

Cuando se tiene solo una pequeña cantidad de archivos escritos por usuarios denombre corto, se recomienda utilzar el comando chown para que sean propiedad delprincipal de Kerberos. Sin embargo, cuando se tiene una gran cantidad de archivos, lafunción de migración implica que no es necesario cambiar la propiedad.

Esta función no está implementada para los depósitos, por lo que deberá cambiar laACL del depósito para permitir que los principales de Kerberos accedan si se confía el

¿Qué es ECS HDFS?

150 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 151: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

acceso a los usuarios. Sin embargo, si utiliza la membresía de grupo como el medioprincipal para permitir el acceso, no tendrá que cambiar la ACL de depósito.

ECS permite el uso de grupos para simplificar el acceso a los depósitos, archivos ydirectorios. Los grupos siempre utilizan nombres simples de Unix, de modo que elnombre del grupo asociado con un depósito, archivo o directorio será el mismo cuandose acceda a ellos desde un clúster simple o kerberizado. Cuando se accede desde unambiente simple, la membresía de grupo se determina en el cuadro de Unix; cuando seaccede desde un clúster kerberizado puede configurar la membresía de grupomediante la asignación del mapeo.

Si se utilizan credenciales de Active Directory, el mapeo entre los principales de AD ylos principales de Unix se logra mediante la eliminación del sufijo de dominio, por lo queel usuario [email protected] se convierte en hdfs. Este no es tan flexible comocuando se utiliza el mapeo del principal de Kerberos que permite mapeos tales [email protected] para hdfs.

Al usar grupos con Active Directory, se debe haber configurado un proveedor deautenticación en ECS, de modo que se pueda verificar la membresía del grupo.

Interacción del sistema de archivosCuando interactúa directamente con ECS HDFS, quizás note las siguientes diferenciasen comparación con la interacción con el sistema de archivos estándar de HDFS:

l Las aplicaciones que esperan que el sistema de archivos sea una instancia deDistributedFileSystem no funcionan. Las aplicaciones codificadas para trabajar conla implementación de HDFS incorporado requieren cambios para utilizar ECSHDFS.

l ECS HDFS no es compatible con las sumas de verificación de los datos.

l Cuando utilice la función listCorruptFileBlocks, todos los bloques se informancomo bueno porque ECS HDFS no tiene noción de los bloques dañados.

l El factor de replicación siempre se informa como una constante N, donde N = 1.Los datos están protegidos por ECSSLA, no por la replicación de Hadoop.

Aplicaciones de Hadoop compatibles y no compatiblesECS HDFS es compatible con la mayoría de las aplicaciones en el ecosistema deHadoop.

Aplicaciones compatiblesSon compatibles las siguientes aplicaciones en el ecosistema de Hadoop:

l HDFS

l MapRedeuce

l Yarn

l Pig

l Hive

l HBase

Aplicaciones incompatiblesNo son compatibles las siguientes aplicaciones en el ecosistema de Hadoop:

l HttpFS

¿Qué es ECS HDFS?

Interacción del sistema de archivos 151

Page 152: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

l Tonalidad

l Cloudera Impala

¿Qué es ECS HDFS?

152 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 153: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

CAPÍTULO 21

Creación de un depósito para el sistema dearchivos de HDFS

l Creación de un depósito mediante el portal de .................................................154l Ejemplos de permisos de depósitos de Hadoop y ECS...................................... 159

Creación de un depósito para el sistema de archivos de HDFS 153

Page 154: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Creación de un depósito mediante el portal deUtilice el Portal de ECS para crear una categoría configurada para su uso con HDFS.

Antes de comenzar

l Debe ser un administrador de espacio de nombres o un administrador del sistemapara crear un depósito en el portal de ECS.

l Si es un administrador de espacio de nombres puede crear depósitos en el espaciode nombres.

l Si es un administrador del sistema puede crear un depósito que pertenezca acualquier espacio de nombres.

Deberá asegurarse de que los usuarios de Hadoop y de servicios tengan acceso alsistema de archivos HDFS (la categoría) y que los archivos y directorios que creensean accesibles para los grupos y usuarios correspondientes.

Puede hacer esto mediante uno de los siguientes procedimientos:

l Haga que al propietario de la categoría el mismo que el Hadoop superusuario, por logeneral, "hdfs" o "[email protected]".

l Active el acceso a la categoría por membresía de grupo:

n Asignar un grupo predeterminado a la categoría. Esto se asignaráautomáticamente las ACL del grupo de personalizado.

n Después de creación de la categoría add Custom grupo ACL para todos losgrupos que necesitan obtener acceso.

l Activar el acceso para personas con la adición de las ACL de usuario a la categoría.

l Asegúrese de que los usuarios de Hadoop que necesitan acceso de superusuario aHDFS son parte de la supergroup de Hadoop.

Si desea que los datos de objetos escritos en la categoría mediante protocolos deobjetos para obtener acceso desde HDFS, debe asegurarse de que un grupopredeterminado se asigna a la categoría y ese archivo predeterminado y seestablezcan permisos de directorio para el grupo.

Puede leer más información acerca de los usuarios y permisos en Acceso al depósitocomo un sistema de archivos en la página 147 y se muestran en la categoría típicopermisos de usuario Ejemplos de permisos de depósitos de Hadoop y ECS en la página159.

Procedimiento

1. En el portal de ECS, seleccione Manage > Buckets > New Bucket.

2. Ingrese un nombre en Name para.

Nota

No debe utilizar guiones bajos en los nombres de las categorías, ya que la claseJava del URI no los admite. Por ejemplo, viprfs://my_bucket.ns.site/no funcionará debido a que es un URI no válido y Hadoop no lo comprenderá.

3. Especifique el espacio de nombres que la categoría pertenecerán al.

4. Seleccione un grupo de replicación o deje en blanco para utilizar el grupo dereplicación de predeterminado para el espacio de nombres.

Creación de un depósito para el sistema de archivos de HDFS

154 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 155: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

5. Ingrese el nombre del titular de la categoría.

Para un depósito de HDFS, el propietario de la categoría suele ser "hdfs" o"[email protected]" para las categorías de Kerberos. El usuario de Hadoophdfs se requieren privilegios de superusuario en HDFS y esto puede lograrsehaciendo que el propietario de la categoría de hdfs. Es posible que otrosusuarios de Hadoop también requieren privilegios de superusuario y se puedenotorgar privilegios de estos mediante la asignación de los usuarios a un grupo ydecisiones que un grupo de superusuario de grupo.

6. No active CAS.

Nota

Una categoría que está destinada a uso como HDFS no puede usarse para CAS.El control de CAS se desactiva cuando se activa el sistema de archivos.

7. Permitir que cualquier otra función de la categoría que necesite.

Puede activar cualquiera de las siguientes funciones en un depósito de HDFS:

l Cuota

l Cifrado del lado del servidor

l Búsqueda de metadatos

l Acceso durante una interrupción

l Cumplimiento de normas (ver nota)

l Retención del depósito

Consulte Guía del administrador Crear y administrar depósitos para obtenerinformación sobre cada uno de estos ajustes y cómo configurarlos.

Nota

No es posible escribir una categoría que está activado el cumplimiento denormas a mediante el protocolo HDFS. Sin embargo, los datos escritos medianteprotocolos de objetos se pueden leer desde HDFS.

8. Seleccione Enabled para el sistema de archivos.

Una vez activada, los controles para configurar un grupo predeterminado para elsistema de archivos/categoría y para asignar permisos de grupo para archivos ydirectorios creados en la categoría están disponibles.

9. En el panel sistema de archivos, que se muestra a continuación, escriba unnombre para la categoría de Default Group.

Creación de un depósito para el sistema de archivos de HDFS

Creación de un depósito mediante el portal de 155

Page 156: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Este grupo será el grupo asociado con el sistema de archivos de la raíz HDFS ypermite a los usuarios de Hadoop que son miembros del grupo para obteneracceso a HDFS.

Es posible que un grupo, como "hdfs" o "hadoop" a la que pertenecen losservicios que necesita acceder a los datos en el HDFS, pero puede ser cualquiernombre de grupo tiene sentido para su configuración de Hadoop. Por ejemplo, eladministrador podría querer todos los archivos de S3 cargados a la categoríaque se asignará a grupo 'S3DataUsers'. Todos los archivos de S3 tendrán estegrupo asignado a ellos. En el nodo de Hadoop, el Administrador de Hadooptendrán los usuarios que son miembros del grupo 'S3DataUsers'. S3DataUserspuede ser un grupo de Linux, o un grupo de Active Directory. Cuando losusuarios de Hadoop desean acceder a los datos de S3, podrán hacerlo debido aque los archivos se cargan y asignados a ese grupo

En la creación de la categoría, se debe especificar este grupo. Si no lo está, elgrupo tendría que se asignará más adelante desde Hadoop por el propietario delsistema de archivos.

10. Configure los permisos predeterminados para archivos y directorios creados enla categoría utilizando el protocolo de objeto.

Estos configuración se usan para aplicar los permisos de grupo de Unix a objetoscreados mediante protocolos de objetos. Estos permisos se aplicarán al grupode HDFS (el grupo predeterminado de categoría) cuando se enumera el objeto oel directorio de Hadoop. Puede consultar Acceso multiprotocolo (crosshead) enla página 149 para obtener más información sobre cómo configurar el grupoDefault Group y permisos para el sistema de archivos.

a. Definir los permisos de archivo de grupo, haga clic en los botones de permisoadecuado.

Normalmente, se establece a lectura y permisos de ejecución.

b. Definir los permisos de directorio de grupo, haga clic en los botones depermiso adecuado.

Normalmente, se establece a lectura y permisos de ejecución.

11. Seleccione Save para crear el depósito.

Creación de un depósito para el sistema de archivos de HDFS

156 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 157: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Configurar las ACL del depósito de un grupo personalizadoEl Portal de ECS permite configurar la ACL del grupo para un depósito. Las ACL de undepósito se pueden otorgar a un grupo de usuarios (ACL de grupo personalizado), ausuarios individuales o a una combinación de ambos. Por ejemplo, puede otorgarleacceso completo al depósito a un grupo de usuarios, pero también puede restringir (oincluso denegar) el acceso al depósito a usuarios individuales que sean parte de esegrupo.

Antes de comenzar

l Debe ser un administrador de espacio de nombres o un administrador del sistemapara editar la ACL de grupo de un depósito.

l Si es un administrador de espacio de nombres, puede editar la configuración deACL de grupo de los depósitos que pertenezcan a su espacio de nombres.

l Si es un administrador del sistema, puede editar la configuración de ACL de grupode un depósito que pertenezca a cualquier espacio de nombres.

Cuando se accede al depósito a través de HDFS, con el acceso multiprotocolo de ECS,los miembros del grupo de Unix podrán acceder al depósito.

Procedimiento

1. En el Portal de ECS, seleccione Manage > Buckets.

2. En la tabla de depósitos, seleccione la acción Edit ACL para el depósito en elque desee cambiar la configuración.

3. Para configurar la ACL para un grupo personalizado, seleccione Custom GroupUser ACLs.

4. En la página Custom Group User ACLs, seleccione Add.

Creación de un depósito para el sistema de archivos de HDFS

Configurar las ACL del depósito de un grupo personalizado 157

Page 158: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

5. Ingrese el nombre del grupo.

Este nombre puede ser un grupo de Unix/Linux o un grupo de Active Directory.

6. Configure los permisos para el grupo.

Como mínimo, es recomendable seleccionar las opciones Read, Write, Execute yRead ACL.

7. Seleccione Save.

Permisos de ACL del depósito para un usuarioEl portal de ECS permite que la ACL de un depósito se configure para un usuario opara un grupo predefinido. El propietario de la categoría se le asignan permisosautomáticamente. Otros usuarios de Hadoop se pueden asignar las ACL de usuariopara permitir el acceso a la categoría/sistema de archivos, de manera alternativa quepueda obtener acceso a la categoría por ser un miembro del grupo que se ha asignadola ACL del grupo de personalizado.

Antes de comenzar

l Debe ser un administrador de espacio de nombres o un administrador del sistemapara editar la ACL de un depósito.

l Si es un administrador de espacio de nombres, puede editar la configuración deACL de los depósitos que pertenezcan a su espacio de nombres.

l Si es un administrador del sistema, puede editar la configuración de ACL de undepósito que pertenezca a cualquier espacio de nombres.

Creación de un depósito para el sistema de archivos de HDFS

158 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 159: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Procedimiento

1. En el portal de ECS, seleccione Manage > Buckets.

2. En la tabla de depósitos, seleccione la acción Edit ACL para el depósito en elque desee cambiar la configuración.

3. Para establecer los permisos de ACL para un usuario, seleccione el botón UserACLs.

4. Puede editar los permisos de un usuario que ya tenga asignados permisos, opuede agregar un usuario al que desee asignar permisos.

l Para establecer (o eliminar) permisos de ACL para un usuario que ya tengapermisos, seleccione Edit (o Remove) en la columna Action de la tabla de ACL.

l Para agregar un usuario al que desee asignar permisos, seleccione Add.

El usuario que haya definido como propietario del depósito ya debe tenerasignados los permisos predeterminados.

La categoría que se muestra a continuación es propiedad de los usuarios de"hdfs" y, como el propietario, se ha proporcionado en el control completo.Control completo se traduce en permisos de lectura-escritura ejecutar en unambiente Hadoop/Unix. Usuario que ha sido darle "sally" lectura-permisos deejecución para permitir que el usuario acceder a la categoría.

Se proporciona más información sobre los privilegios de ACL en Guía del administrador Crear y administrar depósitos.

5. Si agregó una ACL, ingrese el nombre de usuario del usuario al que se aplicaránlos permisos.

6. Especifique los permisos que desee aplicar al usuario.

7. Seleccione Save.

Ejemplos de permisos de depósitos de Hadoop y ECSAquí se proporcionan ejemplos de la relación entre los usuarios de Hadoop y losgrupos, así como de los usuarios y grupos respecto al permiso asignado para accederal depósito través de las ACL de usuario de ECS y las ACL del grupo personalizado.

En la creación de depósitos, el propietario del depósito y el grupo predeterminadodetermina el propietario y la asignación de grupo para el depósito cuando se accede

Creación de un depósito para el sistema de archivos de HDFS

Ejemplos de permisos de depósitos de Hadoop y ECS 159

Page 160: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

mediante HDFS y las ACL se asignan automáticamente a ellos. Un depósito debe tenersiempre un propietario; sin embargo, no se tiene que asignar un grupo predeterminado.Se pueden asignar ACL en el depósito a otros usuarios y grupos (llamados grupospersonalizados), además de al propietario del depósito y al grupo predeterminado. LasACL que asignan de esta manera se traducen en permisos para los usuarios deHadoop.

Tabla 16 Ejemplos de permisos de depósitos para acceder al sistema de archivos en modo simple

Usuarios y grupos Hadoop Permisos dedepósitos

Acceso al depósito o alsistema de archivos

Acceso al depósito mediante la ACL del grupo

Usuarios (servicio)

hdfs. mapred, yarn, hive, pig

Usuarios (aplicaciones)

sally, fred

Grupos

hdfs (hdfs)

hadoop (hdfs, mapred,yarn, hive, pig)

usuarios (sally, fred)

Supergrupo

hdfs

Propietario deldepósito

hdfs

Grupopredeterminado

ACL del grupopersonalizado

hadoop, usuarios

ACL de usuario

hdfs(propietario)

Las ACL de grupo personalizadose configuran en el depósito parahabilitar al grupo de usuarios yhadoop a tener permisos sobre elsistema de archivos del depósito oraíz

Este ejemplo asume que hdfs es elsuperusuario, el usuario que inicióel namenode.

Depósito creado por el usuario s3, acceso crosshead

Usuarios (servicio)

hdfs. mapred, yarn, hive, pig

Usuarios (aplicaciones)

sally, fred

Grupos

hdfs (hdfs)

hadoop (hdfs, mapred,yarn, hive, pig)

usuarios (sally, fred)

Supergrupo

hdfs

Propietario deldepósito

s3user

Grupopredeterminado

hadoop

ACL del grupopersonalizado

hadoop(predeterminado)

ACL de usuario

s3user(propietario),sally, fred

Cuando desea que los objetosescritos por un usuario de s3 seanaccesibles como archivos deHDFS, se debe definir un grupopredeterminado (hadoop), demodo que se otorguen lospermisos a los usuarios y serviciosde Hadoop sobre los archivosdebido a la membresía de grupo.

El grupo predeterminado tieneautomáticamente las ACL delgrupo personalizado en eldepósito o sistema de archivos.Como está configurado el grupopredeterminado, el sistema dearchivos raíz tendrá 777:

drwxrwxrwx+ - s3user hadoop 0 2015-12-09 12:28 /

Se puede otorgar acceso a losusuarios mediante la adición deACL de usuario o de grupo

Creación de un depósito para el sistema de archivos de HDFS

160 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 161: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Tabla 16 Ejemplos de permisos de depósitos para acceder al sistema de archivos en modosimple (continuación)

Usuarios y grupos Hadoop Permisos dedepósitos

Acceso al depósito o alsistema de archivos

personalizado para el grupo al quepertenecen los usuarios.

Tabla 17 Ejemplos de permisos de depósitos para acceder al sistema de archivos en modoKerberos

Usuario Hadoop Permisos dedepósitos

Acceso al depósito o alsistema de archivos

Usuarios (servicio)

[email protected]@REALM.COM,[email protected],[email protected],[email protected]

Usuarios (aplicaciones)

[email protected],[email protected], [email protected]

Grupos

hdfs([email protected])

hadoop([email protected],[email protected],[email protected],[email protected],[email protected])

usuarios([email protected],[email protected])

Supergrupo

hdfs

Propietario deldepósito

[email protected]

Grupopredeterminado

hadoop

ACL del grupopersonalizado

hadoop(predeterminado), usuarios

ACL de usuario

[email protected] (propietario)

Las ACL de grupo personalizadose configuran en el depósito parahabilitar al grupo de usuarios yhadoop a tener permisos sobre elsistema de archivos del depósito oraíz

La información del usuario desdeel clúster de Hadoop debe estardisponible para ECS, a fin de quepueda proporcionar accesoseguro al depósito. Seproporciona información acercade estos metadatos en: Ejemplosde permisos de depósitos deHadoop y ECS en la página 159 yun archivo de metadatos deejemplo se proporcionan aquí.

Creación de un depósito para el sistema de archivos de HDFS

Ejemplos de permisos de depósitos de Hadoop y ECS 161

Page 162: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Creación de un depósito para el sistema de archivos de HDFS

162 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 163: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

CAPÍTULO 22

Utilice Hortonworks Ambari para configurarHadoop con ECS HDFS

l Implementación de un clúster de Hortonworks con Ambari...............................164l Descargar Ambari............................................................................................. 164l Descargue ECS HDFS Client Library.................................................................164l Configurar un catálogo local desde el cual desea implementar la librería de cliente

de ECS............................................................................................................. 165l Instale el servidor de Ambari .............................................................................165l Activar la plataforma de Ambari Hadoop ECS................................................... 165l Instalación manual del agente de Ambari.......................................................... 166l Instalación de Hadoop ......................................................................................167

Utilice Hortonworks Ambari para configurar Hadoop con ECS HDFS 163

Page 164: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Implementación de un clúster de Hortonworks con AmbariAmbari facilita la implementación de un clúster de Hortonworks Hadoop y utiliza elconcepto de plataforma para reunir los servicios que se requieren para una versiónespecífica de Hadoop. Hortonworks 2.3 (Hadoop 2.7) proporciona una plataforma deHadoop personalizada para ECS que simplifica la integración de Hadoop a ECS. Paraotras versiones de Hortonworks puede utilizar Ambari en su modo normal.

La plataforma de Hortonworks Hadoop ECS (HDP ECS) facilita la integración de ECSHDFS a Hadoop mediante la implementación de ECS Client Library en todos los nodosde Hadoop y la simplificación de la configuración del clúster para utilizar ECS HDFS.

Para implementar y configurar la plataforma de Hortonworks HDP ECS, ejecute lossiguientes pasos:

1. Descargar Ambari

2. Descargue ECS HDFS Client Library

3. Configure un repositorio local desde el cual desea implementar ECS Client Library

4. Instale el servidor de Ambari

5. Active la plataforma de Ambari ECS

6. Instale el agente de Ambari de forma manual

7. Instale el clúster de Hadoop

Descargar AmbariDescargue Ambari 2.2.

Ambari puede utilizarse para instalar y administrar una distribución de Hadoop (HDP).Ambari 2.2 proporciona la capacidad de instalar la plataforma ECS de HadoopHortonworks.

Puede descargar el repositorio de Ambari en el siguiente vínculo:

http://hortonworks.com/hdp/downloads/

Debe descargar el repositorio de Ambari para todos los nodos en el clúster a fin depermitir que el servidor Ambari se instale en el nodo de servidor y que el agente deAmbari se instale en todos los nodos.

Descargue ECS HDFS Client LibraryDescargue ECS HDFS Client Library RPM desde la zona de soporte de ECS.

http://support.emc.com

Utilice Hortonworks Ambari para configurar Hadoop con ECS HDFS

164 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 165: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Configurar un catálogo local desde el cual deseaimplementar la librería de cliente de ECS

Configure un repositorio local desde el cual Ambari puede implementar la librería decliente de ECS con la plataforma Hadoop.

Antes de comenzar

Configuración de un repositorio normalmente implica el uso de un gerente de paquetepara crear un conjunto de metadatos acerca de los paquetes de contenidos en undirectorio del repositorio y proporciona un mecanismo para acceder al directorio delrepositorio, como a través de HTTP, o mediante una red.

Hay una cantidad de herramientas que puede utilizarse para crear un repositorio.Información sobre el uso de yum se proporciona crear un catálogo de paquetes aquí.

Procedimiento

1. Cree el repositorio local.

2. Agregue el RPM de librería de cliente de ECS en el repositorio local.

Instale el servidor de AmbariInstale el servidor de Ambari.

Los comandos básicos para la instalación y configuración de la Ambari servidor segúnlo proporcionado en este procedimiento. Puede encontrar información más completaen la documentación de Hortonworks, aquí.

Procedimiento

1. Instale el MDM con el siguiente comando:

yum install ambari-server -y

2. Configurar el Ambari servidor, como se indica a continuación.

ambari-server setup -s

3. Inicie el servidor de Ambari, como se indica a continuación.

ambari-server start

Activar la plataforma de Ambari Hadoop ECSLa plataforma de Hadoop Hortonworks (HDP) ECS está desactivada de formapredeterminada y debe activarse antes de se pueda seleccionar para laimplementación. Se puede activar la plataforma desde la línea de comandos.

Utilice Hortonworks Ambari para configurar Hadoop con ECS HDFS

Configurar un catálogo local desde el cual desea implementar la librería de cliente de ECS 165

Page 166: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Procedimiento

1. Desde la máquina del servidor de Ambari, abra una línea de comandos.

2. Ejecute el siguiente comando:

ambari-server enable-stack --stack HDP --version 2.3.ECS

Si desea activar más de una plataforma, puede incluir la opción --versionpara cada plataforma adicional. Por ejemplo:

ambari-server enable-stack --stack HDP --version 2.3.ECS --version <stack_name>

Instalación manual del agente de AmbariLos pasos para instalar el agente de Ambari de forma manual en cada nodo seproporcionan en este procedimiento.

Antes de comenzar

l El repositorio de Ambari debe estar presente en cada nodo del clúster a fin deinstalar el agente en el nodo.

Procedimiento

1. En uno de los hosts subordinados de Ambari, abra una línea de comandos.

2. Instale el agente de Ambari con el siguiente comando:

yum install ambari-agent -y

3. Obtenga el nombre de host del nodo del servidor de Ambari.

Puede hacerlo mediante el comando hostname.

4. Editar el archivo ambari-agent.ini para especificar el nombre de host delservidor de Ambari.

Por ejemplo, si utiliza vi, se escribiría:

vi /etc/ambari-agent/conf/ambari-agent.ini

El nombre de host del servidor en los parámetros de [server] es el que semuestra a continuación. Debe reemplazar el “localhost” con el nombre de hostdel servidor de Ambari.

[server]hostname=localhosturl_port=8440secure_url_port=8441

Utilice Hortonworks Ambari para configurar Hadoop con ECS HDFS

166 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 167: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

5. Inicie al agente de Ambari.

ambari-agent start

6. Repita estos pasos para cada nodo subordinado de Ambari. Si desea utilizar elnodo del servidor de Ambari como un nodo de datos en el clúster de Hadoop,también debe instalar el agente en esa máquina.

Instalación de HadoopInstale el clúster de Hadoop.

Procedimiento

1. Siga las instrucciones del asistente de Ambari para instalar un clúster deHadoop.

Los pasos siguientes identifican las principales funciones de integración de ECS.

Consulte la documentación de Hortonworks cuando requiera aclaración sobrelos requisitos de algún paso.

2. Cuando se le solicite que indique la plataforma que ha de implementarse,seleccione la plataforma de HDP ECS.

Por ejemplo, HDP 2.3.ECS, como se muestra a continuación.

3. Especifique el repositorio donde se ubica el RPM de la ECS Client Library deECS.

Para su sistema operativo, reemplace http://ECS_CLIENT_REPO/ con laubicación del repositorio donde se ubica el RPM de la ECS Client Library.

Utilice Hortonworks Ambari para configurar Hadoop con ECS HDFS

Instalación de Hadoop 167

Page 168: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

4. Ingrese la lista de hosts para el clúster Haddop y seleccione Perform ManualRegistration en Host Registration Information.

Nota

Si crea una clave de protocolo SSH y la implementa en todos los nodos, puedeutilizar este mecanismo para implementar el agente de Ambari en todos losnodos. Como se implementó de forma manual, esto no es necesario.

5. Deberá proporcionar las propiedades para personalizar las operaciones de losservicios de Hadoop Hive y Hbase.

Utilice Hortonworks Ambari para configurar Hadoop con ECS HDFS

168 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 169: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

a. Para Hive, deberá proporcionar una base de datos de la tienda de metadatos.

Puede indicarle a Ambari que cree una nueva base de datos (nueva base dedatos de MySQL). En cuyo caso, simplemente deberá proporcionar unacontraseña para la nueva base de datos. Como alternativa, puede indicarle aAmbari que utilice una base de datos existente.

b. Para Hbase, se debe designar hbase.rootdir en un depósito de ECS(sistema de archivos HDFS).

Por ejemplo:

viprfs://mybucket.mynamespace.Site1/apps/hbase/data

6. Deberá proporcionar las propiedades para personalizar las operaciones delservicio de Hadoop HDFS/ECS.

Como parte de la personalización de la plataforma de Hortonworks HadoopECS, se agregaron propiedades de core-site específicas de ECS. Algunas deestas propiedades son fijas y no deben modificarse nunca. Algunas estáconfiguradas en los valores predeterminados que son adecuados para unambiente de modo simple de Hadoop y solo deben modificarse cuando seconfigure el ambiente para utilizar la seguridad de Kerberos.

Algunos parámetros son específicos de su clúster y los debe proporcionar.

Ingrese las propiedades de configuración de core-site de ECS/HDFS paraconocer las propiedades faltantes.

a. Ingrese un valor para la propiedad del sistema de archivos predeterminada:fs.defaultFS

Esto es:

viprfs://<bucket>.<namespace>.<installation>

Utilice Hortonworks Ambari para configurar Hadoop con ECS HDFS

Instalación de Hadoop 169

Page 170: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Por ejemplo:

viprfs://mybucket.mynamespace.Site1

b. Ingrese las direcciones de nodo ECS en la propiedadfs.vipr.installation.<site>.hosts (de forma predeterminada default:fs.vipr.installation.Site1.hosts).

Esto puede ser una lista de direcciones IP separadas por comas, por ejemplo:

203.0.113.10,203.0.113.11,203.0.113.12

Puede obtener más información acerca de las propiedades en Edición delarchivo Hadoop core-site.xml en la página 175, que describe la configuraciónde propiedades para un clúster simple de Hadoop.

Resultados

Una vez instalada, se puede personalizar la interfaz de Ambari para el clúster deHadoop ECS, de modo que el servicio de HDFS se muestre como ECS. Además, laspropiedades core-site.xml específicas de ECS que normalmente se deberíanagregar ya están presentes, y se han establecido los valores predeterminados para lamayoría de los parámetros.La interfaz personalizada se muestra a continuación:

Utilice Hortonworks Ambari para configurar Hadoop con ECS HDFS

170 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 171: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

CAPÍTULO 23

Configuración de la integración de ECS HDFScon un clúster simple de Hadoop

l Configuración de la integración de ECS HDFS con un clúster simple de Hadoop..........................................................................................................................172

l Planificación de la integración de ECS HDFS y Hadoop.................................... 172l Obtención del paquete de instalación y de compatibilidad de ECS HDFS.......... 173l Implementación de la biblioteca de clientes HDFS de ECS................................ 173l Edición del archivo Hadoop core-site.xml......................................................... 175l Edición de HBASE hbase-site.xml..................................................................... 179l Reiniciar y verificar el acceso............................................................................179

Configuración de la integración de ECS HDFS con un clúster simple de Hadoop 171

Page 172: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Configuración de la integración de ECS HDFS con un clústersimple de Hadoop

Este procedimiento describe cómo configurar su distribuciónHadoop existente parautilizar la infraestructura de almacenamiento deECS con ECS HDFS.

Si está utilizando la distribución de Hortonworks Ambari, puede utilizar elprocedimiento descrito en Implementación de un clúster de Hortonworks conAmbari en la página 164 para instalar y configurar Hadoop.

Para ejecutar este procedimiento de integración, debe tener:

l Conocimiento práctico de su distribución de Hadoop y sus herramientas asociadas.

l Las credenciales de Hadoop que le permiten iniciar sesión en los nodos de Hadoop,modificar los archivos de sistema de Hadoop e iniciar y detener servicios deHadoop.

Se deben realizar los siguientes pasos:

1. Planificación de la integración de ECS HDFS y Hadoop en la página 172

2. Obtención del paquete de instalación y de compatibilidad de ECS HDFS en lapágina 173

3. Implementación de la biblioteca de clientes HDFS de ECS en la página 173 (no esnecesario si ha utilizado Ambari Hortoworks para ECS)

4. Edición del archivo Hadoop core-site.xml en la página 175

5. Edición de HBASE hbase-site.xml en la página 179

6. Reiniciar y verificar el acceso en la página 179

Planificación de la integración de ECS HDFS y HadoopUtilice esta lista para verificar que tiene la información necesaria a fin de garantizaruna integración correcta.

Tabla 18 Prerrequisitos de configuración de ECS HDFS

Element Qué se debe hacer

Cluster de Hadoop Verifique que el cluster esté instalado y en funcionamiento.

Registre las credenciales de administrador para utilizarlasposteriormente en este procedimiento.

Clúster ECS:nodosECS

Registre las direcciones IP del nodo ECS para utilizarlasposteriormente en este procedimiento.

Clúster ECS: depósito HDFS requiere que se cree un depósito habilitado para HDFS dentrode un grupo de replicación de ECS, y se accede al depósito como unsistema de archivos utilizando el nombre del espacio de nombres y deldepósito.

Registre el nombre del depósito.

Clúster ECS: espaciode nombre del grupode usuarios

Verifique que un espacio de nombres de grupo de usuarios estéconfigurado. Registre el nombre.

Configuración de la integración de ECS HDFS con un clúster simple de Hadoop

172 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 173: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Obtención del paquete de instalación y de compatibilidad deECS HDFS

Las herramientas de soporte de HDFS y de ECS HDFS Client Library se proporcionanen un archivo ZIP del cliente HDFS, hdfsclient-<ECS version>-<version>.zip, que puede descargar desde las páginas de soporte de ECS ensupport.emc.com.

El archivo ZIP contiene los directorios /playbooks y /client. Antes dedescomprimir el archivo, cree un directorio para guardar el contenido del archivo .zip(su herramienta de descompresión podría hacerlo por usted) y luego extraiga elcontenido en ese directorio. Una vez que haya extraído los archivos, los directorioscontendrán lo siguiente:

l /playbooks: contiene guías Ansible para configurar un ambiente Hadoop seguropara comunicarse con ECS HDFS.

l /client: Contiene los archivos siguientes:

n Archivos JAR de ECS Client Library (ViPPRFS) (viprfs-client-<ECSversion>-hadoop-<Hadoop version>.jar): Se utilizan para configurarvarias distribuciones de Hadoop.

Implementación de la biblioteca de clientes HDFS de ECSUtilice este procedimiento para colocar los archivos JAR de la biblioteca de clientesHDFS de ECS en la ruta de clase de cada nodo del cliente en el clúster de Hadoop.

Antes de comenzar

Obtenga la biblioteca de clientes HDFS de ECS para la distribución de Hadoop desdeel sitio de soporte de EMC para ECS como se describe en Obtención del paquete deinstalación y de compatibilidad de ECS HDFS en la página 173.

La biblioteca de clientes HDFS utiliza la siguiente convención denomenclatura viprfs-client-<ECS version>-hadoop-<Hadoop version>.jar y los archivos JAR para su uso con cada versión se enumeran en la siguiente tabla.

Tabla 19 Biblioteca de clientes HDFS de ECS

Distribución deHadoop

Versión ECS HDFS JAR

Hortonworks HWX 2.0 viprfs-client-<ECS version>-hadoop-2.2.jar

HWX 2.1 viprfs-client-<ECS version>-hadoop-2.3.jar (Hadoop 2.5 - Nocliente 2.4)

HWX 2.2 viprfs-client-<ECS version>-hadoop-2.6.jar

HWX 2.3 viprfs-client-<ECS version>-hadoop-2.7.jar

Configuración de la integración de ECS HDFS con un clúster simple de Hadoop

Obtención del paquete de instalación y de compatibilidad de ECS HDFS 173

Page 174: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Nota

l Cuando actualiza a una versión posterior de ECS, debe implementar ECS HDFSClient Library para la versión a la que ha actualizado.

l Para Hortonworks 2.3 (Hadoop 2.7), puede usar Ambari para instalar una versiónHDP que está preconfigurada de acuerdo con la biblioteca de clientes de ECS.

Procedimiento

1. Inicie sesión en un nodo cliente de ECS.

2. Ejecute el comando classpath para obtener la lista de directorios en elclasspath:

# hadoop classpath3. Copie los archivos JAR de la biblioteca de clientes HDFS de ECS en una de las

carpetas enumeradas por el comando classpath que ocurre después de lacarpeta /conf.

Por ejemplo, el resultado del comando classpath normalmente se ve así:

/usr/hdp/2.2.0.0-1256/hadoop/conf:/usr/hdp/2.2.0.0-1256/hadoop/lib/*:/usr/hdp/2.2.0.0-1256/hadoop/.//*:/usr/hdp/2.2.0.0-1256/hadoop-hdfs/./:/usr/hdp/2.2.0.0-1256/hadoop-hdfs/lib/*:/

Con la carpeta /conf primero. Se sugiere agregar el archivo JAR de labiblioteca de clientes a la primera carpeta /lib, la cual es, por lo general, segúnse indica en la tabla a continuación.

Distribución de ECS Ubicación de la ruta de clases (sugerida)

Hortonworks /usr/hdp/<version>/hadoop/lib

4. Repita este procedimiento en cada nodo cliente de ECS.

5. Actualizar los parámetros de configuración de classpath para MapReduce, yarn,y especificar también de forma explícita la ruta al archivo JAR para Tez.

A continuación, se proporciona un ejemplo de estos parámetros deconfiguración:

mapreduce.application.classpath$PWD/mr-framework/hadoop/share/hadoop/mapreduce/*:$PWD/mr-framework/hadoop/share/hadoop/mapreduce/lib/*:$PWD/mr-framework/hadoop/share/hadoop/common/*:$PWD/mr-framework/hadoop/share/hadoop/common/lib/*:$PWD/mr-framework/hadoop/share/hadoop/yarn/*:$PWD/mr-framework/hadoop/share/hadoop/yarn/lib/*:$PWD/mr-framework/hadoop/share/hadoop/hdfs/*:$PWD/mr-framework/hadoop/share/hadoop/hdfs/lib/*:$PWD/mr-framework/hadoop/share/hadoop/tools/lib/*:/usr/hdp/${hdp.version}/hadoop/lib/hadoop-lzo-0.6.0.${hdp.version}.jar:/etc/hadoop/conf/secure:/usr/hdp/2.3.2.0-2950/hadoop/lib/*

Configuración de la integración de ECS HDFS con un clúster simple de Hadoop

174 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 175: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

yarn.application.classpath$HADOOP_CONF_DIR,/usr/hdp/current/hadoop-client/*,/usr/hdp/current/hadoop-client/lib/*,/usr/hdp/current/hadoop-hdfs-client/*,/usr/hdp/current/hadoop-hdfs-client/lib/*,/usr/hdp/current/hadoop-yarn-client/*,/usr/hdp/current/hadoop-yarn-client/lib/*,/usr/hdp/2.3.2.0-2950/hadoop/lib/*

tez.cluster.additional.classpath.prefix/usr/hdp/${hdp.version}/hadoop/lib/hadoop-lzo-0.6.0.${hdp.version}.jar:/etc/hadoop/conf/secure:/usr/hdp/2.3.2.0-2950/hadoop/lib/viprfs-client-2.2.0.0-hadoop-2.7.jar

Edición del archivo Hadoop core-site.xmlUtilice este procedimiento para actualizar core-site.xml con las propiedadesnecesarias para integrar ECS HDFS con un clúster Hadoop que utilice el modo deautenticación simple.

Antes de comenzar

l Siempre es preferible agregar o administrar estas propiedades mediante unainterfaz del usuario de administración de Hadoop para reducir la posibilidad deerrores y garantizar que estos cambios sean persistentes en todo el clúster. Editarmanualmente los archivos en múltiples nodos de Hadoop es un proceso difícil ypropenso a errores. Debe tener un conjunto de parámetros de conexión del usuarioque lo habiliten a iniciar sesión en la interfaz del usuario de administración para sudistribución.

l Si modifica core-site.xml directamente, debe tener un conjunto de parámetrosde conexión del usuario que lo habiliten a iniciar sesión en los nodos de Hadoop ymodificar core-site.xml.

Algunas propiedades son específicas de ECS y, por lo general, necesitan agregarse acore-site.xml. Si utiliza la plataforma de Hortonworks Ambari Hadoop ECS, losparámetros específicos de ECS ya estarán presentes.

Si planea editar core-site.xml directamente, la ubicación de core-site.xmldepende de la distribución que utilice, como se muestra en la siguiente tabla.

Tabla 20 ubicaciones de core-site.xml

Distribuciónde Hadoop

ubicación de core-site.xml Nodos poractualizar

Hortonworks /etc/hadoop/conf Todos los nodos

core-site.xml reside en cada uno de los nodos en el clúster de Hadoop. Debemodificar las mismas propiedades en cada instancia. Puede hacer el cambio en unnodo, y luego utilizar el comando de copia segura (scp) para copiar el archivo en losdemás nodos del clúster.

Consulte la referencia de las propiedades de core_site.xml para obtener másinformación sobre cada propiedad que debe configurar.

Procedimiento

1. Si está utilizando una interfaz de administración, como Ambari: Inicie sesióncomo administrador y vaya a la página de configuración de HDFS.

Configuración de la integración de ECS HDFS con un clúster simple de Hadoop

Edición del archivo Hadoop core-site.xml 175

Page 176: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

2. Si planea realizar los cambios mediante edición manual de core-site.xml,siga estos pasos:

a. Inicie sesión en uno de los nodos de HDFS donde se encuentra core-site.xml.

b. Haga una copia de respaldo de core-site.xml.

cp core-site.xml core-site.backupc. Con el editor de texto que desee, abra core-site.xml para editarlo.

3. Agregue las propiedades y los valores siguientes para definir clases de Java queimplementan el sistema de archivos de ECS HDFS:

<property><name>fs.viprfs.impl</name><value>com.emc.hadoop.fs.vipr.ViPRFileSystem</value></property>

<property> <name>fs.AbstractFileSystem.viprfs.impl</name><value>com.emc.hadoop.fs.vipr.ViPRAbstractFileSystem</value></property>

4. Agregue la propiedad fs.vipr.installations. En el siguiente ejemplo, el valor seconfigura en Site1.

<property> <name>fs.vipr.installations</name> <value>Site1</value></property>

5. Agregue la propiedad fs.vipr.installation.[installation_name].hosts como unalista de nodos de datos de ECS separados por comas o de direcciones IP delbalanceador de carga separadas por comas. En el siguiente ejemplo,installation_name se configura en Site1.

<property> <name>fs.vipr.installation.Site1.hosts</name> <value>203.0.113.10,203.0.113.11,203.0.113.12</value></property>

6. Agregue la propiedad fs.vipr.installation.[installation_name].resolution yconfigúrela en uno de los siguientes valores:

Opción Descripción

dynamic Utilícela cuando tiene acceso a nodos de datos de ECS directamentesin un balanceador de carga.

fixed Utilícela cuando tiene acceso a nodos de datos de ECS con unbalanceador de carga.

En el siguiente ejemplo, installation_name se configura en Site1.

<property> <name>fs.vipr.installation.Site1.resolution</name>

Configuración de la integración de ECS HDFS con un clúster simple de Hadoop

176 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 177: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

<value>dynamic</value></property>

a. Si configura fs.vipr.installation.[installation_name].resolution como dynamic,agregue la propiedad fs.vipr.installation.[installation_name].resolution.dynamic.time_to_live_ms a fin de especificarla frecuencia de consulta a ECS para la lista de nodos activos.

En el siguiente ejemplo, installation_name se configura en Site1.

<property><name>fs.vipr.installation.Site1.resolution.dynamic.time_to_live_ms</name><value>900000</value></property>

7. Busque la propiedad fs.defaultFS y modifique el valor para especificar el URI delsistema de archivos de ECS.

Esta configuración es opcional, y puede especificar la URL completa del sistemade archivos para conectarse a ViPRFS ECS.

Utiliza el siguiente formato: viprfs://<bucket_name.namespace.installation_name, donde

l bucket_name: Es el nombre del depósito que contiene los datos que deseautilizar cuando ejecute tareas de Hadoop. Si se ejecuta en modo deautenticación simple, el encargado del depósito debe otorgar permiso aTodos. En el siguiente ejemplo, el bucket_name se configura en mybucket.

l namespace: Es el espacio de nombres del grupo de usuarios donde residebucket_name. En el siguiente ejemplo, el espacio de nombres se configuraen mynamespace.

l installation_name: El valor especificado por la propiedad defs.vipr.installations. En el siguiente ejemplo, installation_name se configuraen Site1.

<property> <name>fs.defaultFS</name> <value>viprfs://mybucket.mynamespace.Site1/</value></property>

8. Busque fs.permissions.umask-mode y establezca el valor en 022.

En algunas configuraciones, esta propiedad quizás ya no exista. Si no existe,agréguelo.

<property> <name>fs.permissions.umask-mode</name> <value>022</value></property>

9. Agregue la propiedad fs.viprfs.auth.anonymous_translation; se utiliza paraespecificar el propietario y el grupo de un archivo o directorio creado medianteHDFS.

Configuración de la integración de ECS HDFS con un clúster simple de Hadoop

Edición del archivo Hadoop core-site.xml 177

Page 178: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Nota

Antes de ECS 2.2, este parámetro se utilizaba para asignar un propietario a losarchivos y directorios que se crearon sin uno (archivos de propiedad anónima),de modo que el usuario actual tuviera permiso para modificarlos. Los archivos ydirectorios ya no se crean de manera anónima y tienen un propietario asignadosegún la configuración de este parámetro.

Opción Descripción

LOCAL_USER Utilice esta configuración con un clúster de Hadoop queutilice la seguridad simple. Asigna el usuario y gruopo deUnix del clúster de Hadoop a directorios y archivosrecientemente creados.

CURRENT_USER Utilice esta configuración para un clúster de Hadoopkerberizado. Asigna la entidad de seguridad de Kerberos([email protected]) como el propietario del archivo odirectorio y utiliza el grupo que se asignó como el valorpredeterminado para el depósito.

NONE (default) (En desuso) Anteriormente, indicaba que no se debíaejecutar ninguna asignación desde los objetos de propiedadanónima al usuario actual.

<property> <name>fs.viprfs.auth.anonymous_translation</name> <value>LOCAL_USER</value></property>

10. Agregue la propiedad fs.viprfs.auth.identity_translation. Proporciona unamanera de asignar usuarios a un dominio cuando Kerberos no está presente.

Opción Descripción

CURRENT_USER_REALM Utilice esta configuración para un clúster deHadoop kerberizado. Cuando se especifica, sedetecta automáticamente el dominio.

NONE (default) Utilice esta configuración con un clúster deHadoop que utilice la seguridad simple. Con estaconfiguración, ECS HDFS no ejecuta latraducción de dominio.

FIXED_REALM (En desuso) Proporcionaba la capacidad deintegrar como parte del código el dominio delusuario mediante la propiedadfs.viprfs.auth.realm.

<property> <name>fs.viprfs.auth.identity_translation</name> <value>NONE</value></property>

11. Guarde core-site.xml.

Configuración de la integración de ECS HDFS con un clúster simple de Hadoop

178 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 179: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

12. Actualice core-site.xml en los nodos requeridos del clúster de Hadoop.

13. Utilice Hortonworks Ambari para actualizar core-site.xml con el mismoconjunto de propiedades y valores.

Edición de HBASE hbase-site.xmlCuando utiliza HBASE con ECS HDFS, debe establecer hbase.rootdir en hbase-site.xml con el mismo valor que la propiedad core-site.xml fs.defaultFS.

hbase-site.xml se encuentra en una las siguientes ubicaciones:

Tabla 21 ubicaciones de hbase-site.xml

Distribución deHadoop

ubicación de hbase-site.xml

Hortonworks /etc/hbase/conf/

Procedimiento

1. Abra hbase-site.xml.

2. Configure la propiedad hbase.rootdir en el mismo valor que fs.defaultFSagregando /hbase como el sufijo.

3. Guarde los cambios.

4. Reinicie los servicios para la distribución.

Distribución de Hadoop Descripción

Hortonworks# bin/start-hbase.sh

Ejemplo 1 entrada hbase.rootdir

<property> <name>hbase.rootdir</name> <value>viprfs://testbucket.s3.testsite/hbase</value></property>

Reiniciar y verificar el accesoUna vez ejecutados los pasos de configuración, puede reiniciar los servicios de Hadoopy comprobar que dispone de acceso a HDFS.

Cuando el sistema se configura para utilizar ECS HDFS, el NameNode de HDFS puedefallar en el inicio. Cuando ECS HDFS se configura como el HDFS, ECS HDFS ejecutatodas las funciones de NameNode y no requiere que el NameNode esté activo.

Procedimiento

1. Reinicie los servicios Hadoop.

Normalmente, esto incluirá a HDFS, MapReduce, Yarn y HBase.

Configuración de la integración de ECS HDFS con un clúster simple de Hadoop

Edición de HBASE hbase-site.xml 179

Page 180: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Si se reinician los servicios manualmente, puede consultar la tabla acontinuación.

Distribución de Hadoop Comandos

Hortonworks # stop-all.sh# start-all.sh

2. Pruebe la configuración ejecutando el siguiente comando para obtener una listade directorios:

# hdfs dfs -ls viprfs://mybucket.mynamespace.Site1/

13/12/13 22:20:37 INFO vipr.ViPRFileSystem: Initialized ViPRFS for viprfs://mybucket.mynamespace.Site1/

Si tiene fs.defaultFS, puede utilizar:# hdfs dfs -ls /

Configuración de la integración de ECS HDFS con un clúster simple de Hadoop

180 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 181: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

CAPÍTULO 24

Configuración de la integración de ECS HDFS aun clúster de Hadoop (kerberizado) seguro

l Integrar el clúster de Hadoop seguro a ECS HDFS ...........................................182l Planear la migración desde un clúster simple a uno de Kerberos....................... 182l Asignar nombres de grupo................................................................................ 183l Configuración de los nodos ECS con el principal del servicio de ECS................183l Asegurar el depósito de ECS con metadatos.....................................................187l Edite core-site.xml............................................................................................ 191l Reiniciar y verificar el acceso............................................................................195

Configuración de la integración de ECS HDFS a un clúster de Hadoop (kerberizado) seguro 181

Page 182: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Integrar el clúster de Hadoop seguro a ECS HDFSEste procedimiento describe cómo integrar su distribución de Hadoop existente, lacual está asegurada mediante Kerberos, con ECS HDFS.

También puede utilizar este procedimiento si configuró ECS HDFS para que funcionecon un clúster de Hadoop configurado para la autenticación simple y migró el clústerde Hadoop para que utilice la autenticación de Kerberos.

Antes de ejecutar los pasos de integración:

l Compruebe que un KDC de Kerberos esté instalado y configurado para manejar laautenticación de las entidades de seguridad de servicio de Hadoop. Si utiliza ActiveDirectory para autenticar a los usuarios de ECS, debe establecer una confianzaentre dominios entre el dominio de Kerberos y el dominio de usuario ECS. Seproporciona ayuda con la creación de KDC de Kerberos y la configuración de laconfianza en Guía sobre la configuración de Kerberos en la página 198.

l Asegúrese de haber creado un depósito para el sistema de archivos de HDFS(consulte Creación de un depósito mediante el portal de en la página 154)

l Asegúrese de haber leído las reglas para la planificación de la integración (consulte Planificación de la integración de ECS HDFS y Hadoop en la página 172).

l Asegúrese de haber descargado el paquete de instalación y de soporte (consulte Obtención del paquete de instalación y de compatibilidad de ECS HDFS en lapágina 173).

Para integrar ECS HDFS a su clúster de Hadoop, complete las siguientes tareas:

1. Planear la migración desde un clúster simple a uno de Kerberos en la página 182

2. Asignar nombres de grupo en la página 183

3. Configuración de los nodos ECS con el principal del servicio de ECS en la página183

4. Asegurar el depósito de ECS con metadatos en la página 187

5. Reiniciar y verificar el acceso en la página 195

Planear la migración desde un clúster simple a uno deKerberos

ECS es compatible con la migración desde un clúster de Hadoop que utiliza laseguridad simple a un clúster de Hadoop protegido por Kerberos.

Si migra desde un ambiente simple a uno seguro, debe leer la sección sobre migraciónen: Migración de un clúster simple a uno de Hadoop de Kerberos en la página 150.

En general, la función de migración de ECS permitirá a los usuarios de Kerberos elacceso a los archivos y directorios de manera transparente. No obstante, se aplican lassiguientes notas:

l Si migra el clúster de Hadoop a Kerberos y, a continuación, reinicia el clúster, losprocesos como MapReduce no podrán acceder a los directorios que creóanteriormente. Debe esperar hasta que haya configurado ECS HDFS con esteprocedimiento antes de reiniciar Hadoop.

Configuración de la integración de ECS HDFS a un clúster de Hadoop (kerberizado) seguro

182 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 183: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

l A fin de que los usuarios y los procesos puedan acceder al depósito, deben sermiembros del grupo que tiene acceso a este; de otro modo, deberá cambiar lasACL del depósito para que los usuarios de Kerberos tengan acceso.

Asignar nombres de grupo

ECS debe poder asignar los detalles de grupo a las entidades de seguridad de serviciode Hadoop como hdfs, hive, etc. Si utiliza Active Directory, la información de grupo sepuede encontrar desde dos fuentes diferentes: los metadatos del depósito o ActiveDirectory. ECS determina qué origen utilizar desde los ajustes de configuración deparámetros en el archivo de configuración /opt/storageos/conf/hdfssvc.confque se encuentra en la sección [hdfs.fs.request].

Si desea que ECS utilice los metadatos del depósito para obtener información degrupo (si está disponible) en lugar de que lo haga Active Directory, defina el parámetrode la siguiente manera:

[hdfs.fs.request]prefer_secure_metadata_bucket_for_groups = true

Si desea que ECS determine la información de grupo desde Active Directory en lugarde que lo hagan los metadatos del depósito, defina el parámetro de la siguientemanera:

[hdfs.fs.request]prefer_secure_metadata_bucket_for_groups = false

El valor predeterminado es verdadero, por lo que si no se define este valor, ECSdeterminará los detalles del grupo para una entidad de seguridad de Kerberos desdelos metadatos del depósito. Si realiza un cambio, debe reiniciar dataheadsvc.

Configuración de los nodos ECS con el principal del serviciode ECS

El principal del servicio ECS y su archivo keytab correspondiente deben residir en cadanodo de datos de ECS. Utilice las guías Ansible suministradas para automatizar estospasos.

Antes de comenzar

Debe contar con los siguientes elementos para poder realizar este procedimiento:

l Acceso a las guías Ansible. Obtenga las guías Ansible desde el paquete de softwarede HDFS ECS como se describe en Obtención del paquete de instalación y decompatibilidad de ECS HDFS en la página 173.

l La lista de direcciones IP del nodo de ECS.

l Dirección IP del sistema KDC.

l La resolución de DNS donde se ejecuta este script debe ser la misma que laresolución de DNS para el host Hadoop; de lo contrario, el vipr/_HOST@REALMno funcionará.

ECS ofrece contenido Ansible reutilizable llamado 'roles', que consta de scriptspython, listas de tareas basadas en YAML y archivos de plantilla.

Configuración de la integración de ECS HDFS a un clúster de Hadoop (kerberizado) seguro

Asignar nombres de grupo 183

Page 184: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

l vipr_kerberos_config: Configura un nodo de ECS para Kerberos.

l vipr_jce_config: Configura un nodo de datos de ECS para cifrado de seguridadilimitada mediante la instalación de archivos de política JCE.

l vipr_kerberos_principal: Adquiere un principal de servicio para un nodo ECS.

En este procedimiento, se ejecutará Ansible mediante el contenedor de Docker deutilidad que se instala con ECS.

Procedimiento

1. Inicie sesión en el nodo 1 de ECS y copie hdfsclient-<ECS version>-<version>.zip a ese nodo.

Por ejemplo:

/home/admin/ansible

Puede utilizar wget para obtener el paquete directamente desdesupport.emc.com o puede utilizar scp si ya lo descargó en otra máquina.

2. Descomprima el archivo hdfsclient-<ECS version>-<version>.zip.

Los pasos de este procedimiento utilizan las guías incluidas en el directorioviprfs-client-<ECS version>-<version>/playbooks/samples, y los pasos están incluidos también en viprfs-client-<ECS version>-<version>/playbooks/samples/README.md.

3. Edite inventory.txt en el directorio playbooks/samples para que hagareferencia a los nodos de datos de ECS y el servidor KDC.

Las entradas predeterminadas se muestran a continuación.

[data_nodes]192.168.2.[100:200]

[kdc]192.168.2.10

4. Descargue el archivo de política JCE “ilimitada” de oracle.com y colóquelo en un directorio UnlimitedJCEPolicy en viprfs-client-<ECS version>-<version>/playbooks/samples.

Nota

Este paso se debe ejecutar solamente si está utilizando el tipo de cifradoseguro.

Kerberos puede configurarse para utilizar un tipo de cifrado seguro, comoAES-256. En esa situación, el JRE dentro de los nodos de ECS debereconfigurarse para utilizar la política “ilimitada”.

5. Inicie el contenedor de utilidad en el nodo 1 de ECS y haga que las guías Ansibleestén disponibles para el contenedor.

a. Cargue la imagen del contenedor de utilidad.

Configuración de la integración de ECS HDFS a un clúster de Hadoop (kerberizado) seguro

184 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 185: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Por ejemplo:

sudo docker load -i /opt/emc/caspian/checker/docker/images/utilities.txz

b. Obtenga la identidad de la imagen de docker.

Por ejemplo:

admin@provo-lilac:~> sudo docker images

La salida le brindará la identidad de la imagen:

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZEutilities 1.5.0.0-403.cb6738e 186bd8577a7a 2 weeks ago 738.5 MB

c. Inicie e introduzca la imagen de utilidades.

Por ejemplo:

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

En el ejemplo, la ubicación en la que se descomprimieron las guías Ansible /home/admin/ansible/viprfs-client-3.0.0.0.85325.a05145b/playbooks se asigna al directorio /ansible en el contenedor de utilidad.

6. Cambie al directorio de trabajo en el contenedor.

Por ejemplo:

cd /ansible

7. Copie el archivo krb5.conf del KDC al directorio de trabajo.

8. Instale las funciones Ansible suministradas.

ansible-galaxy install -r requirements.txt -f

9. Edite generate-vipr-keytabs.yml según sea necesario y establezca elnombre de dominio.

Por ejemplo:

[root@nile3-vm22 samples]# cat generate-vipr-keytabs.yml---#### Generates keytabs for ViPR/ECS data nodes.### - hosts: data_nodes serial: 1

Configuración de la integración de ECS HDFS a un clúster de Hadoop (kerberizado) seguro

Configuración de los nodos ECS con el principal del servicio de ECS 185

Page 186: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

roles: - role: vipr_kerberos_principal kdc: "{{ groups.kdc | first }}" principals: - name: vipr/[email protected] keytab: keytabs/[email protected]

En este ejemplo, el valor predeterminado (vipr/[email protected]) se hasustituido con (vipr/[email protected]) y el dominio es MA.EMC.COM.

10. Ejecute el siguiente comando.

export ANSIBLE_HOST_KEY_CHECKING=False

11. Ejecute la guía Ansible para generar keytabs.

ansible-playbook -v -k -i inventory.txt --user admin –b --become-user=root generate-vipr-keytabs.yml

12. Modifique el archivo setup-vipr-kerberos.yml según sea necesario.

El contenido del archivo predeterminado se muestra a continuación.

# 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/

En este ejemplo, el valor predeterminado (vipr/[email protected]) se hasustituido con (vipr/[email protected]) y el dominio es MA.EMC.COM.

Nota

Elimine la función "vipr_jce_config" si no está utilizando un tipo de cifradoseguro.

Configuración de la integración de ECS HDFS a un clúster de Hadoop (kerberizado) seguro

186 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 187: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

13. Ejecute la guía Ansible para configurar los nodos de datos con el principal delservicio de ECS.

Asegúrese de que exista el directorio /ansible/samples/keytab y elarchivo krb5.conf esté en el directorio de trabajo /ansible/samples.

ansible-playbook -v -k -i inventory.txt --user admin –b --become-user=root setup-vipr-kerberos.yml

Verifique que el principal del servicio correcto de ECS, uno por cada nodo dedatos, se haya creado (del KDC):

# kadmin.local -q "list_principals" | grep viprvipr/[email protected]/[email protected]

Compruebe que el keytab correcto se haya generado y almacenado en laubicación: /data/hdfs/krb5.keytab en todos los nodos de datos de ECS.Puede utilizar el comando "strings" en el keytab para extraer el texto legible yverificar que contenga el principal correcto. Por ejemplo:

dataservice-10-247-199-69:~ # strings /data/hdfs/krb5.keytabMA.EMC.COMviprnile3-vm42.centera.lab.emc.com

En ese caso, el principal es vipr/nile3-vm42.centera.lab.emc.com.

Asegurar el depósito de ECS con metadatosPara asegurar que el depósito de ECS pueda trabajar con un clúster Hadoop seguro, eldepósito debe tener acceso a la información acerca del clúster.

En un clúster de Hadoop seguro, la entidad de seguridad de Kerberos debe estarasignada a un nombre de usuario HDFS. Además, el usuario debe estar asignado a ungrupo de Unix. Dentro del clúster de Hadoop, el NameNode recopila esta informacióndesde los mismos nodos de Hadoop y desde los archivos de configuración (core-site.xml y hdfs.xml).

Para activar los nodos de ECS a fin de determinar esta información y validar lassolicitudes del cliente, los siguientes datos deben estar disponibles para los nodos deECS:

l Usuario de Kerberos, usuario de Unix y asignación de grupos

l Grupo de superusuarios

l Configuración del servidor proxy

Los datos se ponen a disposición de los nodos de ECS como un conjunto de pares denombre y valor que se mantienen como metadatos.

Usuarios de KerberosLa información acerca de cada usuario de Kerberos (no usuarios de AD) que requiereacceso a Hadoop para un depósito debe cargarse a ECS. Se requieren los siguientesdatos:

Configuración de la integración de ECS HDFS a un clúster de Hadoop (kerberizado) seguro

Asegurar el depósito de ECS con metadatos 187

Page 188: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

l Nombre de la entidad de seguridad

l Nombre corto de la entidad de seguridad (nombre asignado)

l Grupos de entidades de seguridad

Si hay 10 entidades de seguridad de Kerberos en el nodo de Hadoop, debe crear 30pares de nombre y valor en el archivo de entrada de JSON. Cada nombre debe serúnico, por lo que únicamente debe asignar un nombre para cada nombre de la entidadde seguridad, nombre corto de la entidad de seguridad y grupo de entidades deseguridad. ECS espera un prefijo y un sufijo constantes para los nombres de entradaJSON.

El prefijo requerido para cada entrada de usuario de Kerberos es“internal.kerberos.user” y los tres sufijos posibles son name, shortname y groups. Acontinuación se muestra un ejemplo.

{ "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"},

El valor entre el prefijo y el sufijo puede ser cualquier cosa, siempre y cuandoidentifique la entrada de manera única. Por ejemplo, podría utilizar:

"name": "internal.kerberos.user.1.name","name": "internal.kerberos.user.1.shortname","name": "internal.kerberos.user.1.groups",

Las entidades de seguridad se pueden asignar a diferentes usuarios. Por ejemplo, elusuario de la entidad de seguridad “rm”, por lo general, se asigna a los usuarios de“yarn” que utilizan la configuración auth_to_local para el clúster de Hadoop, comoeste.

RULE:[2:$1@$0](rm@EXAMPLE_HDFS.EMC.COM)s/.*/yarn/

Por lo tanto, para cualquier entidad de seguridad que se asigne a una entidad deseguridad diferente (por ejemplo, la entidad de seguridad de rm que se asigna a laentidad de seguridad de yarn), se debe utilizar la entidad de seguridad “asignada” en elvalor de nombre corto, por lo que la entrada para la entidad de seguridad de rm sería:

{"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",

Configuración de la integración de ECS HDFS a un clúster de Hadoop (kerberizado) seguro

188 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 189: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

"value": "hadoop"},

SupergrupoNecesitará indicarle a ECS qué grupo de usuarios de Linux en los nodos de Hadoopobtendrá los privilegios de superusuario en función de su grupo. Se espera solamenteuna entrada en el archivo de entrada de JSON para la designación del supergrupo.Debe ser similar a lo siguiente:

{ "name": "dfs.permissions.supergroup", "value": "hdfs"}

Ajustes del proxyPara obtener soporte proxy, es necesario identificar todos los ajustes del proxy que sepermiten para cada aplicación de Hadoop; en este caso, aplicación significa una de lasaplicaciones compatibles con Hadoop, por ejemplo, hive, hbase, etc.

En el ejemplo que aparece a continuación, se otorga soporte de proxy para laaplicación hive a los usuarios que son miembros del grupo s3users (grupo de AD oLinux) y que pueden ejecutar hive en cualquiera de los hosts del clúster de Hadoop.Por lo tanto, la entrada JSON para esto serían dos pares de nombre/valor, uno para laconfiguración de hosts y otro para la configuración de los grupos.

{ "name": "hadoop.proxyuser.hive.hosts", "value": "*"},{ "name": "hadoop.proxyuser.hive.groups", "value": "s3users"}

El archivo completoLos tres tipos de metadatos se deben combinar en un solo archivo JSON. El formatodel archivo JSON es como se muestra a continuación.

{ "head_type": "hdfs", "metadata": [ { "name": "METADATANAME_1", "value": "METADATAVALUE_1" }, { "name": "METADATANAME_2", "value": "METADATAVALUE_2" },

:

{ "name": "METADATANAME_N", "value": "METADATAVALUE_N" }

Configuración de la integración de ECS HDFS a un clúster de Hadoop (kerberizado) seguro

Asegurar el depósito de ECS con metadatos 189

Page 190: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

]}

Nota

El último par de nombre/valor no tiene un carácter final “,”.

Se muestra un ejemplo de un archivo JSON en: Asegurar los metadatos deldepósito en la página 220.

Depósitos seguros y no segurosUna vez que se cargan los metadatos a un depósito, se hace referencia a este como un“depósito seguro”, por lo que deberá contar con las entidades de seguridad deKerberos a fin de obtener acceso. Una solicitud de un nodo de Hadoop no seguro serárechazada. Si no se han cargado los metadatos, el depósito no será seguro y serechazará la solicitud de un nodo de Hadoop seguro.

Se mostrará el siguiente error en caso de intentar y acceder a un depósito segurodesde un clúster no seguro. Se mostrará un mensaje similar en caso de intentar yacceder a un depósito no seguro desde un clúster seguro.

[hdfs@sandbox ~]$ hadoop fs -ls -R viprfs://hdfsBucket3.s3.site1/ls: ViPRFS internal error (ERROR_FAILED_TO_PROCESS_REQUEST).

Carga de los valores de metadatos a ECS mediante la API de REST deadministración

Se pueden suministrar los valores de metadatos requeridos para proteger un depósitode ECS que se utiliza con un clúster Hadoop seguro mediante la ejecución de loscomandos de la API de REST de administración de ECS.

Antes de comenzar

Debe tener credenciales de administrador del sistema de ECS.

Si el administrador de Hadoop NO es el administrador de ECS, el administrador deHadoop deberá trabajar en conjunto con el administrador del sistema ECS a fin decargar los metadatos seguros en el depósito.

El administrador de Hadoop puede hacer que el archivo de metadatos JSON estédisponible para el administrador de sistemas de ECS, el cual podrá utilizar esteprocedimiento para cargar los metadatos posteriormente. Si el mismo usuario asumelas dos funciones, ese usuario será responsable de crear el archivo de metadatosJSON y cargarlo en el depósito de ECS.

Procedimiento

1. Cree el archivo JSON que contiene los metadatos que se describen en: Asegurar el depósito de ECS con metadatos en la página 187.

2. Inicie sesión en ECS con sus credenciales de administrador del sistema a fin deobtener un token de autenticación que pueda utilizarse cuando se ejecutencomandos de administración de ECS.

Puede ejecutar este comando mediante curl. En el ejemplo que aparece acontinuación, deberá reemplazar <username>:<password> con las credenciales

Configuración de la integración de ECS HDFS a un clúster de Hadoop (kerberizado) seguro

190 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 191: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

del administrador del sistema de ECS y proporcionar la dirección IP o el nombrede host de un nodo de ECS.

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. Ejecute el comando de la API de REST de administración de ECS paraimplementar los metadatos.

La API es: PUT object/bucket/<bucketname>/metadata. A continuación, semuestra un ejemplo de cómo ejecutar este comando mediante curl.

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>

Debe reemplazar:

l <username> con un nombre de usuario de administrador del sistema de ECS.

l <password> con la contraseña para el nombre de usuario de administradordel sistema de ECS especificado.

l <bucketname> con el nombre del depósito que está utilizando para los datosHDFS.

l <hostname> con la dirección IP o nombre de host de un nodo de ECS.

l <bucketdetails> con el nombre de archivo del archivo JSON que contiene lospares de nombre-valor.

l <namespace> con el nombre del espacio de nombres en el que reside eldepósito.

Una vez implementados, los metadatos estarán disponibles para todos los nodosde ECS.

Edite core-site.xmlUtilice este procedimiento para actualizar core-site.xml con las propiedadesnecesarias cuando se utiliza ECS HDFS con un clúster de ECS que utiliza el modo deautenticación de Kerberos.

Antes de comenzar

l Siempre es preferible agregar o administrar estas propiedades mediante unainterfaz del usuario de administración de Hadoop para reducir la posibilidad deerrores y garantizar que estos cambios sean persistentes en todo el clúster. Editarmanualmente los archivos en múltiples nodos de Hadoop es un proceso difícil ypropenso a errores. Debe tener un conjunto de parámetros de conexión del usuarioque lo habiliten a iniciar sesión en la interfaz del usuario de administración para sudistribución.

l Si modifica core-site.xml directamente, debe tener un conjunto de parámetrosde conexión del usuario que lo habiliten a iniciar sesión en los nodos de Hadoop ymodificar core-site.xml.

Configuración de la integración de ECS HDFS a un clúster de Hadoop (kerberizado) seguro

Edite core-site.xml 191

Page 192: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Algunas propiedades son específicos de ECS y, por lo general, se necesitan paraagregarse a core-site.xml. Si utiliza el paquete de discos de Hortonworks AmbariHadoop ECS, los parámetros específicos de ECS ya estarán presentes.

Si planea editar core-site.xml directamente, la ubicación de core-site.xmldepende de la distribución que utilice, como se muestra en la siguiente tabla.

Tabla 22 Ubicación de archivos de core-site.xml

Distribuciónde ECS

ubicación de core-site.xml Nodos poractualizar

Hortonworks /etc/hadoop/conf Todos los nodos

core-site.xml reside en cada nodo del clúster de Hadoop, y usted debe modificarlas mismas propiedades en cada instancia. Puede hacer el cambio en un nodo, y luegoutilizar el comando de copia segura (scp) para copiar el archivo en los demás nodos delclúster. Como mejor práctica, respalde core-site.xml antes de comenzar elproceso de configuración.

Consulte la referencia de la propiedad de core_site.xml para obtener más informaciónsobre cada propiedad que debe configurar.

Procedimiento

1. Si está utilizando una interfaz de administración como Hortonworks Ambari,inicie sesión como administrador y vaya a la página de configuración de HDFS.

2. Si va a realizar los cambios mediante la edición manual de core-site.xml,siga los pasos a continuación.

a. Inicie sesión en uno de los nodos de HDFS donde se encuentra core-site.xml.

b. Haga una copia de respaldo de core-site.xml.

cp core-site.xml core-site.backupc. Con el editor de texto que desee, abra core-site.xml para editarlo.

3. Agregue las propiedades y los valores siguientes para definir clases de Java queimplementan el sistema de archivos de ECS HDFS:

<property><name>fs.viprfs.impl</name><value>com.emc.hadoop.fs.vipr.ViPRFileSystem</value></property>

<property> <name>fs.AbstractFileSystem.viprfs.impl</name><value>com.emc.hadoop.fs.vipr.ViPRAbstractFileSystem</value></property>

4. Agregue la propiedad fs.vipr.installations. En el siguiente ejemplo, el valor seconfigura en Site1.

<property> <name>fs.vipr.installations</name> <value>Site1</value></property>

Configuración de la integración de ECS HDFS a un clúster de Hadoop (kerberizado) seguro

192 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 193: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

5. Agregue la propiedad fs.vipr.installation.[installation_name].hosts como unalista de nodos de datos de ECS separados por comas o de direcciones IP delbalanceador de carga separadas por comas. En el siguiente ejemplo,installation_name se configura en Site1.

<property> <name>fs.vipr.installation.Site1.hosts</name> <value>203.0.113.10,203.0.113.11,203.0.113.12</value></property>

6. Agregue la propiedad fs.vipr.installation.[installation_name].resolution yconfigúrela en uno de los siguientes valores:

Opción Descripción

dynamic Utilícela cuando tiene acceso a nodos de datos de ECS directamentesin un balanceador de carga.

fixed Utilícela cuando tiene acceso a nodos de datos de ECS con unbalanceador de carga.

En el siguiente ejemplo, installation_name se configura en Site1.

<property> <name>fs.vipr.installation.Site1.resolution</name> <value>dynamic</value></property>

a. Si configura fs.vipr.installation.[installation_name].resolution como dynamic,agregue la propiedad fs.vipr.installation.[installation_name].resolution.dynamic.time_to_live_ms a fin de especificarla frecuencia de consulta a ECS para la lista de nodos activos.

En el siguiente ejemplo, installation_name se configura en Site1.

<property><name>fs.vipr.installation.Site1.resolution.dynamic.time_to_live_ms</name><value>900000</value></property>

7. Busque la propiedad fs.defaultFS y modifique el valor para especificar el URI delsistema de archivos de ECS.

Esta configuración es opcional, y puede especificar la URL completa del sistemade archivos para conectarse a ViPRFS ECS.

Utiliza el siguiente formato: viprfs://<bucket_name.namespace.installation_name, donde

l bucket_name: Es el nombre del depósito que contiene los datos que deseautilizar cuando ejecute tareas de Hadoop. Si se ejecuta en modo deautenticación simple, el encargado del depósito debe otorgar permiso aTodos. En el siguiente ejemplo, el bucket_name se configura en mybucket.

l namespace: Es el espacio de nombres del grupo de usuarios donde residebucket_name. En el siguiente ejemplo, el espacio de nombres se configuraen mynamespace.

Configuración de la integración de ECS HDFS a un clúster de Hadoop (kerberizado) seguro

Edite core-site.xml 193

Page 194: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

l installation_name: El valor especificado por la propiedad defs.vipr.installations. En el siguiente ejemplo, installation_name se configuraen Site1.

<property> <name>fs.defaultFS</name> <value>viprfs://mybucket.mynamespace.Site1/</value></property>

8. Busque fs.permissions.umask-mode y establezca el valor en 022.

En algunas configuraciones, esta propiedad quizás ya no exista. Si no existe,agréguelo.

<property> <name>fs.permissions.umask-mode</name> <value>022</value></property>

9. Agregue la propiedad fs.viprfs.auth.anonymous_translation; se utiliza paraespecificar el propietario y el grupo de un archivo o directorio creado medianteHDFS.

Nota

Antes de ECS 2.2, este parámetro se utilizaba para asignar un propietario a losarchivos y directorios que se crearon sin uno (archivos de propiedad anónima),de modo que el usuario actual tuviera permiso para modificarlos. Los archivos ydirectorios ya no se crean de manera anónima y tienen un propietario asignadosegún la configuración de este parámetro.

Opción Descripción

LOCAL_USER Utilice esta configuración con un clúster de Hadoop queutilice la seguridad simple. Asigna el usuario y gruopo deUnix del clúster de Hadoop a directorios y archivosrecientemente creados.

CURRENT_USER Utilice esta configuración para un clúster de Hadoopkerberizado. Asigna la entidad de seguridad de Kerberos([email protected]) como el propietario del archivo odirectorio y utiliza el grupo que se asignó como el valorpredeterminado para el depósito.

NONE (default) (En desuso) Anteriormente, indicaba que no se debíaejecutar ninguna asignación desde los objetos de propiedadanónima al usuario actual.

<property> <name>fs.viprfs.auth.anonymous_translation</name> <value>LOCAL_USER</value></property>

Configuración de la integración de ECS HDFS a un clúster de Hadoop (kerberizado) seguro

194 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 195: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

10. Agregue la propiedad fs.viprfs.auth.identity_translation y configúrela comoCURRENT_USER_REALM, que mapea en el dominio del usuario conectado através de kinit.

<property> <name>fs.viprfs.auth.identity_translation</name> <value>CURRENT_USER_REALM</value></property>

11. Agregue la propiedad viprfs.security.principal. Esta propiedad informa a KDCquién es el usuario de ECS.

El nombre principal puede incluir "_HOST", que se sustituye automáticamentepor el nodo de datos real FQDN en el momento de la ejecución.

<property> <name>viprfs.security.principal</name> <value>vipr/[email protected]</value></property>

12. Agregue la ubicación en caché de los vales de Kerberos.

Por ejemplo:

<property><name>hadoop.security.kerberos.ticket.cache.path</name> <value>/tmp/<krbcc_1000</value></property>

Se puede obtener este valor de la salida del comando klist.

13. Utilice Hortonworks Ambari para actualizar core-site.xml con el mismoconjunto de propiedades y valores.

Reiniciar y verificar el accesoUna vez ejecutados los pasos de configuración, puede reiniciar los servicios de Hadoopy comprobar que dispone de acceso a HDFS.

Cuando el sistema se configura para utilizar ECS HDFS, el NameNode de HDFS puedefallar en el inicio. Cuando ECS HDFS se configura como el HDFS, ECS HDFS ejecutatodas las funciones de NameNode y no requiere que el NameNode esté activo.

Procedimiento

1. Reinicie los servicios Hadoop.

Normalmente, esto incluirá a HDFS, MapReduce, Yarn y HBase.

Si se reinician los servicios manualmente, puede consultar la tabla acontinuación.

Distribución de Hadoop Comandos

Hortonworks # stop-all.sh# start-all.sh

Configuración de la integración de ECS HDFS a un clúster de Hadoop (kerberizado) seguro

Reiniciar y verificar el acceso 195

Page 196: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

2. Pruebe la configuración ejecutando el siguiente comando para obtener una listade directorios:

# kinit <service principal>

# hdfs dfs -ls viprfs://mybucket.mynamespace.Site1/

13/12/13 22:20:37 INFO vipr.ViPRFileSystem: Initialized ViPRFS for viprfs://mybucket.mynamespace.Site1/

Configuración de la integración de ECS HDFS a un clúster de Hadoop (kerberizado) seguro

196 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 197: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

CAPÍTULO 25

Guía sobre la configuración de Kerberos

l Guía sobre la configuración de Kerberos........................................................... 198l Configuración de uno o más nodos ECS nuevos con el principal del servicio de

ECS.................................................................................................................. 201

Guía sobre la configuración de Kerberos 197

Page 198: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Guía sobre la configuración de KerberosProporciona orientación sobre la configuración de Kerberos en el clúster de Hadoop.

Configuración del KDC de KerberosConfigure el KDC de Kerberos siguiendo estos pasos.

Procedimiento

1. Instale krb5-workstation.

Utilice el comando:

yum install -y krb5-libs krb5-server krb5-workstation

2. Modifique /etc/krb5.conf y cambie el nombre y las extensiones del dominio.

3. Modifique /var/kerberos/krb5kdc/kdc.conf y cambie el nombre deldominio para que coincida con el suyo.

4. Si su KDC es un VM, recree /dev/random (de otra forma, el siguiente paso decrear la base de datos de KDC tardará mucho).

a. Elimine con:

# rm -rf /dev/random

b. Recree con:

# mknod /dev/random c 1 9

5. Cree la base de datos de KDC.

# kdb5_util create -s

Nota

Si cometió un error con los principales iniciales. Por ejemplo, si ejecutó"kdb5_util create -s" de manera incorrecta, tal vez tenga que eliminar los principales de manera explícita en el directorio /var/kerberos/krb5kdc/.

6. Modifique kadm5.acl para especificar que los usuarios tienen permiso deadministrador.

*/[email protected] *

Guía sobre la configuración de Kerberos

198 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 199: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

7. Modifique /var/kerberos/krb5kdc/kdc.conf y elimine cualquier tipo decifrado, excepto des-cbc-crc:normal. Modifique también el nombre dedominio.

8. Asegúrese de que iptables y selinux estén desactivados en todos los nodos(servidor KDC, así como nodos de Hadoop).

9. Inicie los servicios de KDC y cree un principal de administrador local.

kadmin.local

# service krb5kdc start

# service kadmin start

# /usr/kerberos/sbin/kadmin.local-q "addprinc root/admin"

# kinit root/admin

10. Copie el archivo krb5.conf en todos los nodos de Hadoop.

Cada vez que haga una modificación en cualquiera de los archivos deconfiguración, reinicie los servicios siguientes y copie el archivo krb5.conf alos nodos de Hadoop y ECS relevantes.

11. Reinicie los servicios.

service krb5kdc restart

service kadmin restart

12. Puede usar el siguiente vínculo para configurar un KDC de Kerberos con base enlos pasos en http://www.centos.org/docs/4/html/rhel-rg-en-4/s1-kerberos-server.html.

Configuración de la autenticación de usuario AD para KerberosCuando tiene un ambiente Hadoop configurado con seguridad Kerberos, puedeconfigurarlo para autenticar con el dominio AD de ECS.

Asegúrese de tener un usuario de AD para su ADREALM. El usuario "detscr" deADREALM CAMBRIDGE.EMC.COM se utiliza en el siguiente ejemplo. Cree unaconfianza unidireccional entre KDCREALM y ADREALM como se muestra en elejemplo. No trate de validar este dominio con "netdom trust".

En Active DirectoryDebe configurar una confianza unidireccional entre dominios, del dominio de KDC al deAD. Para hacerlo, ejecute los siguientes comandos desde una línea de comandos.

ksetup /addkdc KDC-REALM <KDC hostname>netdom trust KDC-REALM /Domain:AD-REALM /add /realm /passwordt:<TrustPassword>ksetup /SetEncTypeAttr KDC-REALM <enc_type>

Por ejemplo:

ksetup /addkdc LSS.EMC.COM lcigb101.lss.emc.comnetdom trust LSS.ACME.COM /Domain:CAMBRIDGE.ACME.COM /add /realm /

Guía sobre la configuración de Kerberos

Configuración de la autenticación de usuario AD para Kerberos 199

Page 200: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

passwordt:ChangeMeksetup /SetEncTypeAttr LSS.ACME.COM DES-CBC-CRC

Para este ejemplo, se utilizó el cifrado des-cbc-crc. Sin embargo, este es un cifradodébil que solo se eligió con fines de demostración. Sea cual fuere el cifrado que elija,AD, KDC y los clientes deben ser compatibles con él.

En su KDC (como raíz)Para configurar una confianza unidireccional, debe crear un principal de servicio"krbtgt" . Para hacerlo, el nombre es krbtgt/KDC-REALM@AD-REALM. Use lacontraseña ChangeMe, o la que haya especificado para el argumento /passwordtanterior.

1. En KDC (como raíz)

# kadminkadmin: addprinc -e "des-cbc-crc:normal" krbtgt/[email protected]

Nota

Durante la implementación, lo mejor es limitar los tipos de cifrado al que hayaelegido. Una vez que esté funcionando, se pueden añadir tipos de cifradoadicionales.

2. Agregue las siguientes reglas a su propiedad core-site.xmlhadoop.security.auth_to_local:

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. Compruebe que AD o LDAP esté configurado correctamente con el servidor deKerberos (KDC). El usuario debe poder usar "kinit" con un usuario de AD y listar eldirectorio local de HDFS.

Nota

Si va a configurar el clúster de Hadoop y ECS para autenticación a través de unAD, cree cuentas locales de usuarios de Linux en todos los nodos de Hadoop parael usuario de AD de "kinit", y también asegúrese de que todos los hosts de Hadoophagan "kinit" con ese usuario de AD. Por ejemplo, si hace kinit comouserX@ADREALM, cree userX como usuario local en todos los hosts de Hadoop, yhaga kinit con: 'kinit userX@ADREALM' en todos los hosts para ese usuario.

En el siguiente ejemplo, vamos a hacer la autenticación como "[email protected]", por lo que vamos a crear un usuario llamado"detscr" y hacer kinit como este usuario en el host de Hadoop. Como se indica acontinuación:

[root@lviprb159 ~]# su detscr [detscr@lviprb159 root]$ whoami detscr [detscr@lviprb159 root]$ kinit [email protected] Password for [email protected]:

Guía sobre la configuración de Kerberos

200 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 201: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

[detscr@lviprb159 root]$ klist Ticket cache: FILE:/tmp/krb5cc_1010 Default principal: [email protected] Valid starting Expires Service principal 12/22/14 14:28:27 03/02/15 01:28:30 krbtgt/[email protected] renew until 09/17/17 15:28:27 [detscr@lviprb159 root]$ hdfs dfs -ls /Found 4 itemsdrwx---rwx - yarn hadoop 0 2014-12-23 14:11 /app-logsdrwx---rwt - hdfs 0 2014-12-23 13:48 /appsdrwx---r-x - mapred 0 2014-12-23 14:11 /mapreddrwx---r-x - hdfs 0 2014-12-23 14:11 /mr-history

Configuración de uno o más nodos ECS nuevos con elprincipal del servicio de ECS

Cuando se agrega uno o más nodos nuevos a una configuración de ECS, se debeimplementar el principal del servicio de ECS y la keytab correspondiente a los nuevosnodos.

Antes de comenzar

l Este procedimiento supone que ha ejecutado los pasos anteriormente aquí ycuenta con los manuales de Ansible instalados y accesibles.

Debe contar con los siguientes elementos para poder realizar este procedimiento:

l La lista de direcciones IP del nodo de ECS.

l Dirección IP del sistema KDC.

l La resolución de DNS donde se ejecuta este script debe ser la misma que laresolución de DNS para el host Hadoop; de lo contrario, el vipr/_HOST@REALMno funcionará.

Procedimiento

1. Inicie sesión en el nodo 1 y compruebe que las herramientas se hayan instaladopreviamente y las guías estén disponibles.

El ejemplo utilizado anteriormente era:

/home/admin/ansible/viprfs-client-<ECS version>-<version>/playbooks

2. Edite inventory.txt en el directorio playbooks/samples para agregar losnodos ECS agregados.

Las entradas predeterminadas se muestran a continuación.

[data_nodes]192.168.2.[100:200]

[kdc]192.168.2.10

3. Inicie el contenedor de utilidad en el nodo 1 de ECS y haga que las guías Ansibleestén disponibles para el contenedor.

Guía sobre la configuración de Kerberos

Configuración de uno o más nodos ECS nuevos con el principal del servicio de ECS 201

Page 202: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

a. Cargue la imagen del contenedor de utilidad.

Por ejemplo:

sudo docker load -i /opt/emc/caspian/checker/docker/images/utilities.txz

b. Obtenga la identidad de la imagen de docker.

Por ejemplo:

admin@provo-lilac:~> sudo docker images

La salida le brindará la identidad de la imagen:

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZEutilities 1.5.0.0-403.cb6738e 186bd8577a7a 2 weeks ago 738.5 MB

c. Inicie e introduzca la imagen de utilidades.

Por ejemplo:

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

En el ejemplo, la ubicación en la que se descomprimieron las guías Ansible /home/admin/ansible/viprfs-client-3.0.0.0.85325.a05145b/playbooks se asigna al directorio /ansible en el contenedor de utilidad.

4. Cambie al directorio de trabajo en el contenedor.

Por ejemplo:

cd /ansible

5. Ejecute la guía Ansible para generar keytabs.

ansible-playbook -v -k -i inventory.txt generate-vipr-keytabs.yml

6. Ejecute la guía Ansible para configurar los nodos de datos con el principal delservicio de ECS.

Asegúrese de que exista el directorio /ansible/samples/keytab y elarchivo krb5.conf esté en el directorio de trabajo /ansible/samples.

ansible-playbook -v -k -i inventory.txt setup-vipr-kerberos.yml

Guía sobre la configuración de Kerberos

202 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 203: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Verifique que el principal del servicio correcto de ECS, uno por cada nodo dedatos, se haya creado (del KDC):

# kadmin.local -q "list_principals" | grep viprvipr/[email protected]/[email protected]

Compruebe que el keytab correcto se haya generado y almacenado en laubicación: /data/hdfs/krb5.keytab en todos los nodos de datos de ECS.Puede utilizar el comando "strings" en el keytab para extraer el texto legible yverificar que contenga el principal correcto. Por ejemplo:

dataservice-10-247-199-69:~ # strings /data/hdfs/krb5.keytabMA.EMC.COMviprnile3-vm42.centera.lab.emc.com

En ese caso, el principal es vipr/nile3-vm42.centera.lab.emc.com.

Guía sobre la configuración de Kerberos

Configuración de uno o más nodos ECS nuevos con el principal del servicio de ECS 203

Page 204: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Guía sobre la configuración de Kerberos

204 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 205: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

CAPÍTULO 26

Solución de problemas

l Solución de problemas..................................................................................... 206l Compruebe que AD/LDAP está configurado correctamente con el clúster

Hadoop seguro.................................................................................................206l Reinicio de los servicios después de la configuración hbase............................. 207l Falla la prueba PIG: no se puede obtener el principal de Kerberos.................... 207l Permiso denegado para el usuario de AD..........................................................207l Errores de permisos......................................................................................... 208l \n no se pudo procesar la solicitud: %s............................................................. 211l Habilitar el registro y la depuración del lado del cliente de Kerberos.................. 211l Depuración de Kerberos en KDC....................................................................... 212l Eliminación de la desviación del reloj.................................................................212

Solución de problemas 205

Page 206: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Solución de problemasEsta área ofrece soluciones alternativas para los problemas que pueden encontrarse alconfigurar ECS HDFS.

Compruebe que AD/LDAP está configurado correctamentecon el clúster Hadoop seguro

Debe verificar que AD o LDAP está configurado correctamente con Kerberos (KDC) yel clúster Hadoop.

Cuando la configuración es correcta, deberá poder usar "kinit" contra un usuario deAD/LDAP. Además, si el clúster Hadoop está configurado para HDFS locales, debecomprobar que puede listar el directorio local HDFS antes de que ECS se agregue alclúster.

Solución alternativaSi no puede autenticarse con éxito como un usuario de AD/LDAP con el KDC en elclúster Hadoop, debe corregir esto antes de proceder a la configuración de ECSHadoop.

A continuación, se muestra un ejemplo de un inicio de sesión exitoso.

[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

Si lo anterior no tiene éxito, puede investigar el uso de la siguiente lista de verificación:

l Revise la corrección y sintaxis de/etc/krb5.conf en el servidor KDC. Losdominios pueden distinguir entre mayúsculas y minúsculas en los archivos deconfiguración, así como cuando se utilizan con el comando kinit.

l Revise que /etc/krb5.conf en el servidor KDC se copie a todos los nodosHadoop.

l Compruebe se haya establecido correctamente la confianza en un solo sentidoentre AD/LDAP y el servidor KDC. Consulte la documentación adecuada sobrecómo hacer esto.

l Asegúrese de que el tipo de cifrado en el servidor de AD/LDAP coincide con el delservidor KDC.

l Compruebe que /var/kerberos/krb5kdc/kadm5.acl y /var/kerberos/krb5kdc/kdc.conf estén correctos.

l Intente iniciar sesión como principio de servicio en el servidor KDC para indicar queel servidor KDC en sí está funcionando correctamente.

Solución de problemas

206 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 207: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

l Intente iniciar sesión como el mismo usuario de AD/LDAP directamente en elservidor KDC. Si eso no funciona, es probable que el problema esté directamenteen el servidor KDC.

Reinicio de los servicios después de la configuración hbaseDespués de editar la propiedad hbase.rootdir en hbase-site.xml, el servicio hbase no sereinicia correctamente.

Solución alternativaDeben ejecutarse los siguientes pasos cuando se presenta este problema enHortonworks para que se ejecute hbase-master.

1. Conecte a la cli de zookeeper.

hbase zkcli

2. Elimine el directorio hbase.

rmr /hbase

3. Reinicie el servicio hbase.

Falla la prueba PIG: no se puede obtener el principal deKerberos

Falla la prueba PIG con el siguiente error: "Info:Error: java.io.IOException: Unable toobtain the Kerberos principal" incluso después de kinit como usuario AD, o con"Unable to open iterator for alias firstten".

Este problema se debe a que PIG (<0,13) no genera un token de delegación paraViPRFS como almacenamiento secundario.

Solución alternativaAnexe la configuración de viprfs://bucket.ns.installation/ amapreduce.job.hdfs-servers. Por ejemplo:

set mapreduce.job.hdfs-servers viprfs://KcdhbuckTM2.s3.site1

Permiso denegado para el usuario de ADCuando ejecuta una aplicación como usuario de AD, se genera un error de "permisodenegado".

Solución alternativaConfigure los permisos para el directorio /user de la siguiente manera:

hdfs dfs -chmod 1777 /user

Solución de problemas

Reinicio de los servicios después de la configuración hbase 207

Page 208: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Errores de permisosPueden producirse errores de permisos insuficientes debido a diversos motivos. Puederecibirlos cuando ejecute un comando hadoop fs, o puede verlos en el registro deaplicación, como el registro de mapreduce o hive.

Errores INSUFFICIENT_PERMISSIONS

En el ejemplo que aparece a continuación, el “jhs” principal intentó crear un directorio(/ tmp) y recibió un error INSUFFICIENT_PERMISSIONS. En este caso, los permisosdel directorio raíz no le permitían a este usuario crear un directorio. La causa de esteerror debe ser obvia para la mayoría de los usuarios.

root@lrmk042:/etc/security/keytabs# hadoop fs -mkdir /tmp15/11/08 21:03:09 ERROR vipr.ViPRFileSystemClientBase: Permissions failure for request: User: jhs/lrmk042.lss.emc.com@HOP171_HDFS.EMC.COM (auth:KERBEROS), host: hdfsBucket3.s3.site1, namespace: s3, bucket: hdfsBucket315/11/08 21:03:09 ERROR vipr.ViPRFileSystemClientBase: Request message sent: MkDirRequestMessage[kind=MKDIR_REQUEST,namespace=s3,bucket=hdfsBucket3,path=/tmp,hdfsTrustedStatus=HDFS_USER_NOT_TRUSTED,permissions=rwxr-xr-x,createParent=true]mkdir: java.security.AccessControlException: ERROR_INSUFFICIENT_PERMISSIONS

root@lrmk042:/etc/security/keytabs# hadoop fs -ls -d /drwxr-xr-x - hdfs hdfs 0 2015-11-08 16:58 /root@lrmk042:/etc/security/keytabs#

En caso de que exista un error de permisos insuficientes poco evidente para el cliente,es posible que deba analizar los registros del servidor. Inicie con dataheadsvc-error.log para buscar el error. Abra una ventana terminal para cada nodo de ECS yedite el archivo dataheadsvc-error.log. Encuentre el error que corresponde a lavez que vio el error en el cliente.

Error al obtener las credenciales

Cuando vea un error como el que se muestra a continuación en dataheadsvc-error.log:

2015-11-08 22:36:21,985 [pool-68-thread-6] ERROR RequestProcessor.java (line 1482) Unable to get group credentials for principal 'jhs@HOP171_HDFS.EMC.COM'. This principal will default to use local user groups. Error message: java.io.IOException: Failed to get group credentials for 'jhs@HOP171_HDFS.EMC.COM', status=ERROR

Esto no es un error. El mensaje significa que el servidor intentó buscar el nombreprincipal para ver si había grupos de Active Directory almacenados en caché para elusuario principal que realizaba la solicitud. Para un usuario de Kerberos, lo anteriorgenerará este error.

El error le informará el nombre de usuario que realiza la solicitud. Tome nota de ello.

Solución de problemas

208 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 209: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Error de acceso a depósitos

Si un usuario que realiza una solicitud para obtener acceso a un depósito no tiene lospermisos de ACL, podría ver esta acumulación de errores en dataheadsvc-error.log.

2015-11-08 21:35:26,652 [pool-68-thread-1] ERROR BucketAPIImpl.java (line 220) Getting bucket failed withcom.emc.storageos.objcontrol.object.exception.ObjectAccessException: you don't have GET_KEYPOOL_ACL permission to this keypoolat com.emc.storageos.objcontrol.object.exception.ObjectAccessException.createExceptionForAPI(ObjectAccessException.java:286)at com.emc.storageos.data.object.ipc.protocol.impl.ObjectAccessExceptionParser.parseFrom(ObjectAccessExceptionParser.java:61)

En este caso, debe agregar una ACL de usuario explícito para el depósito o agregaruna ACL de grupo personalizado para uno de los grupos de los cuales el usuario esmiembro.

Error de acceso a objetos

Otro tipo de error de permiso es un error de acceso al objeto. El acceso a objetos(archivos y directorios) no deben confundirse con el acceso a depósitos Un usuariopuede tener el control completo (lectura/escritura/borrado) a un depósito, peropuede recibir un error INSUFFICIENT_PERMISSIONS debido a que no tiene acceso auno o más objetos en la ruta a la que intenta obtener acceso. La acumulación queaparece a continuación es un ejemplo de error de acceso a objetos:

2015-11-08 22:36:21,995 [pool-68-thread-6] ERROR FileSystemAccessHelper.java (line 1364) nfsProcessOperation failed to process path: mr-history/done2015-11-08 22:36:21,995 [pool-68-thread-6] ERROR ObjectControllerExceptionHelper.java (line 186) Method nfsGetSMD failed due to exceptioncom.emc.storageos.data.object.exception.ObjectControllerException: directory server returns error ERROR_ACCESS_DENIEDat com.emc.storageos.data.object.FileSystemAccessLayer.FileSystemAccessHelper.nfsProcessOperation(FileSystemAccessHelper.java:1368)at com.emc.storageos.data.object.FileSystemAccessLayer.FileSystemAccessHelper.getSystemMetadata(FileSystemAccessHelper.java:466)at com.emc.storageos.data.object.FileSystemAccessLayer.FileSystemAccessLayer.getSystemMetadata(FileSystemAccessLayer.java:532)at com.emc.storageos.data.object.blob.client.BlobAPI.getStat(BlobAPI.java:1294)at com.emc.vipr.engine.real.RealBlobEngine.stat(RealBlobEngine.java:1976)at com.emc.vipr.engine.real.RealBlobEngine.stat(RealBlobEngine.java:802)at com.emc.vipr.hdfs.fs.RequestProcessor.accept(RequestProcessor.java:499)at com.emc.vipr.hdfs.net.ConnectionManager$RequestThread.run(ConnectionManager.java:136)at

Solución de problemas

Errores de permisos 209

Page 210: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

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)

Los dos elementos importantes que se deben destacar aquí son la acción solicitada(stat) y la ruta del objeto (mr-history/done). Tenga en cuenta que no se muestra elcarácter de barra diagonal principal, por lo que la ruta real es /mr-history/done. Ahoratiene tres elementos que son importantes para la depuración:

l usuario principal (jhs@HOP171_HDFS.EMC.COM)

l acción (stat is hadoop fs -ls)

l ruta (/mr-history/done)

Existen dos enfoques para la depuración adicional:

l Depuración de registro en Blobsvc en la página 210

l Depuración del cliente Hadoop en la página 210

Depuración de registro en BlobsvcUna solicitud de permiso fallida tendrá un error en blobsvc como este:

2015-11-08 22:36:21,994[TaskScheduler-BlobService-COMMUNICATOR-ParallelExecutor-5892]ERROR ObjectAclChecker.java (line 101) not permit, cred jhs@HOP171_HDFS.EMC.COM[hadoop]false1 withaction GET_OBJECT_ACL on object with acl/owner/group user={hdfs@hop171_hdfs.emc.com=[FULL_CONTROL]},groups={hdfs=[READ_ACL, EXECUTE, READ]}, other=[], owner=hdfs@hop171_hdfs.emc.com, group=hdfs

Simplemente busque 'no permit'. Esto nos brinda el usuario que hace la solicitud (jhs),el propietario del objeto (hdfs), el grupo de objetos (hdfs) y los permisos para elpropietario, el grupo y otros. Lo que no nos dice es el objeto real que falló laverificación de permiso. En el nodo de Hadoop, conviértase en el hdfs principal,comience con la ruta y prepare el árbol, lo que lleva al otro método de depuración y seanaliza el sistema de archivos de Hadoop a partir del cliente.

Depuración del cliente HadoopCuando se recibe un error de permisos, debe conocer el usuario principal que realiza lasolicitud, así como el tipo de acción y los elementos que se solicitan. En nuestroejemplo, el usuario jhs recibió un error que enumera el directorio /mr-history/done.Puede realizar algunos análisis para determinar la causa raíz. Si tiene acceso a lacuenta de superusuario, ejecute estos pasos como esa cuenta.

root@lrmk042:/var/log/hadoop-mapreduce/mapred# hadoop fs -ls -d /mr-history/donedrwxrwxrwt - mapred hadoop 0 2015-11-08 16:58 /mr-history/done

Esto demuestra que el jhs principal debió haber tenido acceso para enumerar estedirectorio.

root@lrmk042:/var/log/hadoop-mapreduce/mapred# hadoop fs -ls -d /mr-historydrwxr-xr-x - hdfs hdfs 0 2015-11-08 16:58 /mr-history

Solución de problemas

210 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 211: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

De la misma manera, este directorio no tiene problemas de acceso

root@lrmk042:/var/log/hadoop-mapreduce/mapred# hadoop fs -ls -d /drwxr-x--- - hdfs hdfs 0 2015-11-08 16:58 /

En este caso, el problema es que el directorio raíz es propiedad de hdfs y el nombre degrupo es hdfs, pero el resto de la configuración es '-' (0). El usuario que realiza lasolicitud es jhs@REALM; este usuario es miembro de hadoop, pero no de hdfs, demodo que no tiene ninguna ACL de objetos para enumerar el directorio /mr-history/done. Cuando se ejecuta un chmod en el directorio raíz se habilita al usuario a ejecutarsus tareas.

root@lrmk042:/var/log/hadoop-mapreduce/mapred# hadoop fs -chmod 755 /

root@lrmk042:/var/log/hadoop-mapreduce/mapred# hadoop fs -ls -d /drwxr-xr-x - hdfs hdfs 0 2015-11-08 16:58 /

\n no se pudo procesar la solicitud: %sCuando el listado de una categoría de un error: Error al proceso de solicitud se genera.

Al realizar una categoría de lista, por ejemplo:

# hadoop fs -ls viprfs://hdfsBucket2.s3.site1/

Se produjo el siguiente error interno: %s

ERROR_FAILED_TO_PROCESS_REQUEST

Solución alternativaSon razones posibles para este error:

1. El archivo JAR viprhdfs client en el nodo de Hadoop no está sincronizado con elsoftware ECS

2. Que intenta obtener acceso a una categoría (Kerberos) segura desde un nodo deHadoop no seguro (no Kerberos)

3. Que intenta obtener acceso a una categoría no seguro (no Kerberos) desde unnodo (Kerberos) Hadoop seguro.

Habilitar el registro y la depuración del lado del cliente deKerberos

Para solucionar problemas de autenticación, puede habilitar el registro detallado y ladepuración en el nodo de clúster Hadoop que está utilizando.

Solución de problemas

\n no se pudo procesar la solicitud: %s 211

Page 212: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Habilitar el registro detallado del lado del clienteEl registro detallado se habilita usando una variable de ambiente que se aplica solo a lasesión SSH actual.

export HADOOP_OPTS="-Dsun.security.krb5.debug=true"

Habilitar la depuración del lado del cliente de HadoopPara solucionar los problemas de la actividad de Hadoop entre el nodo de Hadoop yECS, puede activar el registro detallado de Hadoop de la siguiente manera:

export HADOOP_ROOT_LOGGER="Debug,console"

Depuración de Kerberos en KDCRealice un seguimiento del archivo de KDC /var/log/krb5kdc.log cuando realiceuna operación HDFS para facilitar la depuración.

tail -f /var/log/krb5kdc.log

Eliminación de la desviación del relojEs importante asegurar que el tiempo esté sincronizado entre cliente y servidor, yaque Kerberos se basa en la precisión del reloj.

Si su AD tiene una desviación del reloj en relación con sus nodos de datos/KDC, tendráque configurar su servidor NTP. Puede hacerlo de la siguiente forma:

1. Utilice el escritorio remoto para conectarse a su servidor AD.

2. Ejecute los siguientes comandos:

a. w32tm /config /syncfromflags:manual /manualpeerlist:<ntp-server1>,<ntp-server2>

b. net stop w32time

c. net start w32time

Solución de problemas

212 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 213: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

CAPÍTULO 27

Propiedades de core-site.xml de Hadoop paraECS HDFS

l Propiedades de Hadoop core-site.xml para ECS HDFS.....................................214

Propiedades de core-site.xml de Hadoop para ECS HDFS 213

Page 214: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Propiedades de Hadoop core-site.xml para ECS HDFSAl configurar el archivo Hadoopcore-site.xml, utilice esta tabla como referenciapara las propiedades y sus valores relacionados.

Tabla 23 Propiedades de Hadoop core-site.xml

Propiedad Descripción

Propiedades de implementación del sistema de archivos

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>

Propiedades que definen la sección de autoridad del URI del sistema de archivos de ECS HDFS

fs.vipr.installations Una lista de nombres separados por comas. Los nombres se definen aún más mediante la propiedadfs.vipr.installation.[installation_name].hosts para identificar de manera única conjuntos de nodos dedatos de ECS. Los nombres se utilizan como un componente de la sección de autoridad del URI delsistema de archivos de ECS HDFS. Por ejemplo:

<property> <name>fs.vipr.installations</name> <value><site1>,<abc>,<testsite></value> </property>

fs.vipr.installation.[installation_name].hosts

Las direcciones IP de los nodos de datos del cluster de ECS o los balanceadores de carga para cadanombre que figura en la lista de la propiedad fs.vipr.installations. Especifique el valor en forma delista de direcciones IP separadas por comas. Por ejemplo:

<property> <name>fs.vipr.installation.<site1>.hosts</name> <value>203.0.113.10,203.0.113.11,203.0.113.12</value> </property>

<property> <name>fs.vipr.installation.<abc>.hosts</name> <value>198.51.100.0,198.51.100.1,198.51.100.2</value> </property>

<property>

Propiedades de core-site.xml de Hadoop para ECS HDFS

214 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 215: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Tabla 23 Propiedades de Hadoop core-site.xml (continuación)

Propiedad Descripción

<name>fs.vipr.installation.<testsite>.hosts</name> <value>198.51.100.10,198.51.100.11,198.51.100.12</value> </property>

fs.vipr.installation.[installation_name].resolution

Especifica cómo el software de ECS HDFS sabe cómo obtener acceso a los nodos de datos de ECS.Los valores son los siguientes:

l dynamic: Utilice este valor cuando obtiene acceso a nodos de datos de ECS directamente sin unbalanceador de carga.

l fixed: Utilice este valor cuando obtiene acceso a nodos de datos de ECS con un balanceador decarga.

<property> <name>fs.vipr.installation.testsite.resolution</name> <value>dynamic</value> </property>

fs.vipr.installation.[installation_name].resolution.dynamic.time_to_live_ms

Cuando la propiedad fs.vipr.installation.[installation_name].resolution se configura como dynamic,esta propiedad especifica la frecuencia de consulta a ECS para la lista de nodos activos. Los valoresse expresan en milisegundos. El valor predeterminado es de 10 minutos.

<property> <name>fs.vipr.installation.<testsite>.resolution.dynamic.time_to_live_ms</name> <value>600000</value> </property>

ECSURI del sistema de archivos

fs.defaultFS Una propiedad estándar de Hadoop que especifica el URI del sistema de archivos predeterminado. Laconfiguración de esta propiedad en el sistema de archivos de ECS HDFS es opcional. Si no seconfigura en el sistema de archivos de ECS HDFS, debe especificar el URI completo en cadaoperación del sistema de archivos. El URI del sistema de archivos de HDFS tiene este formato:

viprfs://[bucket_name].[namespace].[installation_name]

l bucket_name: El nombre de bucket activado para HDFS que contiene los datos que deseautilizar cuando ejecuta tareas de Hadoop.

l namespace: El espacio de nombres del grupo de usuarios relacionado con el bucket activadopara HDFS.

l installation_name: El nombre relacionado con el conjunto de nodos de datos de ECS que Hadooppuede utilizar para tener acceso a los datos de ECS. El valor de esta propiedad debe coincidircon uno de los valores especificados en la propiedad fs.vipr.installations.

Propiedades de core-site.xml de Hadoop para ECS HDFS

Propiedades de Hadoop core-site.xml para ECS HDFS 215

Page 216: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Tabla 23 Propiedades de Hadoop core-site.xml (continuación)

Propiedad Descripción

Por ejemplo:

<property> <name>fs.defaultFS</name> <value>viprfs://testbucket.s3.testsite</value> </property>

HBase requiere que haya un sistema de archivos predeterminado definido.

Propiedad UMASK

fs.permissions.umask-mode

Esta propiedad estándar de Hadoop especifica cómo ECS HDFS debe computar permisos en objetos.Los permisos se computan aplicando una propiedad umask en los permisos de entrada. El valorrecomendado para simple y Kerberos configuraciones es: 022. Por ejemplo:

<property><name>fs.permissions.umask-mode</name><value>022</value></property>

Propiedades de traducción de identidad

fs.viprfs.auth.identity_translation

Esta propiedad especifica cómo elECSCliente de HDFS determina qué dominio de Kerberospertenece un usuario determinado si uno no se especifica.ECSnodos de datos de almacenanpropietarios de archivos como username@REALM, mientras queHadoopalmacena los propietarios dearchivos como el nombre de usuario.Los valores posibles son los siguientes:

l NONE: Opción predeterminada. Los usuarios no se mapean en un dominio. Utilice estaconfiguración con un clúster de Hadoop que utilice la seguridad simple. Con esta configuración,ECS HDFS no realiza la traducción de dominio.

l CURRENT_USER_REALM: Es válido cuando Kerberos está presente. El dominio del usuario sedetecta automáticamente, y es el dominio del usuario que esté conectado actualmente. En esteejemplo, el dominio es EMC.COM porque sally está en el dominio EMC.COM. La propiedad delarchivo se cambia a [email protected].

# kinit [email protected]# hdfs dfs -chown john /path/to/file

Los dominios proporcionados en la línea de comandos tienen prioridad sobre los valores depropiedades.

<property> <name>fs.viprfs.auth.identity_translation </name> <value>CURRENT_USER_REALM</value> </property>

Propiedades de core-site.xml de Hadoop para ECS HDFS

216 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 217: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Tabla 23 Propiedades de Hadoop core-site.xml (continuación)

Propiedad Descripción

Nota

Ahora está en desuso FIXED_REALM.

fs.viprfs.auth.realm El dominio asignado a usuarios cuando la propiedad fs.viprfs.auth.identity_translation se configuraen FIXED_REALM.Esto ahora está en desuso.

fs.viprfs.auth.anonymous_translation

Esta propiedad se utiliza para determinar cómo se asignan los usuarios y grupos a archivos reciéncreados

Nota

Esta propiedad se utilizó anteriormente para determinar qué pasó con los archivos que no se hayanpropietario. Estos archivos se dice que ser propiedad de "anonymous". Archivos y directoriosanónima ya no son de propiedad y.

Los valores posibles son:

l LOCAL_USER1: Utilice esta configuración con un clúster de Hadoop que utilice la seguridadsimple. Asigna el usuario y el grupo de Unix del clúster de Hadoop a directorios y archivosrecientemente creados.

l CURRENT_USER: Utilice esta configuración para un clúster de Hadoop kerberizado. Asigna laentidad de seguridad de Kerberos ([email protected]) como el propietario del archivo odirectorio y utiliza el grupo que se asignó como el valor predeterminado para el depósito.

l NONE: (En desuso) Anteriormente, indicaba que no se debía ejecutar ninguna asignación desdelos objetos de propiedad anónima al usuario actual.

<property> <name>fs.viprfs.auth.anonymous_translation</name> <value>CURRENT_USER</value> </property>

Propiedades del dominio Kerberos y de principal del servicio

viprfs.security.principal Esta propiedad especifica el principal del servicio de ECS. Esta propiedad informa a KDC sobre elservicio de ECS. Este valor es específico de su configuración.El nombre principal puede incluir "_HOST", que se sustituye automáticamente por el nodo de datosreal FQDN en el momento de la ejecución.

Por ejemplo:

<property> <name>viprfs.security.principal</name> <value>vipr/[email protected]</value></property>

Propiedades de core-site.xml de Hadoop para ECS HDFS

Propiedades de Hadoop core-site.xml para ECS HDFS 217

Page 218: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Ejemplo de core-site.xml para el modo de autenticación simpleEste core-site.xml es un ejemplo de propiedades de ECS HDFS para el modo deautenticación simple.

Ejemplo 2 core-site.xml

<property> <name>fs.viprfs.impl</name> <value>com.emc.hadoop.fs.vipr.ViPRFileSystem</value></property>

<property> <name>fs.AbstractFileSystem.viprfs.impl</name> <value>com.emc.hadoop.fs.vipr.ViPRAbstractFileSystem</value></property>

<property> <name>fs.vipr.installations</name> <value>Site1</value></property>

<property> <name>fs.vipr.installation.Site1.hosts</name> <value>203.0.113.10,203.0.113.11,203.0.113.12</value></property>

<property> <name>fs.vipr.installation.Site1.resolution</name> <value>dynamic</value></property>

<property> <name>fs.vipr.installation.Site1.resolution.dynamic.time_to_live_ms</name> <value>900000</value></property>

<property> <name>fs.defaultFS</name> <value>viprfs://mybucket.mynamespace.Site1/</value></property>

<property> <name>fs.viprfs.auth.anonymous_translation</name> <value>CURRENT_USER</value></property>

<property> <name>fs.viprfs.auth.identity_translation</name> <value>FIXED_REALM</value></property>

<property> <name>fs.viprfs.auth.realm</name> <value>MY.TEST.REALM</value></property>

Propiedades de core-site.xml de Hadoop para ECS HDFS

218 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 219: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

CAPÍTULO 28

Ejemplo de metadatos de depósito seguro

l Asegurar los metadatos del depósito................................................................220

Ejemplo de metadatos de depósito seguro 219

Page 220: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Asegurar los metadatos del depósitoLa siguiente lista

{ "head_type": "hdfs", "metadata": [ { "name": "internal.kerberos.user.ambari-qa.name", "value": "ambari-qa@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.ambari-qa.shortname", "value": "ambari-qa" }, { "name": "internal.kerberos.user.ambari-qa.groups", "value": "hadoop,users" }, { "name": "internal.kerberos.user.amshbase.name", "value": "amshbase@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.amshbase.shortname", "value": "ams" }, { "name": "internal.kerberos.user.amshbase.groups", "value": "hadoop" }, { "name": "internal.kerberos.user.cmaurer.name", "value": "cmaurer@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.cmaurer.shortname", "value": "cmaurer" }, { "name": "internal.kerberos.user.cmaurer.groups", "value": "cmaurer,adm,cdrom,sudo,dip,plugdev,users,lpadmin,sambashare" }, { "name": "internal.kerberos.user.dn.name", "value": "dn@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.dn.shortname", "value": "hdfs@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.dn.groups", "value": "hadoop,hdfs" }, { "name": "internal.kerberos.user.hbase.name", "value": "hbase@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.hbase.shortname", "value": "hbase" }, {

Ejemplo de metadatos de depósito seguro

220 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 221: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

"name": "internal.kerberos.user.hbase.groups", "value": "hadoop" }, { "name": "internal.kerberos.user.hdfs.name", "value": "hdfs@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.hdfs.shortname", "value": "hdfs" }, { "name": "internal.kerberos.user.hdfs.groups", "value": "hadoop,hdfs" }, { "name": "internal.kerberos.user.hive.name", "value": "hive@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.hive.shortname", "value": "hive" }, { "name": "internal.kerberos.user.hive.groups", "value": "hadoop" }, { "name": "internal.kerberos.user.jhs.name", "value": "jhs@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.jhs.shortname", "value": "mapred" }, { "name": "internal.kerberos.user.jhs.groups", "value": "hadoop" }, { "name": "internal.kerberos.user.nm.name", "value": "nm@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.nm.shortname", "value": "yarn@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.nm.groups", "value": "hadoop" }, { "name": "internal.kerberos.user.nn.name", "value": "nn@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.nn.shortname", "value": "hdfs@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.nn.groups", "value": "hadoop,hdfs" }, { "name": "internal.kerberos.user.oozie.name", "value": "oozie@EXAMPLE_HDFS.EMC.COM" }, {

Ejemplo de metadatos de depósito seguro

Asegurar los metadatos del depósito 221

Page 222: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

"name": "internal.kerberos.user.oozie.shortname", "value": "oozie" }, { "name": "internal.kerberos.user.oozie.groups", "value": "hadoop,users" }, { "name": "internal.kerberos.user.rm.name", "value": "rm@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.rm.shortname", "value": "yarn@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.rm.groups", "value": "hadoop" }, { "name": "internal.kerberos.user.spark.name", "value": "spark@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.spark.shortname", "value": "spark" }, { "name": "internal.kerberos.user.spark.groups", "value": "hadoop" }, { "name": "internal.kerberos.user.yarn.name", "value": "yarn@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.yarn.shortname", "value": "yarn" }, { "name": "internal.kerberos.user.yarn.groups", "value": "hadoop" }, { "name": "internal.kerberos.user.zookeeper.name", "value": "zookeeper@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.zookeeper.shortname", "value": "ams" }, { "name": "internal.kerberos.user.zookeeper.groups", "value": "hadoop" }, { "name": "hadoop.proxyuser.hcat.groups", "value": "*" }, { "name": "hadoop.proxyuser.hcat.hosts", "value": "*" }, { "name": "hadoop.proxyuser.yarn.users", "value": "*" }, {

Ejemplo de metadatos de depósito seguro

222 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos

Page 223: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

"name": "hadoop.proxyuser.yarn.hosts", "value": "*" }, { "name": "hadoop.proxyuser.hbase.hosts", "value": "*" }, { "name": "hadoop.proxyuser.hbase.users", "value": "cmaurer" }, { "name": "hadoop.proxyuser.hive.hosts", "value": "10.247.179.42" }, { "name": "hadoop.proxyuser.hive.users", "value": "*" }, { "name": "hadoop.proxyuser.hcat.groups", "value": "*" }, { "name": "hadoop.proxyuser.hcat.hosts", "value": "*" }, { "name": "dfs.permissions.supergroup", "value": "hdfs" } ]}

Ejemplo de metadatos de depósito seguro

Asegurar los metadatos del depósito 223

Page 224: Elastic Cloud Storage (ECS)...Elastic Cloud Storage (ECS) Versión 3.0 Guía de acceso a datos 302-003-221 04

Ejemplo de metadatos de depósito seguro

224 Elastic Cloud Storage (ECS) 3.0 Guía de acceso a datos