Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos...

200
Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Transcript of Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos...

Page 1: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Elastic Cloud Storage (ECS)Versión 3.1

Guía de acceso a datos302-003-865

01

Page 2: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Copyright © 2013-2017 Dell Inc. o sus filiales. Todos los derechos reservados.

Publicado en Agosto 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.emc.com/es-ar/index.htmEMC México Tel. +52-55-5080-3700 http://www.emc.com/es-mx/index.htmEMC Venezuela (Norte de Latinoamérica) Tel. +58-212-206-6911 http://www.emc.com/es-ve/index.htm

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

Page 3: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

7

9

S3 11

S3 13Soporte de API de Amazon S3 en ECS........................................................ 14Funcionalidades compatibles y no compatibles de la API de S3................... 14

Comportamiento cuando un depósito ya existe.............................. 18Soporte de políticas de depósitos................................................................18

Creación, asignación y administración de las políticas de depósitos...20Escenarios de políticas de depósitos.............................................. 21Operaciones de política de depósito compatibles...........................22Condiciones de política de depósito compatibles........................... 24

Extensiones de S3...................................................................................... 25Extensiones del rango de bytes..................................................... 26Retención...................................................................................... 30Sistema de archivos habilitado....................................................... 31

Búsqueda de metadatos.............................................................................. 31Asignación de valores del índice de metadatos a un depósito.........32Uso del cifrado con la búsqueda de metadatos.............................. 35Asignació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

Interoperabilidad de S3 y Swift...................................................................43Crear y administrar claves secretas............................................................45

Creación de una clave para un usuario de objetos..........................45Creación de una clave secreta de S3: autoservicio........................ 46

Autenticación con el servició de S3............................................................ 49Uso de s3curl con ECS................................................................................51Uso del SDK para obtener acceso al servicio de S3..................................... 51

Uso del Java SDK de Amazon.........................................................51Cliente SDK Java para ECS........................................................... 53

OpenStack Swift 55

OpenStack Swift 57Compatibilidad de ECS con OpenStack Swift.............................................58Operaciones compatibles con OpenStack Swift......................................... 58Extensiones de Swift..................................................................................60Extensiones del rango de bytes de Swift.................................................... 60

Actualización de un rango de bytes dentro de un objeto.................61Sobrescritura de la parte de un objeto........................................... 62Adición de datos a un objeto.......................................................... 63

Figuras

Tablas

Parte 1

Capítulo 1

Parte 2

Capítulo 2

CONTENIDO

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

Page 4: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Lectura de múltiples rangos de bytes dentro de un objeto............. 64Retención................................................................................................... 64Sistema de archivos habilitado................................................................... 65Interoperabilidad de S3 y Swift...................................................................66Autenticación de OpenStack Swift.............................................................66

Crear usuarios de Swift en el Portal de ECS.................................. 67Autenticación de la versión 1 de OpenStack ..................................68Autenticación de la versión 2 de OpenStack.................................. 70Autenticación mediante la integración de ECS Keystone V3...........71

Autorización de contenedores.................................................................... 75

EMC Atmos 77

EMC Atmos 79Soporte de API de EMC Atmos en ECS...................................................... 80Llamadas compatibles de la API REST de EMC Atmos............................... 80Llamadas no compatibles de la API REST de EMC Atmos...........................82Compatibilidad de subgrupo de usuarios de la API REST de EMC Atmos....83Extensiones de API.....................................................................................84

Adición de datos a un objeto.......................................................... 84Compatibilidad de ECS con la retención y períodos de vencimientode retención para los objetos de Atmos......................................... 85

CAS 91

CAS 93Configuración del soporte de CAS en ECS................................................. 94Almacenamiento inactivo............................................................................94Cumplimiento de normas............................................................................ 95

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

Retención de CAS en ECS..........................................................................98Retención avanzada para las aplicaciones de CAS: retención basada eneventos, para asuntos legales y la controladora mín./máx.........................100Establecer políticas de retención de espacio de nombres.......................... 107Creación y configuración de un depósito para un usuario de CAS............. 108Configurar un usuario de objetos de CAS.................................................. 109Establecer varias ACL de depósito para CAS............................................. 110API de administración de ECS que admiten usuarios de CAS..................... 112Compatibilidad de la API del SDK de almacenamiento direccionable porcontenido (CAS)........................................................................................113

API de REST de administración de ECS 115

API de REST de administración de ECS 117Introducción a la API REST de administración de ECS............................... 118Realice la autenticación con la REST API de administración de ECS.......... 118

Autenticación sin cookies .............................................................118Cierre de sesión............................................................................120Comando whoami de la API REST de administración de ECS........ 121

Parte 3

Capítulo 3

Parte 4

Capítulo 4

Parte 5

Capítulo 5

CONTENIDO

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

Page 5: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Resumen de la API REST de administración de ECS..................... 121

HDFS 127

Introducción a ECS HDFS 129Introducción a ECS HDFS......................................................................... 130Configuración de Hadoop para usar ECS HDFS ........................................ 131Modos de autenticación de Hadoop.......................................................... 132

Acceso al depósito como un sistema de archivos..........................132ACL de grupo personalizado y grupo predeterminado del depósito....133Superusuario y supergrupo de Hadoop......................................... 134Acceso multiprotocolo (crosshead)..............................................134Usuario proxy............................................................................... 134Usuario de equivalencia................................................................ 135

Migración de un clúster simple a uno de Hadoop de Kerberos................... 135Modo de autenticación Kerberos de Hadoop................................ 136

Interacción del sistema de archivos...........................................................136Aplicaciones de Hadoop compatibles.........................................................137

Configuración de un clúster simple de Hadoop con ECS HDFS139Integración de un clúster de Hadoop simple con ECS HDFS..................... 140Instalación de Hortonworks HDP con Ambari............................................ 140Creación de un depósito para HDFS mediante el portal de ECS................ 142

Configurar las ACL del depósito de un grupo personalizado......... 145Configuración de ACL de depósito para un usuario.......................147Ejemplos de permisos de depósitos de Hadoop y ECS..................148

Planificación de la integración de ECS HDFS y Hadoop............................ 150Obtención del paquete de instalación y de compatibilidad de ECS HDFS.. 150Implementación de la biblioteca de clientes HDFS de ECS.........................151Configuración de las propiedades del cliente de ECS................................ 152Configuración de Hive............................................................................... 153Verificación del acceso de Hadoop a ECS................................................. 155Protección del depósito............................................................................ 155Reubicación del sistema de archivos predeterminado de HDFS a un depósitode ECS......................................................................................................156

Configuración de un clúster de Hadoop kerberizado con ECSHDFS 159Integración de un clúster de Hadoop con ECS HDFS ............................... 160Planear la migración desde un clúster simple a uno de Kerberos............... 160Asignar nombres de grupo......................................................................... 161Configuración de los nodos de ECS con la entidad de seguridad de serviciode ECS...................................................................................................... 161Activación de Kerberos mediante Ambari.................................................. 165Asegurar el depósito de ECS con metadatos.............................................166

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

Reconfiguración de las propiedades del cliente de ECS.............................170Inicio de los servicios de Hadoop y comprobación del acceso de Hadoop aECS........................................................................................................... 171

Parte 6

Capítulo 6

Capítulo 7

Capítulo 8

CONTENIDO

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

Page 6: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Solución de problemas 173Introducción.............................................................................................. 174Compruebe que AD/LDAP esté configurado correctamente con el clústerHadoop seguro.......................................................................................... 174Falla la prueba PIG: no se puede obtener la entidad de seguridad deKerberos....................................................................................................175Permiso denegado para el usuario de AD................................................... 175Errores de permisos.................................................................................. 175Error al procesar la solicitud...................................................................... 178Habilitar el registro y la depuración del lado del cliente de Kerberos..........179Depuración de Kerberos en KDC............................................................... 179Eliminación de la desviación del reloj......................................................... 179Configuración de uno o más nodos de ECS nuevos con la entidad deseguridad de servicio de ECS.................................................................... 180Solución alternativa para el error de directorio de Yarn inexistente........... 182

Apéndice: Guía sobre la configuración de Kerberos 185Guía sobre la configuración de Kerberos................................................... 186

Configuración del KDC de Kerberos............................................. 186Configuración de la autenticación de usuario AD para Kerberos... 187

Apéndice: Propiedades de core-site.xml de Hadoop para ECSHDFS 191Propiedades de core-site.xml de Hadoop para ECS HDFS........................ 192

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

Apéndice: Ejemplo de metadatos de depósito seguro 197Asegurar los metadatos del depósito.........................................................198

Capítulo 9

Capítulo 10

Capítulo 11

Capítulo 12

CONTENIDO

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

Page 7: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Activar el cumplimiento de normas en un nuevo espacio de nombres en el Portal deECS............................................................................................................................ 97Opciones de retención para los depósitos de CAS..................................................... 101Escenarios de EBR.................................................................................................... 104Escenarios de retención para asuntos legales............................................................106Nueva política de retención....................................................................................... 108Políticas de retención para un espacio de nombres................................................... 108Configuración de CAS para usuarios de objetos......................................................... 110Editar ACL del depósito.............................................................................................. 111Administración de ACL de depósitos...........................................................................111Integración de ECS HDFS en un clúster de Hadoop.................................................. 130

1

2345678910

FIGURAS

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

Page 8: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

FIGURAS

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

Page 9: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

API de S3 compatibles................................................................................................ 14Funciones adicionales.................................................................................................. 17API de S3 no compatibles............................................................................................ 17Permisos para las operaciones de objetos...................................................................23Permisos para las operaciones de depósito.................................................................23Permisos para las operaciones de recursos secundarios de depósito.......................... 23Claves de condición de AWS genéricas compatibles...................................................24Claves de condición específicas de S3 compatibles para las operaciones de objetos................................................................................................................................... 24Claves de condición específicas de S3 compatibles para las operaciones de depósito...................................................................................................................................25Llamadas compatibles de OpenStack Swift................................................................ 59Funciones adicionales................................................................................................. 60Llamadas no compatibles de OpenStack Swift........................................................... 60Configuraciones del proveedor de autenticación Keystone......................................... 74Llamadas compatibles de la API de REST de Atmos................................................... 80Llamadas no compatibles de la API de REST de Atmos...............................................82Períodos de retención de Atmos.................................................................................85Comparación de los requisitos de los archivos regulares e inactivos........................... 94Recursos de la API de administración de ECS para la retención................................ 100Funciones de la API de CAS para la retención basada en eventos............................. 104Funciones de la API de CAS relativas a la retención para asuntos legales..................106ACL de depósitos....................................................................................................... 111Grupos de ACL de depósitos...................................................................................... 112API de REST de administración de ECS- resumen de métodos................................. 122Ejemplos de permisos de depósitos para acceder al sistema de archivos en un clústerHadoop simple...........................................................................................................148Ejemplos de permisos de depósito para acceder al sistema de archivos en un clústerHadoop kerberizado.................................................................................................. 149Prerrequisitos de configuración de ECS HDFS..........................................................150Biblioteca de clientes HDFS de ECS ......................................................................... 151Configuración de Hadoop para permitir el acceso a ECS........................................... 152Configuración de templeton de Hive......................................................................... 154Configuración de Hadoop para habilitar la simultaneidad de Hive y las transacciones deACID..........................................................................................................................157Configuración de Hadoop para permitir el acceso a ECS........................................... 170Propiedades de Hadoop core-site.xml....................................................................... 192

12345678

9

101112131415161718192021222324

25

2627282930

3132

TABLAS

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

Page 10: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

TABLAS

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

Page 11: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

PARTE 1

S3

Capítulo 1, "S3"

S3 11

Page 12: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

S3

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

Page 13: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

CAPÍTULO 1

S3

l Soporte de API de Amazon S3 en ECS............................................................... 14l Funcionalidades compatibles y no compatibles de la API de S3...........................14l Soporte de políticas de depósitos....................................................................... 18l Extensiones de S3..............................................................................................25l Búsqueda de metadatos......................................................................................31l Interoperabilidad de S3 y Swift.......................................................................... 43l Crear y administrar claves secretas....................................................................45l Autenticación con el servició de S3....................................................................49l Uso de s3curl con ECS....................................................................................... 51l Uso del SDK para obtener acceso al servicio de S3.............................................51

S3 13

Page 14: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Soporte de API de Amazon S3 en ECSECS es compatible con la interfaz de programación de aplicaciones (API) de AmazonSimple Storage Service (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 unSoftware Development Kit (SDK) para desarrollar clientes que puedan acceder alservicio:

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

l Extensiones de S3 en la página 25

l Búsqueda de metadatos en la página 31

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

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

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

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, consulte la sección sobre la URL de base en Guía de administración de ECS,disponible en la página de documentación de productos de ECS.

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 14

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

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

Tabla 1 API de S3 compatibles

Función 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>

S3

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

Page 15: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Tabla 1 API de S3 compatibles (continuación)

Función Notas

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.

Política de categoría DELETE

Categoría GET (lista deobjetos)

En los depósitos habilitados para el sistema de archivos, solose admite el delimitador / al enumerar objetos.

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.

Política de categoría GET

Versiones de objeto decategoría GET

Control de versiones decategoría GET

Categoría HEAD

Enumerar cargas de múltiplespartes

Categoría PUT Si PUT se ejecuta en un depósito existente, consulte

Comportamiento cuando un depósito ya existe en la página18.

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.

Política de categoría PUT Las políticas de depósito no pueden configurarse paradepósitos habilitados para CAS o habilitados para el sistemade archivos. Las políticas de depósito no pueden configurarsepara las operaciones que no son compatibles con ECS. Se

S3

Funcionalidades compatibles y no compatibles de la API de S3 15

Page 16: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Tabla 1 API de S3 compatibles (continuación)

Función Notas

proporciona más información acerca de la compatibilidad delas políticas de depósito en Soporte de políticas de depósitos.

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. Esto difierede la respuesta de Amazon S3.

Anular carga de múltiplespartes

Enumerar partes

Nota

l La creación de depósitos con nombres de menos de tres caracteres fallará y semostrará el mensaje 400 Bad Request, InvalidBucketName.

l Cuando se crea un depósito o un objeto con contenido vacío, ECS devuelve 400invalid content-length value, a diferencia de AWS, que devuelve 400Bad Request.

l No se admite la copia de un objeto a otro depósito que indexa la misma clave deíndice de metadatos de usuario, pero con otro tipo de datos. Esta operacióngenera un error y se muestra el mensaje 500 Server Error.

l Cuando se enumeran los objetos de un depósito, si se utiliza un prefijo y undelimitador, pero se proporciona un marcador no válido, ECS muestra el mensaje500 Server Error o 400 Bad Request para un depósito habilitado para el sistema dearchivos. Esto difiere de AWS, que devuelve 200 OK y no enumera ningún objeto.

S3

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

Page 17: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Tabla 2 Funciones adicionales

Función Notas

URL prefirmados ECS es compatible con el uso de URL prefirmadas paraotorgar acceso a los objetos sin necesidad de credenciales.

Puede obtener más información aquí.

PUT fragmentada La operación PUT se puede utilizar para cargar objetos en

fragmentos. Esto permite que el contenido de envíe antes deque se conozca el tamaño total de la carga. La transferenciafragmentada utiliza el encabezado de codificación detransferencia (codificación de transferencia: fragmentada)para especificar que el contenido se transmitirá enfragmentos.

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

Tabla 3 API de S3 no compatibles

Función Notas

Etiquetado de categoríaDELETE

Sitio web de categoríaDELETE

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

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 usa su propio modelo de pagos.

Sitio web de categoría GET

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 usa su propio modelo de pagos.

Sitio web de categoría PUT

API de objeto

Torrent de objeto GET

S3

Funcionalidades compatibles y no compatibles de la API de S3 17

Page 18: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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

Función Notas

Objeto POST

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

Comportamiento cuando un depósito ya existe

Cuando se realiza un intento de crear un depósito con un nombre que ya existe, elcomportamiento de ECS puede diferir de AWS.

AWS devuelve siempre 409 Conflict cuando un usuario que tiene permisos FULLCONTROL en el depósito, o cualquier otro permiso, intenta volver a crear el depósito.Cuando un usuario de ECS que tiene FULL_CONTROL o WRITE_ACP en el depósitointenta volver a crear el depósito, ECS devuelve 200 OK y se sobrescribe la ACL; sinembargo, no se cambia el propietario. Si un usuario de ECS con permisos de lectura/escritura intenta volver a crear un depósito, se mostrará 409 Conflict.

Cuando el propietario del depósito realiza un intento para volver a crear un depósito,ECS devuelve 200 OK y sobrescribe la ACL. AWS se comporta de la misma manera.

Cuando un usuario no tiene derechos de acceso en el depósito, un intento de volver acrear el depósito genera el error 409 Conflict. AWS se comporta de la mismamanera.

Soporte de políticas de depósitos

ECS es compatible con la configuración de políticas de acceso al depósito de S3. Adiferencia de las ACL, que solo pueden permitir todas las acciones o ninguna, laspolíticas de acceso proporcionan la capacidad de otorgar a usuarios específicos, o atodos los usuarios, permisos granulares y condicionales para acciones específicas. Lascondiciones de políticas se pueden utilizar para asignar permisos para una variedad deobjetos que coinciden con la condición y se pueden utilizar para asignarautomáticamente permisos a objetos cargados recientemente.

La manera en la que se administra el acceso a recursos cuando se usa el protocolo deS3 se describe en http://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html y se puede usar como base para comprender y utilizar las políticas dedepósitos de S3 en ECS. La información de esta sección se proporciona para ofrecerinformación básica sobre el uso de políticas de depósitos y para identificar lasdiferencias al usar políticas de depósitos con ECS.

A continuación se proporciona un ejemplo de una política de depósito de ECS.

{ "Version": "2012-10-17", "Id": "S3PolicyIdNew2", "Statement":[ { "Sid":"Granting PutObject permission to user2 ", "Effect":"Allow", "Principal": "user_n2", "Action":["s3:PutObject"], "Resource":["PolicyBuck1/*"],

S3

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

Page 19: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

"Condition": { "StringEquals": {"s3:x-amz-server-side-encryption": [ "AES256"]} } } ]}

Cada política es un documento de JavaScript Object Notation (JSON) que consta deuna versión, un identificador y una o más instrucciones.

Version

El campo Version especifica la versión de lenguaje de la política y puede ser2012-10-17 o 2008-10-17. 2008-10-17 se inserta automáticamente si no seespecifica ninguna versión.

Es una buena práctica configurar el lenguaje de una nueva política en la versiónmás reciente, 2012-10-17.

Id

Id es un campo opcional.

Cada instrucción consta de los siguientes elementos:

SID

Un ID de instrucción. Se trata de una cadena que describe lo que hace lainstrucción.

Recursos

El depósito o el objeto que es el asunto de la instrucción. El recurso se puedeasociar con una instrucción Resource o NotResource.

El nombre del recurso es el nombre del depósito y de la clave y se especifica deforma diferente dependiendo de si se usa direccionamiento del estilo de hostvirtual o direccionamiento de estilo de ruta, como se muestra a continuación:

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

En cualquier caso, el nombre del recurso es el siguiente: bucketname/objectname .

Puede usar los caracteres comodín * y ?; el asterisco (*) representa cualquiercombinación de cero o más caracteres, y el signo de interrogación (?) representacualquier carácter individual. Por ejemplo, puede representar todos los objetos deldepósito denominados bucketname, utilizando:

bucketname/*

Actions

El conjunto de operaciones a las que desea asignar permisos (permitir o denegar).Las operaciones compatibles se indican en Operaciones de política de depósitocompatibles en la página 22.

La operación se puede asociar con una instrucción Action o NotAction.

S3

Soporte de políticas de depósitos 19

Page 20: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Effect

Se puede establecer en Allow o Deny a fin de determinar si desea permitir odenegar las acciones especificadas.

Principal

El usuario de objetos de ECS al que se le permiten o deniegan las accionesespecificadas.

Para otorgar permisos a todos, lo que se conoce como acceso anónimo, puedeestablecer el valor de entidad de seguridad en un carácter comodín, “*”, como semuestra a continuación:

"Principal":"*"

Nota

Las políticas de depósito de ECS no son compatibles con usuarios federados niadmiten funciones o usuarios de IAM de Amazon.

Conditions

La condición según la cual se aplicará la política. La expresión de condición seutiliza para que una condición que se proporciona en la política coincida con unacondición que se proporciona en la solicitud.

No se admiten los siguientes operadores de condición: Binary, ARN, IfExists,Check Key Exists. Las claves de condición compatibles se enumeran en Condiciones de política de depósito compatibles en la página 24.

Para obtener más información sobre los elementos que puede usar en una política,consulte la documentación de Amazon S3 aquí.

Creación, asignación y administración de las políticas de depósitos

Puede crear una política de depósito para un depósito desde el portal de ECS(consulte Guía de administración de ECS, disponible en la página de documentación deproductos de ECS). También es posible crear una política mediante otro editor yasociarla con un depósito mediante la API REST de administración de ECS o usando laAPI de S3 de ECS.

La API REST de administración de ECS proporciona las siguientes API para permitirque se agreguen, se recuperen y se eliminen recursos secundarios de política dedepósito:

l PUT /object/bucket/{bucketName}/policyl GET /object/bucket/{bucketName}/policyl DELETE /object/bucket/{bucketName}/policyPara establecer una política mediante la API REST de administración de ECS, debetener la función de administrador del sistema de ECS o de administrador de espacio denombres.

La API de S3 de ECS proporciona las siguientes API:

l PUT Bucket Policyl GET Bucket Policy

S3

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

Page 21: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

l DELETE Bucket Policy

Nota

Para establecer una política mediante la API de S3, debe ser el propietario deldepósito.

Pueden encontrar los detalles de estas API en Referencia de API de ECS.

Escenarios de políticas de depósitos

En general, el propietario del depósito tiene control total sobre un depósito y puedeotorgar permisos a otros usuarios y establecer políticas de depósitos S3 usando uncliente S3. En ECS, también es posible que un administrador del sistema o unadministrador de espacio de nombres establezca políticas de depósito mediante eleditor de políticas de depósitos del portal de ECS.

Puede usar las políticas de depósitos en los siguientes escenarios típicos:

l Otorgar permisos de depósitos a un usuario en la página 21

l Otorgar permisos de depósitos a todos los usuarios en la página 22

l Asigne permisos a objetos creados automáticamente en la página 22

Otorgar permisos de depósitos a un usuarioSi desea que un usuario que no es el propietario de un depósito tenga permisos en eldepósito, puede especificar el recurso en el cual desea cambiar los permisos,configurar el atributo de entidad de seguridad en el nombre del usuario y especificaruna o más acciones que desee permitir.

El siguiente ejemplo muestra una política que otorga a un usuario denominado user1el permiso de actualizar y leer los objetos en el depósito denominado mybucket.

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

También puede agregar condiciones. Por ejemplo, si solo desea que el usuario puedaleer y escribir objetos al acceder al depósito desde una dirección IP específica, puedeagregar una condición IpAddress como se muestra en la siguiente política.

{ "Version": "2012-10-17", "Id": "S3PolicyId1", "Statement": [ { "Sid": "Grant permission ", "Effect": "Allow", "Principal": ["user1"], "Action": [ "s3:PutObject","s3:GetObject" ],

S3

Escenarios de políticas de depósitos 21

Page 22: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

"Resource":[ "mybucket/*" ] "Condition": {"IpAddress": {"aws:SourceIp": "<Ip address>"} } ]}

Otorgar permisos de depósitos a todos los usuariosSi desea que un usuario que no es el propietario de un depósito tenga permisos en eldepósito, puede especificar el recurso en el cual desea cambiar los permisos,configurar el atributo de entidad de seguridad en anybody (*) y especificar una o másacciones que desee permitir.

El siguiente ejemplo muestra una política que otorga a cualquier usuario el permiso deleer objetos en el depósito denominado mybucket.

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

Asigne permisos a objetos creados automáticamentePuede usar políticas de depósitos para permitir automáticamente el acceso a datos deobjetos recopilados. En la siguiente política de depósito, user1 y user2 pueden crearrecursos secundarios (es decir, objetos) en el depósito denominado mybucket ypueden configurar ACL de objetos. Con la capacidad de establecer ACL, los usuariospueden establecer permisos para otros usuarios. Si establece la ACL en la mismaoperación, se puede configurar una condición de modo que se deba especificar unalectura pública de ACL almacenada cuando se cree el objeto. Esto garantiza quecualquier persona pueda leer todos los objetos creados.

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

Operaciones de política de depósito compatibles

Las siguientes tablas muestran las palabras clave de permiso compatibles, y lasoperaciones de depósito, objeto y recurso secundario que controlan.

S3

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

Page 23: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Tabla 4 Permisos para las operaciones de objetos

Palabra clave de permiso Operaciones de S3 admitidas

S3:GetObject se aplica a laversión más reciente de undepósito habilitado para laversión

GET Object, HEAD Object

s3:GetObjectVersion GET Object, HEAD ObjectEste permiso es compatible con las solicitudes que especificanun número de versión

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

s3:GetObjectAcl ACEL de objeto GET

s3:GetObjectVersionAcl GET ACL (para una versión específica del objeto)

s3:PutObjectAcl PUT Object ACL

s3:PutObjectVersionAcl PUT Object (para una versión específica del objeto)

s3:DeleteObject Objeto DELETE

s3:DeleteObjectVersion DELETE Object (para una versión específica del objeto)

s3:ListMultipartUploadParts Enumerar partes

s3:AbortMultipartUpload Anular carga de múltiples partes

Tabla 5 Permisos para las operaciones de depósito

Palabra clave de permiso Operaciones de S3 admitidas

s3:DeleteBucket Categoría DELETE

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

s3:ListBucketVersions Versiones de objeto de categoría GET

s3:GetLifecycleConfiguration Ciclo de vida de categoría GET

s3:PutLifecycleConfiguration Ciclo de vida de categoría PUT

Tabla 6 Permisos para las operaciones de recursos secundarios de depósito

Palabra clave de permiso Operaciones de S3 admitidas

s3:GetBucketAcl ACL de categoría GET

s3:PutBucketAcl ACL de categoría PUT

s3:GetBucketCORS CORS de categoría GET

s3:PutBucketCORS CORS de categoría PUT

s3:GetBucketVersioning Control de versiones de categoría GET

s3:PutBucketVersioning Control de versiones de categoría PUT

s3:GetBucketPolicy Política de categoría GET

S3

Operaciones de política de depósito compatibles 23

Page 24: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Tabla 6 Permisos para las operaciones de recursos secundarios de depósito (continuación)

Palabra clave de permiso Operaciones de S3 admitidas

s3:DeleteBucketPolicy Política de categoría DELETE

s3:PutBucketPolicy Política de categoría PUT

Condiciones de política de depósito compatiblesEl elemento de condición se utiliza para especificar las condiciones que determinancuándo está vigente una política.

Las siguientes tablas muestran las claves de condición que son compatibles con ECS yque se pueden utilizar en expresiones de condición.

Tabla 7 Claves de condición de AWS genéricas compatibles

Nombre clave Descripción Operadoresaplicables

aws:CurrentTime Utilizada para verificar las condiciones defecha/hora.

Operador de fecha

aws:EpochTime Utilizada para verificar las condiciones defecha/hora con una fecha epoch o tiempo deUNIX (consulte Operadores de condición defecha).

Operador de fecha

aws:principalType Se usa para comprobar el tipo de entidad deseguridad (usuario, cuenta, usuario federado,etc.) para la solicitud actual.

Operador de cadena

aws:SourceIp Se utiliza para comprobar la dirección IP delsolicitante.

Operador de cadena

aws:UserAgent Se utiliza para comprobar la aplicación decliente del solicitante.

Operador de cadena

aws:username Se usa para comprobar el nombre de usuariodel solicitante.

Operador de cadena

Tabla 8 Claves de condición específicas de S3 compatibles para las operaciones de objetos

Nombre clave Descripción Permisos aplicables

s3:x-amz-acl Establece una condición pararequerir permisos de accesoespecíficos cuando el usuariocarga un objeto.

s3:PutObject,s3:PutObjectAcl,s3:PutObjectVersionAcl

s3:x-amz-grant-permission(para los permisos explícitos),donde permission puede serread, write, read-acp, write-acp, full-control

El propietario del depósitopuede agregar condicionesusando estas claves a fin derequerir ciertos permisos.

s3:PutObject,s3:PutObjectAcl,s3:PutObjectVersionAcl

S3

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

Page 25: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Tabla 8 Claves de condición específicas de S3 compatibles para las operaciones deobjetos (continuación)

Nombre clave Descripción Permisos aplicables

s3:x-amz-server-side-encryption

Requiere que el usuarioespecifique este encabezadoen la solicitud.

s3:PutObject,s3:PutObjectAcl

s3:VersionId Restringe al usuario al accesoa los datos solo para unaversión específica del objeto.

s3:PutObject,s3:PutObjectAcl,s3:DeleteObjectVersion

Tabla 9 Claves de condición específicas de S3 compatibles para las operaciones de depósito

Nombre clave Descripción Permisos aplicables

s3:x-amz-acl Establece una condición pararequerir permisos de accesoespecíficos cuando el usuariocarga un objeto.

s3:CreateBucket,s3:PutBucketAcl

s3:x-amz-grant-permission(para los permisos explícitos),donde permission puede serread, write, read-acp, write-acp, full-control

El propietario del depósitopuede agregar condicionesusando estas claves a fin derequerir ciertos permisos.

s3:CreateBucket,s3:PutBucketAcl

s3:prefix Permite recuperar solo lasclaves de objeto con unprefijo específico.

s3:ListBucket,s3:ListBucketVersions

s3:delimiter Se solicita al usuario queespecifique el parámetro dedelimitador en la solicitud GetBucket (List Objects)

s3:ListBucket,s3:ListBucketVersions

s3:max-keys Limita la cantidad de clavesque ECS devuelve enrespuesta a la solicitud GetBucket (List Objects)solicitando que el usuarioespecifique el parámetro max-keys.

s3:ListBucket,s3:ListBucketVersions

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 en la página 26

l Retención en la página 30

l Sistema de archivos habilitado en la página 31

l Búsqueda de metadatos en la página 31

S3

Extensiones de S3 25

Page 26: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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 26

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

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

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

Nota

Una operación de rango de bytes (actualizar/anexar/sobrescribir) en un objeto convarias versiones no crea una nueva versión, sino que actualiza la versión más reciente.Una operación de rango de bytes (actualizar/anexar/sobrescribir) en una versiónanterior de un objeto actualiza la versión más reciente.

Actualización de un rango de bytes dentro de un objetoPuede usar las extensiones de ECS para el protocolo de S3 a fin de actualizar un rangode bytes dentro de un objeto.

La actualización parcial de un objeto puede ser muy útil en muchos casos. Por ejemplo,para modificar un encabezado binario almacenado al principio de un archivo grande. EnAmazon o en otras plataformas compatibles con S3, es necesario volver a enviar elarchivo completo.

El siguiente ejemplo demuestra el uso de la actualización de rango de bytes. En elejemplo, object1 tiene el valor The quick brown fox jumps over thelazy 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.

Para actualizar un rango de bytes específico dentro de un objeto, el encabezado delrango en la solicitud de datos de objetos debe incluir las compensaciones de inicio y definalización del objeto que desea actualizar. El formato es el siguiente: Range:bytes=<startOffset>-<endOffset>.

S3

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

Page 27: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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 es The quick green fox jumpsover the lazy dog. Se actualiza un rango de bytes específico dentro del objeto,por lo que se reemplaza la palabra brown con green.

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 objetoPuede usar las extensiones de ECS para el protocolo de S3 a fin de sobrescribir partede un objeto.

Para sobrescribir parte de un objeto, proporcione los datos que se deben escribir y lacompensación de inicio. Los datos de la solicitud se escriben a partir de lacompensación proporcionada. El formato es el siguiente: Range:<startingOffset>- .

S3

Extensiones del rango de bytes 27

Page 28: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Por ejemplo, para escribir los datos brown cat en la compensación 10, se debe emitirla 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

Cuando se recupera el objeto, una parte de los datos se sustituyen en la compensaciónde inicio proporcionada (green fox se reemplaza con brown cat) y el valor final esThe quick brown cat jumps over the lazy dog and cat.

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 objetoPuede usar las extensiones de ECS para el protocolo de S3 a fin de agregar datos a unobjeto.

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 datos al objeto sin especificar una compensación(la compensación correcta se devuelve en la respuesta). Por ejemplo, para poderagregar líneas a un archivo de registro, en Amazon u otras plataformas compatiblescon S3, debe enviar el archivo de registro completo nuevamente.

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-

S3

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

Page 29: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

En el siguiente ejemplo, se muestra una solicitud de adición a un objeto existente conun valor de rango 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, and cat se ha agregado y se puede ver el valorcompleto: The quick green fox jumps over the lazy dog and cat.

GET /bucket1/object1 HTTP/1.1ACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 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 objetoPuede usar las extensiones de ECS para el protocolo de S3 a fin de actualizar un rangode bytes dentro de un objeto.

La lectura de múltiples partes de un objeto puede ser muy útil en muchos casos. Porejemplo, para obtener varias partes de un video. En Amazon o en otras plataformascompatibles con S3, es necesario enviar una solicitud diferente para cada parte.

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

GET /bucket1/object1 HTTP/1.1Date: Mon, 17 Jun 2013 20:51:55 -0000x-emc-namespace: emcRange: bytes==4-8,41-44

S3

Extensiones del rango de bytes 29

Page 30: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Content-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 o mediante la API REST de administración de ECS, suadministrador de ECS debe establecer la política de retención aplicada a un objetomediante el encabezado x-emc-retention-policy en el objeto y el períodode retención de la política.

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

Un período de retención que se almacena para un depósito establece un períodode retención para todos los objetos, y la política o el período de retención en elnivel de objetos se usa para proporcionar una configuración de objetos específicacuando se requiere una retención más prolongada. El período de retención seestablece mediante un encabezado x-emc-retention-period en 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 para determinar si se puede ejecutar laoperación. El período de objeto se establece directamente en el objeto o mediante lapolítica de retención de objetos.

S3

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

Page 31: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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 tienenhabilitadas las versiones y en aquellos que no las 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 FS mediante el encabezado x-emc-file-system-access-enabled cuando se crea un depósito mediante el protocolo de S3. El accesodel sistema de archivos también se puede habilitar cuando se crea un depósito desdeel portal de ECS (o 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 de la compatibilidad entre cabezales es la manera en que lospermisos de objetos y archivos se traducen entre los protocolos y, en el caso delacceso del sistema de archivos, la manera en que los conceptos de grupo y usuario setraducen entre los protocolos de archivos y objetos.

Puede encontrar más información sobre la compatibilidad entre cabezales consistemas de archivos en Guía de administración de ECS, disponible en la página dedocumentación de productos de ECS.

Búsqueda de metadatosLa API compatible con S3 de ECS proporciona una extensión de búsqueda demetadatos que permite que los objetos dentro de un depósito se puedan indexar en

S3

Sistema de archivos habilitado 31

Page 32: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

función de sus metadatos y que el índice de metadatos que se desea consultarencuentre 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.

Al realizar una consulta de objetos en función de sus metadatos indexados, sedevuelven los objetos que coinciden con la consulta y los valores de sus metadatosindexados. También puede elegir devolver todos los metadatos del sistema o delusuario asociados con los objetos devueltos. Además de los metadatos del sistema, losobjetos también tienen atributos que pueden devolverse como parte de los resultadosde búsqueda de metadatos. Se enumeran los valores de metadatos del sistema queestán disponibles y se pueden indexar y los valores de metadatos que puedendevolverse opcionalmente con resultados de consulta de búsqueda, aquí.

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

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 deshabilitar eluso de indexación en un depósito, pero no puede cambiar o eliminar valores de índiceindividuales.

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

S3

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

Page 33: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

La página Manage > Bucket le permite crear depósitos y asignar valores de índicedurante el proceso de creación. Para obtener más información, consulte Guía deadministración de ECS, disponible en la página de documentación de productos de ECS.

Configuración de valores de índice mediante la API de REST deadministració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> <Key> <Name>CreateTime</Name> <Datatype>datetime</Datatype>

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.1 Guía de acceso a datos 302-003-865 01

</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 latabla a continuación y se proporcionan vínculos de referencia para la API

Ruta de API Descripción

GET /?searchmetadata Enumera los nombres de todos los metadatosdel sistema disponibles para la indexación endepósitos nuevos.

S3

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

Page 35: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Ruta de API Descripción

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.

Uso del cifrado con la búsqueda de metadatos

Cuando se utiliza el cifrado en un depósito, se almacenan claves de metadatos deobjeto que se indexan de forma no cifrada, por lo que siempre es posible realizarbúsquedas de metadatos en los depósitos cifrados.

Cuando el cifrado se realiza mediante claves proporcionadas por el sistema, losmetadatos de objeto devueltos por una consulta se descifran y se muestran enformato de texto. Sin embargo, si los datos se cifraron mediante una clave de cifradoproporcionada por el usuario, los metadatos que no estén indexados aún estaráncifrados cuando sean devueltos por una consulta de búsqueda de metadatos, ya quelas claves cifradas por el usuario no pueden proporcionarse por medio de la consulta.

Asignación de metadatos a objetos mediante el protocolo de S3Los 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:

S3

Uso del cifrado con la búsqueda de metadatos 35

Page 36: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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.

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}&max-keys=(num_keys)&marker=(marker value)

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

S3

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

Page 37: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Sintaxis de la API Cuerpo de la respuesta

<entry> <key>mtime</key> <value>1449081778025</value> </entry> </mdMap> </queryMds> <queryMds> <type>USERMD</type> <mdMap> <entry> <key>x-amz-meta-INT</key> <value>407</value> </entry> <entry> <key>x-amz-meta-STR</key> <value>String4</value> </entry> </mdMap> </queryMds> <indexKey/> </object> <object ... </object> </ObjectMatches></BucketQueryResult>

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:

S3

Uso de las consultas de búsqueda de metadatos 37

Page 38: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

l ContentEncoding

l ContentType

l Retención

l Vencimiento

l Expira

Además, es posible devolver los metadatos no indexados asociados con losobjetos que devuelve la consulta de búsqueda. Utilice lo siguiente:

ALL

Enumera los metadatos de usuario y del sistema asociados con los objetosdevueltos.

ALL_SMD

Enumera los metadatos del sistema asociados con los objetos devueltos.

ALL_UMD

Enumera los metadatos de usuario asociados con los objetos devueltos.

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

El número máximo de objetos que coinciden con la consulta que se deberíadevolver. Si hay más objetos que el max-keys, 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.

S3

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

Page 39: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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-01T00: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>

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-keys 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-01T00:00:00Z and x-amz-meta-Foo==2015-11-30T12:00:00Z&max-keys=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-01T00:00:00Z and x-amz-meta-Foo==2015-11-30T12:00:00Z&max-keys=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:

S3

Uso de las consultas de búsqueda de metadatos 39

Page 40: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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).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> <ObjectMatches> <object> <objectName>file4</objectName> <objectId>09998027b1b7fbb21f50e13fabb481a237ba2f60f352d437c8da3c7c1c8d7589</objectId> <versionId>0</versionId> <queryMds> <type>SYSMD</type> <mdMap> <entry> <key>createtime</key> <value>1449081778025</value> </entry> <entry>

S3

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

Page 41: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

<key>size</key> <value>1024</value> </entry> <entry> <key>mtime</key> <value>1449081778025</value> </entry> </mdMap> </queryMds> <queryMds> <type>USERMD</type> <mdMap> <entry> <key>x-amz-meta-INT</key> <value>407</value> </entry> <entry> <key>x-amz-meta-STR</key> <value>String4</value> </entry> </mdMap> </queryMds> <indexKey/> </object> <object> <objectName>file5</objectName> <objectId>1ad87d86ef558ca0620a26855662da1030f7d9ff1d4bbc7c2ffdfe29943b9150</objectId> <queryMds> <type>SYSMD</type> <mdMap> <entry> <key>createtime</key> <value>1449081778396</value> </entry> <entry> <key>size</key> <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

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.1 Guía de acceso a datos 302-003-865 01

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:

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

Nombre del objeto cadena Nombre del objeto.

Propietario cadena Identidad del propietario del objeto.

Tamaño 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

Vencimiento datetime

ContentEncoding cadena

S3

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

Page 43: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Nombre (alias) Tipo

Expira datetime

Retención integer

Interoperabilidad de S3 y SwiftLos protocolos de S3 y Swift pueden interoperar para que las aplicaciones de S3puedan acceder a los objetos en depósitos de Swift y las aplicaciones de Swift puedanacceder a los objetos en depósitos de S3.

Al considerar si los objetos creados con el cabezal de S3 serán accesibles mediante elcabezal de Swift, y viceversa, debe considerar primero si los usuarios pueden accederal depósito (denominado “contenedor” en Swift). A cada depósito se le asigna un tipode depósito (S3 o Swift, por ejemplo) según el cabezal de ECS que lo haya creado y, sidesea asegurarse de que una aplicación pueda tener acceso a depósitos tanto de Swiftcomo de S3, debe asegurarse de que los usuarios de objetos tengan los permisosapropiados para el tipo de depósito. Esto requiere cierto análisis, porque la forma enque se determinan los permisos para los depósitos de Swift y de S3 es diferente.

Nota

La interoperabilidad de S3 y Swift no es compatible con el uso de políticas de depósito.Las políticas de depósito se aplican solo al acceso a depósitos mediante el cabezal deS3 y no se aplican cuando se accede a un depósito con la API de Swift.

En ECS, se pueden dar credenciales de S3 y de Swift al mismo nombre de usuario deobjeto. Por lo tanto, en lo que respecta a ECS, un usuario llamado john que seautentica como un usuario de Swift, a continuación, puede acceder a cualquier recursode S3 al que john tenga permitido acceder.

El acceso a un recurso se proporciona al propietario del depósito y a los usuarios a losque se les da permiso para el depósito mediante ACL. Si un usuario de S3 crea undepósito, por ejemplo, el nombre de usuario de S3 será el propietario del depósito ytendrá permisos completos en el depósito, y un usuario de Swift con el mismo nombretambién tendrá permisos completos en el depósito.

Cuando se desea que los usuarios que no son el propietario puedan acceder a undepósito, se pueden asignar permisos con ACL. Se puede otorgar acceso a loscontenedores de Swift mediante las ACL de grupo (en ECS, estas son las ACL degrupo personalizado), y el cabezal de Swift realiza una comprobación de la membresíade grupo antes de verificar los permisos de ACL de grupo. Se puede considerar que loscontenedores de Swift tienen el grupo admin agregado implícitamente y, por lo tanto,cualquier usuario que sea miembro del grupo admin (un usuario admin) puedeacceder a cualquier otro contenedor del usuario admin. Solo los usuarios admintienen permisos para crear y eliminar contenedores y para mostrar la lista completa deellos. Los permisos del usuario admin solo se aplican al espacio de nombres al quepertenece el usuario. El acceso a los depósitos de S3 depende de los permisos deusuario (ACL de usuario), no de los permisos de grupo. Para determinar el acceso a undepósito, el cabezal de S3 comprueba si el usuario tiene permisos de ACL en eldepósito. Esto se muestra en la figura de abajo.

S3

Interoperabilidad de S3 y Swift 43

Page 44: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

S3 HEAD SWIFT HEAD

S3 APPLICATION

S3 BUCKET ACCESS SWIFT BUCKET ACCESS

GROUP ACLUSER ACL

SWIFT APPLICATION

ECS OBJECT USER

S3 KEY

SWIFT PASSWORDSWIFT GROUP

Swift user accessto Swift containerS3 user access

to S3 bucket

check Swift group ACLpermissions

Swift user access to S3 bucket

S3 user access to Swift container

check S3user ACL

CROSSHEAD

Debido a que Swift utiliza grupos para habilitar el acceso a los recursos, para que unusuario de S3 pueda acceder a un contenedor de Swift, el usuario de S3 también debeasignarse a un grupo de Swift, ya sea el grupo admin o un grupo al que se le hayandado ACL de grupo personalizado en el contenedor.

En resumen, una de las siguientes condiciones se debe cumplir para el acceso a losdepósitos de S3:

l El usuario de Swift o de S3 debe ser el propietario del depósito.

l El usuario de Swift o de S3 se debe agregar a la ACL de usuarios para el depósito.

Una de las siguientes condiciones se debe cumplir para obtener acceso a loscontenedores de Swift:

l El usuario de S3 o de Swift debe ser el propietario del contenedor.

l El usuario de S3 también debe ser un usuario de Swift y debe agregarse a un grupode Swift. El grupo de Swift debe agregarse como grupo personalizado, a menosque el usuario sea miembro del grupo admin de Swift, que se agregaautomáticamente a los grupos personalizados.

l El usuario de Swift debe haber sido agregado a una ACL de grupo para elcontenedor o el usuario debe estar en el grupo admin de Swift, que se agregaautomáticamente a los grupos personalizados.

S3

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

Page 45: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Nota

Leer un objeto DLO de Swift por medio de la API de S3 no funcionará debido a que lasolicitud seguirá una ruta de código genérico para la lectura sin confirmar la presenciade la clave de metadatos X-Object-Manifest para poder unir el objeto nuevamentedesde sus rutas individuales.

Nota

Para una carga MPU, la operación list parts de Swift falla debido a que nocomprende el recurso secundario '?uploadId=<uploadId>'.

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 45).

l Un usuario de dominio crea una cuenta de usuario de objeto creando una nuevaclave secreta utilizando la API de autoservicio que proporciona API de REST deadministración de ECS (Creación de una clave secreta de S3: autoservicio en lapágina 46).

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 45

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

Para obtener más información sobre los usuarios de ECS, consulte Guía deadministración de ECS, disponible en la página de documentación de productos de ECS.

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 de espacio de nombres o un administrador del sistemade ECS.

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

S3

Crear y administrar claves secretas 45

Page 46: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Procedimiento

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

2. En la tabla de usuarios de objetos, seleccione New Object User o Edit para unusuario existente al que desee asignar una clave secreta.

3. Para S3, seleccione Generate & Add Password.

Para cambiar una clave secreta de un usuario, puede generar una segunda clavesecreta y especificar cuándo caduca la primera clave.

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

Creación de una seña secreta de S3 usando API de REST de administración de ECSAPI 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 nombres puedecrear claves para los usuarios en su espacio denombres. Un administrador del sistema puedeasignar claves a los usuarios en cualquierespacio de nombres.

Para cambiar una clave, se puede asignar unasegunda clave y se puede especificar la hora ala que vence la primera clave.

Puede encontrar más información sobre la llamada de API en la Referencia de API deECS.

Creación de una clave secreta de 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.

Referencia de API de ECS se puede utilizar cuando desee crear un clientepersonalizado para ejecutar ciertas operaciones de administración de ECS. Paraoperaciones simples, los usuarios de dominio pueden utilizar curl o un cliente HTTPbasado 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.

S3

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

Page 47: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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>

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 autoservicioLos ejemplos que aparecen aquí lo ayudarán a utilizar la API REST de administración deECS para crear, leer y administrar claves secretas.

Para realizar operaciones con claves secretas, primero debe autenticarse con la API deadministración. En los ejemplos proporcionados, se utiliza la herramienta curl.

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

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

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

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

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

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>

S3

Creación de una clave secreta de S3: autoservicio 47

Page 48: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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

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

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

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>

S3

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

Page 49: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

<link rel="self" href="/object/secret-keys"/></user_secret_keys>

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

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

S3

Autenticación con el servició de S3 49

Page 50: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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

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

S3

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

Page 51: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

x-amz-request-id: 0af7c382:156123ab861:4192:896x-amz-id-2: 3e2b2280876d444d6c7215091692fb43b87d6ad95b970f48911d635729a8f7ffLocation: /bucket_demo_2016072603365969263Content-Length: 0

Uso de s3curl con ECSSe requiere una versión modificada de s3curl para su uso con ECS.

Cuando se usan encabezados personalizados de ECS (x-emc), se debe construir elelemento de firma del encabezado de autorización para incluir los encabezadospersonalizados. Además, cuando se conecta a la versión 3.0 de ECS y versionesposteriores, los parámetros “search” y “searchmetadata” son parte del cálculo defirma.

Puede obtener una versión específica de ECS de s3curl que está modificada paramanejar estas condiciones en EMCECS Git Repository.

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 ECS proporciona información sobre los diversos clientes que estándisponibles y proporciona 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 deECS.

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

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

Nota

Si desea utilizar las extensiones de la API de ECS (consulte Extensiones de S3 en lapágina 25), en el Java SDK de 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 sedescribe en Uso de la búsqueda de metadatos desde SDK Java de ECS en la página41.

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.

S3

Uso de s3curl con ECS 51

Page 52: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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(new BasicAWSCredentials(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).

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(new BasicAWSCredentials(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(new BasicAWSCredentials(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, que

S3

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

Page 53: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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

S3

Cliente SDK Java para ECS 53

Page 54: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

import com.emc.vipr.services.s3.ViPRS3Client;

public class BucketCreate {

private ViPRS3Client s3;

public BucketCreate() {

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

}

public static void main(String[] args) throws Exception { BucketCreate instance = new BucketCreate(); instance.runSample(); } public void runSample() { String bucketName="mybucket"; String key1 = "test1.txt"; String content = "Hello World!"; try { s3.createBucket(bucketName); s3.putObject(bucketName, key1, new StringInputStream(content), null); } catch (Exception e) { } }}

S3

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

Page 55: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

PARTE 2

OpenStack Swift

Capítulo 2, "OpenStack Swift"

OpenStack Swift 55

Page 56: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

OpenStack Swift

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

Page 57: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

CAPÍTULO 2

OpenStack Swift

l Compatibilidad de ECS con OpenStack Swift.................................................... 58l Operaciones compatibles con OpenStack Swift.................................................58l Extensiones de Swift......................................................................................... 60l Extensiones del rango de bytes de Swift............................................................60l Retención...........................................................................................................64l Sistema de archivos habilitado........................................................................... 65l Interoperabilidad de S3 y Swift.......................................................................... 66l Autenticación de OpenStack Swift.................................................................... 66l Autorización de contenedores............................................................................75

OpenStack Swift 57

Page 58: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Compatibilidad de ECS con OpenStack SwiftECS incluye compatibilidad con la API de OpenStack Swift y puede reemplazar a Swiften un ambiente OpenStack. En esta sección, se describen las operacionescompatibles, 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

ECS es compatible con la API de OpenStack Swift y se puede usar con las aplicacionesque son compatibles con esa API. Los siguientes temas describen los métodoscompatibles, las extensiones de ECS y el mecanismo de autenticación:

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

l Extensiones de Swift en la página 60

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

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

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

l Ejemplos de la API de OpenStack

En un ambiente OpenStack, ECS puede usarse como un reemplazo para elcomponente de OpenStack Swift o junto con una instalación existente de OpenStackSwift. Si bien ECS se puede usar con cualquier distribución de OpenStack, se haprobado con Mirantis OpenStack 9.1. Tenga en cuenta que ECS se evaluó como unreemplazo de Swift para el almacenamiento de objetos de usuario final y no comoback-end de Glance.

Para usar OpenStack con ECS, se debe configurar ECS para que pueda autenticar alos usuarios de OpenStack. Consulte Autenticación mediante la integración de ECSKeystone V3 para obtener más información acerca de la configuración de laautenticación.

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 58

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

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.

OpenStack Swift

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

Page 59: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Tabla 10 Llamadas compatibles de OpenStack Swift

Método Ruta Descripción

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

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

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.

Nota

GET range no funcionará para un objeto grandeestático (SLO) si los segmentos se crearon antes deECS 3.0.

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 SLO, elobjeto puede ser un manifiesto, 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.

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

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

OpenStack Swift

Operaciones compatibles con OpenStack Swift 59

Page 60: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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

Método Ruta Descripción

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.

Tabla 11 Funciones adicionales

Función Notas

URL temporales ECS es compatible con el uso de URL temporales para que losusuarios puedan tener acceso a los objetos sin necesidad decredenciales.

Puede obtener más información aquí.

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

Tabla 12 Llamadas no compatibles de OpenStack Swift

Método Ruta Descripción

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

La operación de copia se puede llevar a cabomediante PUT v1/{account}/{container}/{object}con el encabezado X-Copy-From.

HEAD v1/{account} Recupera los metadatos de cuenta. No es totalmentecompatible, ya que devuelve cero para los bytesalmacenados (X-Account-Bytes-Used).

Extensiones de SwiftECS es compatible con diferentes extensiones de la API de Swift.

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

l Extensiones del rango de bytes de Swift en la página 60

l Retención en la página 64

l Sistema de archivos habilitado en la página 65

Extensiones del rango de bytes de Swift

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 61

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

OpenStack Swift

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

Page 61: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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

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

Actualización de un rango de bytes dentro de un objetoPuede usar las extensiones de ECS para el protocolo de Swift a fin de actualizar unrango de bytes dentro de un objeto.

La actualización parcial de un objeto es útil en muchos casos. Por ejemplo, paramodificar un encabezado binario almacenado al principio de un archivo grande. EnSwift o en otras plataformas compatibles con Swift, es necesario volver a enviar elarchivo completo.

El siguiente ejemplo demuestra el uso de la actualización de rango de bytes. En elejemplo, object1 tiene el valor The quick brown fox jumps over thelazy dog.

GET /container1/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.

Para actualizar un rango de bytes específico dentro de un objeto, el encabezado delrango en la solicitud de datos de objetos debe incluir las compensaciones de inicio y definalización del objeto que desea actualizar. El formato es 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 se reemplazan por el valorenviado en la solicitud. Aquí, se envía el nuevo valor de green.

PUT /container1/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

OpenStack Swift

Actualización de un rango de bytes dentro de un objeto 61

Page 62: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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

Al leer el objeto nuevamente, el valor nuevo es The quick green fox jumpsover the lazy dog. Se actualiza un rango de bytes específico dentro del objeto,por lo que se reemplaza la palabra brown con green.

GET /container1/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 objetoPuede usar las extensiones de ECS para el protocolo de Swift a fin de sobrescribirparte de un objeto.

Para sobrescribir parte de un objeto, se proporcionan los datos que se deben escribir yla compensación de inicio. Los datos de la solicitud se escriben a partir de lacompensación proporcionada. El formato es el siguiente: Range:<startingOffset>-Por ejemplo, para escribir los datos brown cat en la compensación 10, se debe emitirla siguiente solicitud PUT:

PUT /container1/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

OpenStack Swift

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

Page 63: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Cuando se recupera el objeto, una parte de los datos se sustituyen en la compensaciónde inicio proporcionada (green fox se reemplaza con brown cat) y el valor final esThe quick brown cat jumps over the lazy dog and cat.

GET /container1/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 objetoPuede usar las extensiones de ECS para el protocolo de Swift a fin de agregar datos aun 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 datos al objeto sin especificar una compensación(la compensación correcta se devuelve en la respuesta). Por ejemplo, para poderagregar líneas a un archivo de registro, en Swift u otras plataformas compatibles conSwift, debe enviar el archivo de registro completo nuevamente.

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-En el siguiente ejemplo, se muestra una solicitud de adición a un objeto existente conun valor de rango de bytes=-1-. Aquí el valor and cat se envía en la solicitud.

PUT /container1/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

OpenStack Swift

Adición de datos a un objeto 63

Page 64: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Cuando se recupera el objeto, and cat se ha agregado y se puede ver el valorcompleto: The quick green fox jumps over the lazy dog and cat.

GET /container1/object1 HTTP/1.1ACCEPT: application/json,application/xml,text/html,application/octet-streamDate: Mon, 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 objetoPuede usar las extensiones de ECS para el protocolo de Swift a fin de leer variosrangos de bytes dentro de un objeto.

La lectura de múltiples partes de un objeto es muy útil en muchos casos. Por ejemplo,para obtener varias partes de un video. En Swift o en otras plataformas compatiblescon Swift, es necesario enviar una solicitud diferente para cada parte.

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

GET /container1/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

OpenStack Swift

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

Page 65: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

El cabezal de Swift de ECS admite la retención de objetos para evitar que se elimineno modifiquen durante un período especificado. Esto es una extensión de ECS y no estádisponible en la API de Swift 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.Mediante la API REST de administración de ECS (o desde el portal de ECS), sedeben establecer la política de retención aplicada a un objeto mediante elencabezado x-emc-retention-policy en el objeto y el período de retenciónde la política.

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

Un período de retención que se almacena para un depósito establece un períodode retención para todos los objetos, y la política o el período de retención en elnivel de objetos se usa para proporcionar una configuración de objetos específicacuando se requiere una retención más prolongada. El período de retención seestablece mediante un encabezado x-emc-retention-period en 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 directamente en el objetomediante la política de retención de objetos, a fin de determinar si se puede ejecutar laoperación.

Sistema de archivos habilitado

Los depósitos de Swift también pueden tener el sistema de archivos (FS) habilitado demodo que se puedan leer los archivos escritos mediante el protocolo de Swift usandoprotocolos 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 Swift. El acceso del sistema de archivos también se puede habilitar cuando se creaun depó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 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 de

OpenStack Swift

Sistema de archivos habilitado 65

Page 66: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Swift pueden leerse y escribirse mediante los protocolos del sistema de archivos deNFS y 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.

Puede encontrar más información sobre la compatibilidad entre cabezales consistemas de archivos en Guía de administración de ECS, disponible en la página dedocumentación de productos de ECS.

Interoperabilidad de S3 y SwiftLos protocolos de S3 y Swift pueden interoperar para que las aplicaciones de S3puedan acceder a los objetos en depósitos de Swift y las aplicaciones de Swift puedanacceder a los objetos en depósitos de S3.

Consulte Interoperabilidad de S3 y Swift para obtener más detalles acerca de lainteroperabilidad de Swift y S3.

Nota

La interoperabilidad de S3 y Swift no es compatible con el uso de políticas de depósito.Las políticas de depósito se aplican solo al acceso mediante el cabezal de S3 y no seaplican cuando se accede a un depósito con la API de Swift.

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 deECS Swift y obtengan un token de autenticación que se pueda utilizar cuandorealiza llamadas posteriores de la API al servicio de ECS Swift. Consulte Autenticación de la versión 1 de OpenStack en la página 68.

v2

ECS permite que los usuarios de objetos se autentiquen con el servicio de ECSSwift para obtener un token incluido en el alcance, es decir, un token asociadocon un grupo de usuarios (equivalente a un proyecto), que se pueda utilizarcuando 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 70

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

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.

OpenStack Swift

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

Page 67: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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

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 administrador del sistema de ECS.

Puede encontrar más información acerca de cómo agregar usuarios de objetos de ECSen la Guía de administración de ECS, disponible en la página de documentación deproductos de ECS.

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, introduzca un nombre para el usuario yseleccione el espacio de nombres al que pertenece el usuario.

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 figura que aparece a continuación.

Si especifica el grupo admin, los usuarios automáticamente podrán ejecutartodas las operaciones de contenedor. Si especifica un grupo diferente, ese

OpenStack Swift

Crear usuarios de Swift en el Portal de ECS 67

Page 68: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

grupo debe recibir permisos para el contenedor. Consulte Autorización decontenedores en la página 75 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.

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

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: ECS_e6384f8ffcd849fd95d986a0492ea9a6 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 autenticadas

OpenStack Swift

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

Page 69: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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

OpenStack Swift

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

Page 70: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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 espacio de nombres de ECS (equivalente a un proyecto de Swift). Sepuede obtener y utilizar un token no incluido en el alcance para acceder al servicio deidentidad a fin de recuperar la identidad del grupo de usuarios antes de obtener untoken incluido en el alcance de un grupo de usuarios y un terminal de 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.

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 obtener un token no incluido en el alcance de ECS, puede usar la API de /v2.0/tokens y proporcionar un nombre de usuario y una contraseña para elservicio 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-

OpenStack Swift

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

Page 71: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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

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

OpenStack Swift

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

Page 72: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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, la compatibilidad de ECS con Keystone V3 actualmente no incluye laspolíticas de Keystone, por lo que los usuarios deben estar en el grupo (función) adminpara 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 habilitar 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 Configuración de la integración entre OpenStack Swift y ECS en la página 72.

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ónsolicitada. Si el usuario tiene la función admin, puede realizar las siguientesoperaciones de contenedor: enumerar, crear, actualizar, leer y eliminar.

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.

Configuración de la integración entre OpenStack Swift y ECSPara asegurarse de que un servicio de OpenStack Swift que utiliza Keystone V3 puedaautenticarse con ECS, debe asegurarse de que las configuraciones de Swift y ECSsean coherentes.

Antes de comenzar

Se aplican los siguientes prerrequisitos:

l Asegúrese de disponer de credenciales para la cuenta de administrador del serviciode Swift. Estas credenciales se requerirán para que ECS pueda autenticarse con elservicio de Keystone.

l Asegúrese de tener la identidad del proyecto de Keystone al que pertenecen losusuarios de Swift que accederán a ECS.

l Asegúrese de disponer de credenciales para la cuenta de administrador del sistemaECS.

OpenStack Swift

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

Page 73: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Procedimiento

1. Asegúrese de que el terminal de ECS se haya agregado al catálogo de serviciosde Swift y tenga el formato correcto.

Debe asegurarse de que los terminales se encuentren en el dominio de Keystone“predeterminado”.

2. Inicie sesión en el portal de ECS como administrador del sistema.

3. 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 Agregar un proveedor de autenticación Keystone en la página 73.

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

Obtenga el ID del proyecto de Keystone.

a. En el portal de ECS, seleccione Manage > Namespace > New Namespace

b. Introduzca el nombre del espacio de nombres.

Este debe ser el nombre del proyecto de Swift.

c. Introduzca la cuenta de administrador del espacio de nombres en UserAdmin.

Este debe ser el nombre de un usuario de administración que se haya creadoanteriormente.

d. Configure cualquier otra configuración de espacio de nombres que requiera.

Para obtener más información sobre la configuración de espacio de nombresy sobre la creación de usuarios en ECS, consulte Guía de administración deECS, disponible en la página de documentación de productos de ECS.

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.

Agregar un proveedor de autenticación KeystonePuede agregar un proveedor de autenticación de Keystone para autenticar a losusuarios de OpenStack Swift.

Antes de comenzar

l Esta operación requiere la función de administrador del sistema en ECS.

l Puede agregar un solo proveedor de autenticación de Keystone.

l Obtenga la información del proveedor de autenticación que aparece enumerada en Configuraciones del proveedor de autenticación Keystone en la página 74.

Procedimiento

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

2. En la página Authentication Provider Management, haga clic en NewAuthentication Provider.

OpenStack Swift

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

Page 74: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

3. En la página New Authentication Provider, en el campo Type, seleccioneKeystone V3.

Se muestran los campos obligatorios.

4. Escriba valores en los campos Name, Description, Server URL, KeystoneAdministrator y Admin Password. Para obtener más información acerca deestos campos, consulte Configuraciones del proveedor de autenticaciónKeystone en la página 74.

5. Haga clic en Save.

Configuraciones del proveedor de autenticación Keystone

Debe proporcionar información del proveedor de autenticación cuando agrega o editaun proveedor de autenticación de Keystone.

Tabla 13 Configuraciones del proveedor de autenticación Keystone

Campo Descripción

Nombre El nombre del proveedor de autenticación Keystone. Este nombre se usa paraidentificar al proveedor en ECS.

Descripción Descripción de texto libre del proveedor de autenticación.

Tipo Keystone V3.

Server URL URl del sistema Keystone al que ECS se conecta a fin de validar usuarios Swift.

Keystone Administrator Nombre de usuario para un administrador del sistema Keystone. ECS se conecta alsistema Keystone mediante este nombre de usuario.

Administrator Password Contraseña del administrador Keystone especificado.

OpenStack Swift

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

Page 75: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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 derivación

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 los objetos que están dentro de un contenedor.

l GET objetos con el contenedor: leer el contenido del objeto que está dentro delcontenedor.

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

OpenStack Swift

Autorización de contenedores 75

Page 76: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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/reemplazar objetos dentro delcontenedor.

Puede obtener más información sobre la autorización en: Container Operations.

OpenStack Swift

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

Page 77: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

PARTE 3

EMC Atmos

Capítulo 3, "EMC Atmos"

EMC Atmos 77

Page 78: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

EMC Atmos

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

Page 79: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

CAPÍTULO 3

EMC Atmos

l Soporte de API de EMC Atmos en ECS..............................................................80l Llamadas compatibles de la API REST de EMC Atmos....................................... 80l Llamadas no compatibles de la API REST de EMC Atmos.................................. 82l Compatibilidad de subgrupo de usuarios de la API REST de EMC Atmos........... 83l Extensiones de API............................................................................................ 84

EMC Atmos 79

Page 80: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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 de 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 el sitio de soporte de ECS.

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.

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 las interfaces del espacio de nombres y el objeto.

Tabla 14 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)

EMC Atmos

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

Page 81: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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

Método Ruta Descripció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/rest/namespace/<path>?acl

Configuración de 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

Encabezado

/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

EMC Atmos

Llamadas compatibles de la API REST de EMC Atmos 81

Page 82: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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 La lectura, escritura y eliminación del trabajo de las ACL en ECS es igual que enAtmos.

l POST /rest/objects es compatible con el encabezado x-emc-object-id parapermitir los ID de objeto heredados (de 44 caracteres).

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.

Si se usa el protocolo de Atmos con ECS, un usuario no puede eliminar ni modificar lasetiquetas numerables de otro usuario. En determinadas circunstancias, se permite estacapacidad en Atmos nativo.

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

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.

Longitud del ID de objetoLa compatibilidad con la API de Atmos en ECS expande la longitud del ID de objeto de44 caracteres a 101 caracteres. Por lo tanto, al transferir aplicaciones de Atmos a ECS,debe tener en cuenta que la longitud del ID de objeto será diferente.

Para crear un objeto con la longitud de ID heredada de 44 caracteres, puede usar elencabezado x-emc-object-id. Esto permite que los objetos se migren a Atmos.

Llamadas no compatibles de la API REST de EMC Atmos

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

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

EMC Atmos

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

Page 83: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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

Método Ruta Descripción

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, [email protected]) yx-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]) yx-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}.

EMC Atmos

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

Page 84: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Extensiones de APIECS es compatible con diferentes extensiones de la API de Atmos.

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

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

l Compatibilidad de ECS con la retención y períodos de vencimiento de retenciónpara los objetos de Atmos en la página 85

Adición de datos a un objetoPuede usar las extensiones de ECS para el protocolo de EMC Atmos a fin de agregardatos 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-En el siguiente ejemplo, se muestra una solicitud de adición a un objeto existente conun valor de rango 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)

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, and cat se ha agregado y se puede ver el valorcompleto: The quick green fox jumps over the lazy dog and cat.

EMC Atmos

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

Page 85: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Compatibilidad de ECS con la retención y períodos de vencimiento deretención para los objetos de Atmos

ECS admite la configuración de períodos de retención y períodos de vencimiento deretención para los objetos de Atmos

Períodos de retenciónLos períodos de retención definen durante cuánto tiempo ECS conservará un objetoantes de que se pueda editar o eliminar. Durante el período de retención, el objeto nose puede modificar ni eliminar en el sistema hasta que haya vencido el período deretención.

Durante la creación de un objeto de Atmos en ECS, la retención de objetos se puede:

l Definir directamente en el objeto.

l Heredar del período de retención establecido en el depósito de ECS en el que secreó el objeto.

Cuando una política de retención se establece en el espacio de nombres de ECS,también se debe establecer el período de retención directamente en el objeto. Elobjeto no hereda la política de retención del espacio de nombres.

Tabla 16 Períodos de retención de Atmos

Retenciónestablecida enel

Mediante Notas

Objeto API de Atmos por medio de

l Período de retención deencabezado ensegundos:'x-emc-retention-period:60'

l Metadatos de usuario(UMD), fecha definalización:'x-emc-meta:user.maui.retentionEnable=true,user.maui.retentionEnd=2016-10-21:10:00Z'

l Tanto encabezado comoUMD:'x-emc-meta:user.maui.retentionEnable =true,user.maui.retentionEnd=2016-10-21T18:14:30Z' -header 'x-emc-retention-period:60'

l La retención puede establecerse en elobjeto durante la creación o laactualización de la configuración delobjeto.

l El período de retención de encabezadose define en segundos.

l La retención de UMD se define con unafecha de finalización.

l Si el período de retención se establecetanto mediante el encabezado comomediante los UMD, el atributo de UMDse comprueba en primer lugar y tieneprioridad sobre la configuración delencabezado.

l No se puede modificar el período deretención después de que se haestablecido en el objeto hasta que hayavencido el período.

l Cuando se usa el encabezado x-emcpara configurar la retención:

n -1 establece un período de retencióninfinito y deshabilita el período devencimiento si hay alguno definido.

n -2 deshabilita el período deretención establecido en el objeto.

EMC Atmos

Compatibilidad de ECS con la retención y períodos de vencimiento de retención para los objetos de Atmos 85

Page 86: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Tabla 16 Períodos de retención de Atmos (continuación)

Retenciónestablecida enel

Mediante Notas

Espacio denombres de ECS

Portal de ECS desde la

página New Namespace o

Edit Namespace.

l Si desea establecer un período deretención para un objeto, y una políticade retención se ha definido en elespacio de nombres del usuario delobjeto, debe definir un período deretención de todos modos directamenteen el objeto como se describióanteriormente.

l Si una política de retención seestablece en el espacio de nombres deECS o se establece un período deretención en un depósito del espacio denombres, y se crea un objeto en eldepósito, ECS conserva el espacio denombres, el depósito y el objetodurante los períodos de retención máslargos establecidos para el espacio denombres o el depósito.

l Si se ha establecido un período deretención en el objeto mediante elencabezado del objeto, ECS conserva elobjeto durante el período más largoestablecido en el objeto, el depósito o elespacio de nombres.

l Si se ha definido una fecha definalización de la retención en un objetoa través de la API de Atmos, ECSutilizará la fecha de finalización de laretención de la API de Atmosestablecida en el objeto y omitirá lapolítica de retención del espacio denombres y los períodos de retención deldepósito cuando se cree el objeto.

l Al aplicar una política de retención enun subgrupo de usuarios (depósito) quecontiene objetos de Atmos, la políticade retención se aplica tanto a losobjetos creados en el subgrupo deusuarios después de la configuración dela política de retención como a losobjetos que se crearon en el subgrupode usuarios antes de la configuración dela política de retención.

API REST de ECSPOST /object/namespaces/namespace/{namespace}/retention

Depósito de ECS Portal de ECS desde la

página New Bucket o EditBucket.

API REST de ECSPUT /object/bucket/{bucketName}/retention

EMC Atmos

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

Page 87: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Nota

Para obtener más detalles sobre las políticas de retención de espacio de nombres y losperíodos de retención de depósito, consulte Guía de administración de ECS, disponibleen la página de documentación de productos de ECS.

Ejemplo: Solicitud y respuesta para crear un objeto con un conjunto de retención.

POST /rest/namespace/file1 HTTP/1.1User-Agent: curl/7.37.0Host: 10.247.179.228:9022Accept: */*x-emc-date:Thu, 16 Feb 2017 19:28:13 GMTx-emc-meta:user.maui.retentionEnable=true,user.maui.retentionEnd=2017-06-30T06%3A38%3A44Zx-emc-uid:f082110e13f249649340e172fb7b4956/u1x-emc-utf8:trueContent-Type:plain/textx-emc-signature:2Gz51WT+jQdMjlobDV0mz7obsXM=Content-Length: 774

Response

HTTP/1.1 201 CreatedDate: Thu, 16 Feb 2017 19:28:17 GMTx-emc-policy: defaultx-emc-utf8: truex-emc-request-id: 0af7b3e4:15a4849d95e:37c:0x-emc-delta: 774Location: /rest/objects/0a40bd045f7373d367639f095d1db0d15acadb82d5d2cd108e2142f4be04635c-59bdb9b6-20c0-4f55-bc91-9db728a58854x-emc-mtime: 1487273295379Content-Length: 0Server: ViPR/1.0

Ejemplo: Solicitud y respuesta para obtener metadatos de objeto.

curl --head -H "x-emc-date:Mon, 30 Jan 2017 16:56:35 GMT" -H "x-emc-uid:7a2593be81374744adbf8e3983e7bd84/u1" -H "x-emc-signature:CQgfoiIQ/DCif7TafcIskWyVpME=" http://10.247.179.228:9022/rest/objects/d1bced53f2ebbcbc51af1d84747bd198d123d3b8585293a5bf0d32bb73c6cf4b-365f4482-c24a-4eca-b24a-070efe29bf63

Response

HTTP/1.1 200 OKDate: Mon, 30 Jan 2017 16:56:35 GMTx-emc-mtime: 1485795387838x-emc-retention-period: 21798212x-emc-meta: user.maui.retentionEnd=2017-10-10T00:00:00Z,user.maui.retentionEnable=true,allow-inline-update=false,atime=2017-01-30T16:45:48Z,ctime=2017-01-30T16:56:27Z,ctype=plain/text,data-range=CAAQgFA=,dek=kq/W1Rg/7qbmaCcLF8pFvqlDJ8+suPTdVddBBZFwZA86muG3P0Pb7w==,dekAlgo=AESKeyWrapRFC5649,etag=0-,fs-mtime-millisec=1485795387838,itime=2017-01-30T16:45:48Z,kekId=s3.7a2593be81374744adbf8e3983e7bd843cdda755061bac6c12c06eb02800a7fee4b11ac2e03f62bb01eee02995068e56,keypoolid=s3.7a2593be81374744adbf8e3983e7bd84,keypoolname=7a2593be81374744adbf8e3983e7bd84,keyversion=0,mtime=2017-01-30T16:56:27Z,namespace=s3,nlink=1,object-

EMC Atmos

Compatibilidad de ECS con la retención y períodos de vencimiento de retención para los objetos de Atmos 87

Page 88: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

name=,objectid=d1bced53f2ebbcbc51af1d84747bd198d123d3b8585293a5bf0d32bb73c6cf4b-365f4482-c24a-4eca-b24a-070efe29bf63,objname=file,parentOid=53ae036bfcfb46f5580b912222f3026835e3ef972c7e3e532ba4a5de30b1946e,parentZone=urn:storageos:VirtualDataCenterData:365f4482-c24a-4eca-b24a-070efe29bf63,policyname=default,retention=CgYIoKOZmlE=,size=0,type=regular,uid=u1,parent=apache,gid=apachex-emc-useracl: u1=FULL_CONTROLx-emc-groupacl: other=READx-emc-policy: defaultx-emc-request-id: 0af7b3e4:159f0185cf7:957:4Content-Type: plain/textContent-Length: 0Server: ViPR/1.0

Ejemplo: Actualización de un objeto con valores de retención.

POST /rest/namespace/file2?metadata/user HTTP/1.1User-Agent: curl/7.37.0Host: 10.247.179.228:9022Accept: */*x-emc-date:Thu, 16 Feb 2017 19:37:15 GMTx-emc-meta:user.maui.retentionEnable=true,user.maui.retentionEnd=2017-07-30T06%3A38%3A44Zx-emc-uid:f082110e13f249649340e172fb7b4956/u1x-emc-utf8:trueContent-Type:plain/textx-emc-signature:5UPpZcCfO0vtxMTW62fa2/2SmLg=

Response

HTTP/1.1 200 OK

Date: Thu, 16 Feb 2017 19:37:16 GMTx-emc-policy: _intx-emc-utf8: truex-emc-request-id: 0af7b3e4:15a4849d95e:582:0Content-Length: 0Server: ViPR/1.0

Período de vencimientoCuando se define una fecha de finalización del período de retención para un objetoAtmos, y también existe un período de vencimiento configurado en el objeto, ECSelimina el objeto automáticamente en la fecha definida en el período de vencimiento. Elperíodo de vencimiento:

l Se puede establecer en objetos mediante la API de Atmos o el encabezado x-emc.

l El período de vencimiento debe ser posterior a la fecha de finalización de laretención.

l El período de vencimiento está deshabilitado de forma predeterminada.l Cuando se usa el encabezado x-emc para configurar la retención y el vencimiento,

el valor -1 deshabilita el período de vencimiento.

Ejemplo: Configuración del período de vencimiento usando el encabezado x-emc.

POST /rest/namespace/file2 HTTP/1.1User-Agent: curl/7.37.0Host: 10.247.179.228:9022Accept: */*x-emc-date:Tue, 31 Jan 2017 19:38:00 GMT

EMC Atmos

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

Page 89: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

x-emc-expiration-period:300x-emc-uid:a2b85977fd08488b80e646ea875e990b/u1Content-Type:plain/textx-emc-signature:krhYBfKSiM3mFOT6FtRB+2/xZnw=Content-Length: 10240Expect: 100-continue

Ejemplo: Solicitud y respuesta mediante la API de Atmos.

POST /rest/namespace/file2 HTTP/1.1User-Agent: curl/7.37.0Host: 10.247.179.228:9022Accept: */*x-emc-date:Thu, 02 Feb 2017 02:47:32 GMTx-emc-meta:user.maui.expirationEnable=true,user.maui.expirationEnd=2017-03-30T20:20:00Zx-emc-uid:239e20dec7a54301a0b02f6090edcace/u1Content-Type:plain/textx-emc-signature:5tGEyK/9qUZCPSnQ9OPOdktN+Zo=Content-Length: 10240Expect: 100-continue

Response

HTTP/1.1 100 ContinueHTTP/1.1 201 CreatedDate: Thu, 02 Feb 2017 02:47:33 GMTx-emc-policy: defaultx-emc-request-id: 0af7b3e4:159fb81ddae:345e:0x-emc-delta: 10240Location: /rest/objects/5c3abaf60e0e207abec96baf0618c0461b7cd716898f8a12ee236aed1ec94bea-c86ee0e9-8709-4897-898e-c3d1895e1d93x-emc-mtime: 1486003652813Content-Length: 0Server ViPR/1.0 is not blacklistedServer: ViPR/1.0

Ejemplo: Solicitud y respuesta para metadatos de actualización con la API de Atmos.

POST /rest/namespace/file?metadata/user HTTP/1.1User-Agent: curl/7.37.0Host: 10.247.179.228:9022Accept: */*x-emc-date:Thu, 02 Feb 2017 02:44:13 GMTx-emc-meta:user.maui.expirationEnable=true,user.maui.expirationEnd=2017-03-30T20:20:00Zx-emc-uid:239e20dec7a54301a0b02f6090edcace/u1Content-Type:plain/textx-emc-signature:9pzcc/Ce4Lq3k52QKdfWLYlZ1Yc=

Response

HTTP/1.1 200 OKDate: Thu, 02 Feb 2017 02:44:14 GMTx-emc-policy: _intx-emc-request-id: 0af7b3e4:159fb81ddae:339e:0Content-Length: 0Server ViPR/1.0 is not blacklistedServer: ViPR/1.0

EMC Atmos

Compatibilidad de ECS con la retención y períodos de vencimiento de retención para los objetos de Atmos 89

Page 90: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

EMC Atmos

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

Page 91: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

PARTE 4

CAS

Capítulo 4, "CAS"

CAS 91

Page 92: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

CAS

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

Page 93: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

CAPÍTULO 4

CAS

l Configuración del soporte de CAS en ECS.........................................................94l Almacenamiento inactivo................................................................................... 94l Cumplimiento de normas....................................................................................95l Retención de CAS en ECS................................................................................. 98l Retención avanzada para las aplicaciones de CAS: retención basada en eventos,

para asuntos legales y la controladora mín./máx...............................................100l Establecer políticas de retención de espacio de nombres..................................107l Creación y configuración de un depósito para un usuario de CAS..................... 108l Configurar un usuario de objetos de CAS..........................................................109l Establecer varias ACL de depósito para CAS.....................................................110l API de administración de ECS que admiten usuarios de CAS.............................112l Compatibilidad de la API del SDK de almacenamiento direccionable por contenido

(CAS)................................................................................................................113

CAS 93

Page 94: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Configuración del soporte 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. Elaprovisionamiento normalmente se completa cuando se instala un nuevo rack de ECS.Esto incluye la configuración de un pool de almacenamiento, VDC y grupo dereplicación. En ECS CAS, puede utilizar la documentación estándar si necesita crear oeditar estos objetos para que sean compatibles con CAS. Consulte Guía deadministración de ECS, disponible en la página de documentación de productos de ECS.

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

A continuación, configure sus espacios de nombres, sus usuarios y sus depósitosmediante la documentación estándar. Consulte Guía de administración de ECS,disponible en la página de documentación de productos de ECS.

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

CAS

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

Page 95: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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 24discos.

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 del comercio en futuros sobre mercancía (CFTC) en las normativas 17C.F.R. § 1.31(b)-(c)

El cumplimiento de normas está certificado en los dispositivos ECS Appliance con elsoftware ECS versión 2.2.1 y versiones posteriores. También se certifican lasinstalaciones de solo software ECS 3.0 y versiones posteriores que se ejecutan en elhardware de otros fabricantes certificado por ECS.

CAS

Cumplimiento de normas 95

Page 96: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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 plataformaLas siguientes características de seguridad de ECS son compatibles con losestándares de cumplimiento de normas.

Funciones de seguridad de la plataforma de ECS:

l El acceso de usuario raíz a los nodos está desactivado (no se permiten los iniciosde sesión con usuario raíz).

l Los clientes de ECS pueden acceder a los nodos mediante el usuario administradorconfigurado durante la primera instalación.

l El usuario administrador ejecuta comandos en los nodos usando sudo.

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

l ESRS proporciona la capacidad de desactivar todo el acceso remoto a los nodos.En ESRS Policy Manager, establezca la acción Start Remote Terminal en NeverAllow.

l Se cierran todos los puertos innecesarios (ftpd, sshd).

l El usuario emcsecurity con la función de administrador de bloqueo 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.

Nota

El bloqueo de nodo no afecta a los usuarios autorizados de portal de ECS ni la APIde administración de ECS.

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 establece funciones de retención deobjetos en Enabled en el nivel del objeto, del depósito y del espacio de nombres. Elcumplimiento de normas fortalece estas funciones mediante la limitación de loscambios que se pueden realizar en la configuración de la retención de los objetosretenidos. Las reglas incluyen:

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.

l El cumplimiento de normas únicamente se puede habilitar en un espacio denombres al momento de crearlo. (El cumplimiento de normas no se puede agregara un espacio de nombres existente).

l Una vez que el cumplimiento de normas está habilitado, no se puede deshabilitar.

CAS

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

Page 97: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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 provoca errores de aplicación.

l Un depósito que posea datos no se puede eliminar, sin importar su valor deretención.

l Aplicar la opción Infinite en un depósito significa que los objetos que residen enese depósito en un espacio de nombres activado para el cumplimiento de normasno se podrán eliminar de manera permanente.

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.

Figura 1 Activar el cumplimiento de normas en un nuevo espacio de nombres en el Portal de ECS

CAS

Política de retención y cumplimiento de normas 97

Page 98: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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, aexcepción del monitoreo de cumplimiento de normas. Si el monitoreo está activado, elagente registra periódicamente un mensaje.

Nota

Haga un acuerdo con el servicio al cliente para habilitar el monitoreo de cumplimientode normas. Los mensajes de monitoreo se encuentran disponibles de forma obligatoriadesde 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.

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

l Legal: 5 años

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

CAS

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

Page 99: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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.

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 en la página 107.

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.

CAS

Retención de CAS en ECS 99

Page 100: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Tabla 18 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.

Puede encontrar más información acerca de la API de administración de ECS en Introducción a la API REST de administración de ECS en la página 118. La referenciaen línea está disponible aquí: Referencia de API de ECS.

Retención avanzada para las aplicaciones de CAS: retenciónbasada en eventos, para asuntos legales y la controladoramí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 asuntos

CAS

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

Page 101: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

legales a un objeto mediante la creación y la aplicación de ID únicos de retenciónpara asuntos legales.

l Controladora 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.

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

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

EnforceRetention

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

CAS

Retención avanzada para las aplicaciones de CAS: retención basada en eventos, para asuntos legales y la controladora mín./

máx. 101

Page 102: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Característica Descripción

Information inObject

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

Maximum FixedRetention Period

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

CAS

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

Page 103: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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:

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.

CAS

Retención avanzada para las aplicaciones de CAS: retención basada en eventos, para asuntos legales y la controladora mín./

máx. 103

Page 104: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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 de lacontroladora mín./máx. para el período de retención variable.

Tabla 19 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.

CAS

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

Page 105: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Tabla 19 Funciones de la API de CAS para la retención basada en eventos (continuación)

Función Descripción

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.

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.

CAS

Retención avanzada para las aplicaciones de CAS: retención basada en eventos, para asuntos legales y la controladora mín./

máx. 105

Page 106: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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.

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

CAS

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

Page 107: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Tabla 20 Funciones de la API de CAS relativas a la retención para asuntos legales (continuación)

Función Descripción

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

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.

CAS

Establecer políticas de retención de espacio de nombres 107

Page 108: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Figura 5 Nueva política de retención

4. Seleccione Guardar.

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.

CAS

108 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 109: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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.

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.

CAS

Configurar un usuario de objetos de CAS 109

Page 110: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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.

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.

CAS

110 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 111: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Figura 8 Editar ACL del depósito

3. Elija Edit asociado con el usuario.

Figura 9 Administración de ACL de depósitos

4. Modifique los permisos.

Tabla 21 ACL de depósitos

ACL de ECS Definición de ACL

READ Funcionalidades de lectura, consultas yexistencia

CAS

Establecer varias ACL de depósito para CAS 111

Page 112: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Tabla 21 ACL de depósitos (continuación)

ACL de ECS Definición de ACL

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

Nota

Otros ECS ACL no tienen ningún significado para CAS.

5. Seleccione Guardar.

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

CAS

112 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 113: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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.

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 para obtener más informació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 Configuración del soporte de CAS en ECS en la página 94 puede obtener másinformació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

CAS

Compatibilidad de la API del SDK de almacenamiento direccionable por contenido (CAS) 113

Page 114: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

l FPClip_GetEBREventTime

l FPClip_GetEBRPeriod

l FPClip_GetRetentionHold

l FPClip_IsEBREnabled

CAS

114 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 115: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

PARTE 5

API de REST de administración de ECS

Capítulo 5, "API de REST de administración de ECS"

API de REST de administración de ECS 115

Page 116: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

API de REST de administración de ECS

116 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 117: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

CAPÍTULO 5

API de REST de administración de ECS

l Introducción a la API REST de administración de ECS.......................................118l Realice la autenticación con la REST API de administración de ECS................. 118

API de REST de administración de ECS 117

Page 118: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Introducción a la API REST de administración de ECSEn esta sección, se describe cómo obtener acceso y autenticarse en la API de RESTde administración de ECS y se proporciona un resumen de las rutas de API. Puedeconfigurar y administrar el almacén de objetos mediante la API de REST deadministración de ECS. Una vez que se configura el almacén de objetos, se puedenejecutar las operaciones de creación, lectura, actualización y eliminación de objetosmediante los protocolos de objetos y archivos compatibles con ECS.

Para obtener más información sobre la API de REST de administración de ECS,consulte estos temas:

l Realice la autenticación con la REST API de administración de ECS en la página118

l Resumen de la API REST de administración de ECS en la página 121

Además, puede consultar la Referencia de API de ECS que se genera automáticamentedel código fuente y proporciona una referencia para los métodos disponibles en la API.

Realice la autenticación con la REST API de administraciónde ECS

ECS utiliza un sistema de autenticación basado en token para las llamadas a la APIREST. En esta sección, se proporcionan ejemplos de la autenticación con la API deECS, con y sin cookies.

Cuando se autentica mediante ECS, la API de ECS devuelve un token deautenticación. Puede usar este token para la autenticación en las llamadas posteriores.

l La API de ECS devuelve un código HTTP 401 si el cliente sigue automáticamentelas redirecciones. A continuación, debe iniciar sesión y autenticarse para obtenerun nuevo token.

l La API de ECS devuelve un código HTTP 302 si el cliente no sigueautomáticamente las redirecciones. El código 302 dirige al cliente adonde puedeautenticarse de nuevo.

Puede recuperar y usar tokens de autenticación:

l Si guarda la cookie X-SDS-AUTH-TOKEN de una solicitud de autenticación exitosay envía esa 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 de ECS está disponible en el puerto 4443. Los clientes acceden a ECSejecutando una solicitud de inicio de sesión con el siguiente formato:

https://<ECS_IP>:4443/login

Autenticación sin cookiesEn el siguiente ejemplo, se muestra cómo utilizar tokens de autenticación mediante lalectura del encabezado HTTP X-SDS-AUTH-TOKEN de una solicitud de autenticaciónexitosa y la copia de ese encabezado en una solicitud posterior. Este ejemplo no utiliza

API de REST de administración de ECS

118 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 119: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

cookies. Los ejemplos se escriben utilizando la herramienta de línea de comandoscurl y se les da formato para facilitar la lectura.

La siguiente llamada de API de ECS ejecuta GET en el recurso /login. La opción -uespecifica el usuario del encabezado de autenticación básica. Debe especificar elusuario en la solicitud. Tras la autenticación exitosa, la API de ECS devuelve un códigoHTTP 200 y el encabezado X-SDS-AUTH-TOKEN que contiene el token codificado.

La duración predeterminada del token de la API de ECS es de ocho horas, lo cualsignifica 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 utiliza un token vencido, será redirigido a laURL /login. Recibirá un código de error de estado HTTP 401 tras cualquier usoposterior del token vencido.

curl -L --location-trusted -k https://10.247.100.247:4443/login -u "root:ChangeMe" -v

> GET /login HTTP/1.1> Authorization: Basic cm9vdDpDaGFuZ2VNZQ==> User-Agent: curl/7.24.0 (i386-pc-win32) libcurl/7.24.0 OpenSSL/0.9.8t zlib/1.2.5> Host: 10.247.100.247:4443> Accept: */*>< HTTP/1.1 200 OK< Date: Tue, 26 Nov 2013 22:18:25 GMT< Content-Type: application/xml< Content-Length: 93< Connection: keep-alive< X-SDS-AUTH-TOKEN: BAAcQ0xOd3g0MjRCUG4zT3NJdnNuMlAvQTFYblNrPQMAUAQADTEzODU0OTQ4NzYzNTICAAEABQA5dXJu OnN0b3JhZ2VvczpUb2tlbjo2MjIxOTcyZS01NGUyLTRmNWQtYWZjOC1kMGE3ZDJmZDU3MmU6AgAC0A8=<<?xml version="1.0" encoding="UTF-8" standalone="yes"?><loggedIn> <user>root</user></loggedIn>* Connection #0 to host 10.247.100.247 left intact* Closing connection #0* SSLv3, TLS alert, Client hello (1):

Puede copiar el contenido de X-SDS-AUTH-TOKEN y pasarlo a la próxima llamada deAPI por medio de la opción -H de la herramienta curl, como se muestra en el siguienteejemplo.

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>

API de REST de administración de ECS

Autenticación sin cookies 119

Page 120: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

</namespace></namespaces>

Autenticación con cookiesEste ejemplo muestra cómo utilizar tokens de autenticación guardando la cookie deuna solicitud de autenticación exitosa y luego pasando la cookie a una solicitudposterior.

En este ejemplo, se especifica el parámetro ?using-cookies=true para indicarque desea recibir cookies, además del encabezado normal del protocolo HTTP. Elcomando 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

El siguiente comando pasa la cookie con el token de autenticación mediante la opción-b del comando curl y devuelve la información del grupo de usuarios del usuario.

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>

Cierre de sesiónLa API de cierre de sesión termina una sesión.

A cada usuario se le permite un máximo de 100 tokens de autenticación simultáneos.Pasado este límite, el sistema rechaza cualquier conexión nueva para el usuario hastaque se liberan tokens. Los tokens pueden liberarse cuando se vencen naturalmente omediante la ejecución de la siguiente llamada de API de ECS:

GET https://<ECS_IP>:4443/logout

Si tiene varias sesiones que se ejecutan simultáneamente, la siguiente llamada de APIfuerza la terminación de todos los tokens relacionados con el usuario actual.

GET https://<ECS_IP>:4443/logout?force=true

API de REST de administración de ECS

120 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 121: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

En el siguiente ejemplo, se muestra una solicitud de cierre de sesión. Se debe pasar eltoken de autenticación del encabezado o cookie para cerrar la sesión.

GET https://<ECS_IP>:4443/logout

X-SDS-AUTH-TOKEN:{Auth_Token}

La respuesta debe ser HTTP 200.

Comando whoami de la API REST de administración de ECSUn 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

Las siguientes respuestas muestran la salida de whoami para el usuario raíz y para unusuario al que se asignó la función NAMESPACE_ADMIN para el espacio de nombresns1.

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>

Resumen de la API 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.

API de REST de administración de ECS

Comando whoami de la API REST de administración de ECS 121

Page 122: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Tabla 23 API de REST de administración de ECS- resumen de métodos

Área de la API Descripción

Configuración

Certificado /object-certAPI para administrar los certificados.

/object-cert/keystoreAPI para especificar y girar la cadena de certificados utilizada porECS.

Propiedades deconfiguración

/config/object/propertiesAPI para establecer el alcance de usuario como GLOBAL oNAMESPACE. Debe establecerse antes de crear el primer usuario. Elvalor predeterminado es GLOBAL.

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. En el alcanceNAMESPACE, un usuario está asociado con un espacio de nombres.En este caso, podría haber más de un usuario con el mismo nombre,cada uno asociado con un espacio de nombres diferente, y se debeproporcionar un espacio de nombres para cada operación.

Licencias /licenseAPI para agregar una licencia y recuperar los detalles de la licencia.

Función /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 fines de solución de problemas y depuración.

SNMP /vdc/snmp/configAPI para administrar la configuración de SNMP y enviar alertas alservidor de SNMP para fines de solución de problemas y depuración.

CAS

Perfil de usuario deCAS

/object/user-casAPI para asignar claves secretas a los usuarios de CAS y generar elarchivo Pool Entry Authorization (PEA).

Acceso al sistema de archivos

NFS /object/nfsAPI para crear una exportación de NFS en función de un depósito deECS y para permitir que los usuarios y los grupos de UNIX accedan ala exportación.

API de REST de administración de ECS

122 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 123: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Tabla 23 API de REST de administración de ECS- resumen de métodos (continuación)

Área de la API Descripción

Medición

Facturación /object/billingAPI para medir el uso del almacén de objetos a nivel de grupo deusuarios y depósito.

Migración

Transformación /object/transformationAPI para habilitar la transformación de datos.

Monitoreo

Capacidad /object/capacityAPI para recuperar la capacidad administrada actual.

Tablero

Alertas /vdc/alertsAPI para recuperar las alertas de auditoría.

Eventos /vdc/eventsAPI para devolver los eventos de auditoría para un espacio de nombresespecificado.

Multiusuario

Namespace /object/namespacesAPI para crear y administrar un espacio de nombres.

Esta API también permite fijar el período de retención para el espaciode nombres. Para obtener más información sobre los períodos deretención, consulte Guía de administración de ECS, disponible en la página de documentación de productos de ECS.

Georeplicación

Grupo de replicación /data/data-service/vpoolsAPI para crear y administrar grupos de replicación.

Zona de falla temporal /tempfailedzone/API para recuperar todas las zonas de falla temporales o las zonas defalla temporales de un grupo de replicación específico.

Aprovisionamiento

URL base /object/baseurlAPI para crear una dirección URL base que permite que lasaplicaciones existentes trabajen con el almacén de objetos de ECS.Para obtener más información sobre la URL base, consulte Guía deadministración de ECS, disponible en la página de documentación deproductos de ECS.

API de REST de administración de ECS

Resumen de la API REST de administración de ECS 123

Page 124: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Tabla 23 API de REST de administración de ECS- resumen de métodos (continuación)

Área de la API Descripción

Depósito /object/bucketAPI para aprovisionar y administrar depósitos.

/object/bucket/{bucketName}/lockAPI para bloquear el acceso al depósito.

Almacén de datos /vdc/data-storesAPI para crear áreas de almacenamiento de datos en sistemas dearchivos (/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 para crear y administrar pools de almacenamiento.

Centro de datosvirtual

/object/vdcsAPI para agregar un VDC y especificar la seña secreta y los terminalesentre VDC para la replicación de datos entre los sitios de ECS.

Almacenamiento declaves de VDC

/vdc/keystoreAPI para administrar los certificados de un VDC.

Soporte

Call Home /vdc/callhome/API para administrar la configuración de ESRS y enviar alertas aConnectEMC.

Paquete de la CLI /cliAPI para descargar el paquete de la CLI de ECS.

Administración de usuarios

Proveedor deautenticación

/vdc/admin/authprovidersAPI para agregar y administrar los proveedores de autenticación.

Contraseña de grupo(Swift)

/object/user-passwordAPI para generar una contraseña a fin de utilizarla para laautenticación de OpenStack Swift.

Clave secreta /object/user-secret-keysAPI para asignar claves secretas a usuarios de objetos y paraadministrar las claves secretas.

Autoservicio de clavessecretas

/object/secret-keys

API de REST de administración de ECS

124 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 125: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Tabla 23 API de REST de administración de ECS- resumen de métodos (continuación)

Área de la API Descripción

API 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 clave secreta de S3 puedecambiarla usando la API REST.

/object/users/lock.

API para bloquear el acceso de usuario.

/object/users/{userName}/tags.

API para asociar etiquetas con un ID de usuario. Las etiquetas seofrecen como pares de nombre-valor.

Usuario(administración)

/vdc/usersAPI para crear y administrar usuarios. Pueden asignarse usuarios deadministración a la función de administrador del sistema o a la funciónde administrador de espacio de nombres. Puede usar esta API paracambiar la contraseña de usuario de administración local.

API de REST de administración de ECS

Resumen de la API REST de administración de ECS 125

Page 126: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

API de REST de administración de ECS

126 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 127: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

PARTE 6

HDFS

Capítulo 6, "Introducción a ECS HDFS"

Capítulo 7, "Configuración de un clúster simple de Hadoop con ECS HDFS"

Capítulo 8, "Configuración de un clúster de Hadoop kerberizado con ECS HDFS"

Capítulo 9, "Solución de problemas"

Capítulo 10, "Apéndice: Guía sobre la configuración de Kerberos"

Capítulo 11, "Apéndice: Propiedades de core-site.xml de Hadoop para ECS HDFS"

Capítulo 12, "Apéndice: Ejemplo de metadatos de depósito seguro"

HDFS 127

Page 128: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

HDFS

128 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 129: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

CAPÍTULO 6

Introducción a ECS HDFS

l Introducción a ECS HDFS.................................................................................130l Configuración de Hadoop para usar ECS HDFS ................................................ 131l Modos de autenticación de Hadoop.................................................................. 132l Migración de un clúster simple a uno de Hadoop de Kerberos...........................135l Interacción del sistema de archivos.................................................................. 136l Aplicaciones de Hadoop compatibles................................................................ 137

Introducción a ECS HDFS 129

Page 130: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Introducción a ECS HDFSECS HDFS es un sistema de archivos compatible con Hadoop (HCFS) que le permiteejecutar aplicaciones Hadoop 2.X con la infraestructura de almacenamiento de ECScomo base.

Al utilizar ECS HDFS, la distribución de Hadoop se configura para ejecutarse en ECSHDFS en lugar del sistema de archivos de Hadoop integrado. La siguiente figura ilustracómo ECS HDFS se integra 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 Software

MapReduce Request

Node Manager

MapReduce Task

Node Manager

MapReduce Task

ECS nodes

ECS nodes

ECSnodes

ECS Client Library ECS Client Library

En un ambiente de Hadoop configurado para utilizar ECS HDFS, cada uno de los nodosde ECS funciona como un DataNode y NameNode de Hadoop tradicional, lo quesignifica que todos los nodos de ECS son capaces de aceptar solicitudes de HDFS yproporcionarles 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 Hadooputilizaría la biblioteca de clientes de ECS (el archivo JAR ViPRFS) para ejecutar laactividad de HDFS.

Introducción a ECS HDFS

130 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 131: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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

l Un clúster Hadoop instalado y configurado para ser compatible con ECS HDFS,que requiere:

n Un depósito habilitado para sistemas de archivos para el acceso a HDFS.

Nota

Solo se admite un depósito por cada clúster de Hadoop, y ECS HDFS debe serel sistema de archivos predeterminado.

n Biblioteca de clientes de ECS implementada en el clúster.

l Para un clúster de Hadoop que utiliza Kerberos o Kerberos con Active Directory.

n Archivos de configuración de Kerberos y archivos keytab de entidad deseguridad de servicio implementados en el clúster de ECS.

n Metadatos seguros implementados en el depósito.

Configuración de Hadoop para usar ECS HDFSHadoop almacena la información de configuración del sistema en diferentes archivos,como core-site.xml, hdfs-site.xml y hive-site.xml. Para la configuraciónde ECS HDFS, se debe editar core-site.xml.

Debe agregar o modificar varios tipos de propiedades en el archivo core-site.xml,incluidas las siguientes:

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.

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 o los nombres dedominio calificados en los nodos de datos ECS para un sistema de archivosespecífico de ECS.

l Propiedades de entidades de seguridad de servicio y dominio de Kerberos: Serequieren estas propiedades solo en un ambiente Hadoop donde está presenteKerberos. Estas propiedades mapean los usuarios de Hadoop y de ECS HDFS.

El archivo core-site.xml reside en cada nodo del clúster de Hadoop. Debe añadirlas mismas propiedades en cada instancia de core-site.xml.

Nota

Cuando se modifican los archivos de configuración, se debe usar la interfaz deadministración (Ambari) en lugar de editar los archivos manualmente. Los cambiosrealizados mediante la interfaz de administración Ambari se conservan en todo elclúster.

Introducción a ECS HDFS

Configuración de Hadoop para usar ECS HDFS 131

Page 132: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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 un ambiente Hadoop con Kerberos, la identidad de un proceso del cliente estádeterminada por sus credenciales de Kerberos. Por ejemplo, puede utilizar lautilidad kinit para obtener un vale de concesión de vales (TGT) de Kerberos yutilizar klist para determinar la entidad de seguridad actual. Cuando se mapeauna entidad de seguridad de Kerberos a un nombre de usuario de HDFS, mediantela propiedad de Hadoop auth_to_local, se descartan todos los componentes, aexcepción del primario. Por ejemplo, una entidad de seguridad todd/[email protected] funciona como el nombre de usuario simple“todd” en HDFS.

ECS HDFS se integra con clústeres de Hadoop configurados para utilizar modos deautenticación simple o de Kerberos.

Cuando el clúster de Hadoop usa Kerberos, ECS se puede configurar para otorgaracceso a los usuarios con las entidades de seguridad de Kerberos con el [email protected]. De manera alternativa, cuando ECS utiliza AD para autenticar alos usuarios, se puede configurar una relación de confianza unidireccional entre elambiente de Kerberos y AD, de modo que los usuarios puedan autenticarse con suscredenciales de AD, con el formato [email protected].

Los permisos de archivos y directorios creados recientemente están restringidos porumask (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 un depósito, primero debe configurarlo en ECS, de modo que estédisponible como un sistema de archivos.

ECS (a través de la biblioteca de clientes de ECS) utiliza los permisos configurados deldepósito y la configuración dentro del archivo core-site.xml de Hadoop paradeterminar el acceso al sistema de archivos raíz (depósito). Debe asegurarse de haberconfigurado el acceso suficiente para permitir que los usuarios y servicios de Hadooppuedan crear archivos y directorios en el depósito.

En general, todas las operaciones de archivo y directorio deben estar permitidas por laACL de depósito. Además, cada objeto individual de archivo y de directorio deldepósito tiene su propia ACL de objeto y todas las operaciones de objetos tambiéndeben estar permitidas por la ACL de objeto. Si la operación de objeto no cumple laACL del depósito, se rechaza la operación. Si la operación de objeto no cumple la ACLdel objeto, se rechaza la operación.

Una excepción a esto es que al propietario del depósito, el superusuario de Hadoop ylos miembros del supergrupo de Hadoop, definidos en hdfs-site.xml, siempre seles permite realizar cualquier operación del sistema de archivos, independientementede las ACL de objeto y de depósito.

Introducción a ECS HDFS

132 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 133: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Puede configurar las ACL de depósito mediante la adición explícita de ACL de usuarioen el depósito para cada usuario o mediante la especificación de ACL de grupopersonalizado. Para obtener más información, consulte ACL de grupo personalizado ygrupo predeterminado del depósito en la página 133. El propietario del depósito debeser un usuario de objeto de ECS. Otros usuarios no necesitan ser usuarios de objeto deECS y pueden ser nombres de usuario de Unix del clúster de Hadoop.

Una excepción adicional es que, a diferencia de los depósitos de ECS normales, undepósito de ECS habilitado para sistemas de archivos tiene un objeto especial querepresenta el directorio raíz y un objeto especial para cada directorio. El objeto dedirectorio raíz no existe en un depósito nuevo habilitado para sistemas de archivos,sino que se crea cuando se ejecuta la primera operación de sistema de archivos en eldepósito. Cuando existe dicho objeto de directorio raíz, algunas llamadas de API deHDFS de ECS no ejecutan verificaciones de ACL de depósito.

Para asegurarse de obtener permisos coherentes, independientemente de la llamadade API, debe asegurarse de que la ACL de objeto de directorio raíz duplique la ACL dedepósito.

Una vez que los usuarios tienen acceso al sistema de archivos, los archivos y losdirectorios que crean tienen permisos determinados por la propiedad umask en elarchivo core-site.xml.

ACL de grupo personalizado y grupo predeterminado del depósitoPuede habilitar el acceso al depósito según las ACL de usuario o mediante laasignación de ACL de grupo personalizado. Los grupos personalizados son nombres degrupos de usuarios según se define en el clúster de Hadoop y permiten que losusuarios de Hadoop accedan al depósito mediante HDFS.

Los grupos típicos definidos en el clúster de Hadoop son hdfs (con el usuario hdfs),hadoop (por lo general, incluye todos los usuarios de servicio) y users (incluye otrosusuarios que no son de servicio y que acceden a aplicaciones en el clúster de Hadoop).Puede crear grupos correspondientes en el portal de ECS y asignarles permisos.

También es posible asignar un grupo predeterminado al depósito. El grupopredeterminado es el grupo asignado al sistema de archivos raíz (/). Por ejemplo, si elpropietario del depósito es hdfs y el grupo predeterminado está configurado comohadoop, / se establece en hdfs:hadoop para usuario y grupo, respectivamente. Ungrupo predeterminado también es un grupo personalizado y se muestra en la ACL degrupo personalizado.

Si no se define un grupo predeterminado, la raíz del sistema de archivos no tieneningún grupo, como se muestra en el siguiente ejemplo.

drwx---rwx+ - hdfs 0 2015-12-09 12:30 /

Si un grupo predeterminado de hadoop está definido, la propiedad y los permisos semuestran como en el siguiente ejemplo.

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 accede al HDFS desdeHadoop con los comandos hdfs dfs -chgrp y hdfs dfs -chmod.

Introducción a ECS HDFS

ACL de grupo personalizado y grupo predeterminado del depósito 133

Page 134: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Superusuario y supergrupo de Hadoop

El superusuario en un ambiente Hadoop es el usuario que inicia el NameNode, por logeneral, hdfs o [email protected]. En una configuración de ECS HDFS, elsuperusuario es el propietario del depósito. Por lo tanto, si desea que el superusuariode Hadoop tenga acceso de superusuario al depósito de ECS, debe asegurarse de quehdfs, [email protected] o [email protected] sean propietarios del depósito encaso de utilizar Active Directory para autenticar usuarios en el ambiente 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 el archivo core-site.xml. En modosimple, la comprobación para determinar si un usuario es miembro del supergrupo serealiza en el cliente mediante la verificación del valor de la propiedaddfs.permissions.supergroup de Hadoop. En el modo de Kerberos, lacomprobación para determinar si un usuario es miembro del supergrupo se realiza en elservidor 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 superusuario tieneacceso completo (lectura y escritura) al depósito. Los usuarios sin privilegios desuperusuario, normalmente, tienen acceso de lectura, pero eso depende de cómo secree 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 hdfs o laentidad de seguridad hdfs sea el propietario del depósito (superusuario) o unmiembro de un grupo de superusuarios.

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 tengan un propietario y tengan la membresía de grupo y lospermisos que permiten el acceso a HDFS 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 ven afectados por los permisos predeterminados, ya que estos solo seaplican a los objetos que se crean mediante el protocolo de S3.

Usuario proxyECS HDFS es compatible con el usuario proxy de Hadoop.

Un usuario proxy permite a un usuario de Hadoop enviar trabajos o acceder a HDFS ennombre de otro usuario. La función del usuario proxy se puede comparar con las

Introducción a ECS HDFS

134 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 135: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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 lassuplantaciones de identidad del proxy mediante las propiedades dehadoop.proxyuser.*.*.

Usuario de equivalenciaECS convierte las entidades de seguridad de tres partes en entidades de seguridad dedos partes.

Una entidad de seguridad de Kerberos, por lo general, tiene el formato primary/instance@realm, a pesar de que la instancia no es necesaria, por lo que la entidadde seguridad primary@realm se aplica a todos los hosts del dominio. Si la instanciase especifica, se puede usar para designar un host específico, como joe/[email protected] o joe/[email protected]. Estas dos entidades de seguridad son para elmismo usuario principal (joe), pero solo se les otorga autenticación en los hosts (host1o host2).

Este tipo de entidad de seguridad de usuario se recomienda para proporcionar unmayor nivel de seguridad. Desde la perspectiva de ECS, cada entidad de seguridad sedebe agregar a ECS. Esto se vuelve un poco difícil, por lo que la función del usuario deequivalencia permite que la autorización de ECS se realice mediante una entidad deseguridad de dos partes (primary@realm), incluso si se utilizan entidades deseguridad de tres partes.

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 pasan a serpropiedad 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 entidades de seguridad de Kerberos, de modo que sepueda acceder a los archivos pertenecientes a los nombres cortos no seguros con laentidad de seguridad de Kerberos mapeada.

Cuando se tiene solo una pequeña cantidad de archivos escritos por usuarios denombre corto, se recomienda cambiarlos (mediante chown) para que sean propiedadde la entidad de seguridad de Kerberos. Sin embargo, cuando se tiene una grancantidad de archivos, la función de migración implica que no es necesario cambiar lapropiedad.

Esta función no está implementada para los depósitos, por lo que debe cambiar lasACL de depósito para permitir que las entidades de seguridad de Kerberos accedan sise confía el acceso a los usuarios. Sin embargo, si utiliza la membresía de grupo comoel medio principal para permitir el acceso, no es necesario que cambie las ACL dedepósito.

Introducción a ECS HDFS

Usuario de equivalencia 135

Page 136: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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 es el mismo cuandose accede a ellos desde un clúster simple o kerberizado. Cuando se accede desde unambiente simple, la membresía de grupo se determina desde la máquina de UNIX.Cuando se accede desde un clúster kerberizado, se puede configurar la membresía degrupo mediante la asignación del mapeo. Consulte Asignar nombres de grupo en lapágina 161 para obtener información sobre la asignación de nombres de grupo.

Si se utilizan credenciales de AD, el mapeo entre las entidades de seguridad de AD ylas entidades de seguridad de UNIX se logra mediante la eliminación del sufijo dedominio, por lo que el usuario [email protected] se convierte en hdfs. Esto no estan flexible como cuando se utiliza el mapeo de entidades de seguridad de Kerberos,que permite mapear, por ejemplo, [email protected] a hdfs.

Al usar grupos con AD, se debe haber configurado un proveedor de autenticación enECS, de modo que se pueda verificar la membresía del grupo.

Modo de autenticación Kerberos de HadoopCuando se integran Kerberos y el servidor AD de ECS, el dominio de Kerberos ofreceun solo espacio de nombres de usuarios para que los usuarios autenticados con kinitde Hadoop sean reconocidos como usuarios acreditados de ECS.

En un clúster Hadoop que se ejecuta en modo Kerberos, debe haber una confianzaunidireccional entre el dominio de Kerberos y el dominio de AD para autenticar a losusuarios de ECS.

Las siguientes propiedades de traducción de identidad del archivo core-site.xmlse utilizan para garantizar la traducción adecuada del usuario de Hadoop a ECS:

l fs.permissions.umask-mode: Establezca el valor en 022.

l fs.viprfs.auth.anonymous_translation: Establezca el valor enCURRENT_USER.

l fs.viprfs.auth.identity_translation: Establezca el valor enCURRENT_USER_REALM, de modo que el dominio de usuarios se detecteautomáticamente.

Además, debe establecer las siguientes propiedades en el archivo core-site.xmlpara definir una entidad de seguridad de servicio:

l viprfs.security.principal: vipr/[email protected] donde REALM.COMse reemplaza por su nombre de dominio de Kerberos.

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.

Introducción a ECS HDFS

136 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 137: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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 compatiblesECS HDFS es compatible con la mayoría de las aplicaciones en el ecosistema deHadoop.

Son compatibles las siguientes aplicaciones en el ecosistema de Hadoop:

l YARN

l MapRedeuce

l Pig

l Hive

l Spark

l ZooKeeper

l Ambari

l Sqoop

l Flume

Introducción a ECS HDFS

Aplicaciones de Hadoop compatibles 137

Page 138: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Introducción a ECS HDFS

138 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 139: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

CAPÍTULO 7

Configuración de un clúster simple de Hadoopcon ECS HDFS

l Integración de un clúster de Hadoop simple con ECS HDFS............................. 140l Instalación de Hortonworks HDP con Ambari....................................................140l Creación de un depósito para HDFS mediante el portal de ECS........................ 142l Planificación de la integración de ECS HDFS y Hadoop.................................... 150l Obtención del paquete de instalación y de compatibilidad de ECS HDFS..........150l Implementación de la biblioteca de clientes HDFS de ECS................................ 151l Configuración de las propiedades del cliente de ECS........................................ 152l Configuración de Hive.......................................................................................153l Verificación del acceso de Hadoop a ECS.........................................................155l Protección del depósito.................................................................................... 155l Reubicación del sistema de archivos predeterminado de HDFS a un depósito de

ECS.................................................................................................................. 156

Configuración de un clúster simple de Hadoop con ECS HDFS 139

Page 140: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Integración de un clúster de Hadoop simple con ECS HDFSPuede configurar una distribución de Hadoop para que use la infraestructura dealmacenamiento de ECS con ECS HDFS.

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.

En general, se deben realizar los siguientes pasos:

1. Instalación de Hortonworks HDP con Ambari en la página 140

2. Creación de un depósito para HDFS mediante el portal de ECS en la página 142

3. Planificación de la integración de ECS HDFS y Hadoop en la página 150

4. Obtención del paquete de instalación y de compatibilidad de ECS HDFS en lapágina 150

5. Implementación de la biblioteca de clientes HDFS de ECS en la página 151 (no esnecesario si ha utilizado Ambari Hortoworks para ECS)

6. Configuración de las propiedades del cliente de ECS en la página 152

7. Verificación del acceso de Hadoop a ECS en la página 155

8. Reubicación del sistema de archivos predeterminado de HDFS a un depósito deECS en la página 156

Una vez finalizada la configuración, los archivos del sistema de archivospredeterminado del clúster Hadoop se mapean a los archivos de los depósitos de ECS.Por ejemplo, /foo/bar del sistema de archivos predeterminado se mapea aviprfs://<bucket_name>.<namespace>.<federation_name>/foo/bar.

Instalación de Hortonworks HDP con AmbariInstale al servidor de Ambari y úselo para instalar Hortonworks HDP.

Los comandos básicos para instalar y configurar el servidor de Ambari se proporcionanen este procedimiento. Para obtener más información sobre cómo instalar el servidorde Ambari, consulte la documentación de Hortonworks.

Procedimiento

1. Descargue el repositorio de Ambari.

wget -nv http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.4.2.0/ambari.repo -O /etc/yum.repos.d/ambari.repo

2. Instale el servidor de Ambari.

yum install -y ambari-server

Configuración de un clúster simple de Hadoop con ECS HDFS

140 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 141: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

3. Configure el servidor de Ambari.

ambari-server setup -s

4. Inicie el servidor de Ambari.

ambari-server start

5. Navegue hasta http://ambari.example.com:8080/.

6. En la página Select Stack, seleccione la versión de Hadoop, HDP 2.5, yseleccione la versión del SO.

7. Seleccione los servicios de Hadoop que desee habilitar, como se muestra en elsiguiente ejemplo:

Configuración de un clúster simple de Hadoop con ECS HDFS

Instalación de Hortonworks HDP con Ambari 141

Page 142: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

8. Complete el asistente de instalación.

Creación de un depósito para HDFS mediante el portal deECS

Utilice el portal de ECS para crear un depósito configurado para su uso con HDFS.

Configuración de un clúster simple de Hadoop con ECS HDFS

142 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 143: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Antes de comenzar

Asegúrese de tener asignada una función de administrador de espacio de nombres oadministrador del sistema. Si es un administrador de espacio de nombres puede creardepósitos en el espacio de nombres. Si es un administrador del sistema puede crear undepósito que pertenezca a cualquier espacio de nombres.

Debe asegurarse de que los servicios y los usuarios de Hadoop tengan acceso alsistema de archivos HDFS (depósito) y de que los archivos y directorios esténdisponibles para los usuarios y grupos. Puede hacer esto mediante uno de lossiguientes procedimientos:

l Haga que el propietario del depósito sea el mismo que el superusuario de Hadoop,por lo general, hdfs o [email protected].

l Habilite el acceso al depósito por membresía de grupo:

n Asigne un grupo predeterminado al depósito. Esta acción automáticamenteasigna ACL de grupo personalizado.

n Después de la creación del depósito, agregue ACL de grupo personalizado paratodos los otros grupos que necesiten obtener acceso.

l Habilite el acceso para las personas mediante la adición de ACL de usuario aldepósito.

l Asegúrese de que los usuarios de Hadoop que necesiten obtener acceso desuperusuario a HDFS formen parte del supergrupo de Hadoop.

Si desea que los datos de objetos escritos en el depósito mediante protocolos deobjetos estén disponibles desde HDFS, debe asegurarse de que un grupopredeterminado se asigne al depósito y de que se configuren permisos de archivos ydirectorios predeterminados para el grupo.

Para obtener más información sobre los usuarios y los permisos, consulte Acceso aldepósito como un sistema de archivos en la página 132 y Ejemplos de permisos dedepósitos de Hadoop y ECS en la página 148.

Procedimiento

1. En el portal de ECS, seleccione Manage > Buckets > New Bucket.

2. En la página New Bucket, en el campo Name, escriba un nombre para eldepósito.

Nota

No utilice guiones bajos en los nombres de depósito, ya que la clase Java del URIno 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. En el campo Namespace, seleccione el espacio de nombres al que perteneceráel depósito.

4. En el campo Replication Group, seleccione un grupo de replicación o deje elcampo en blanco a fin de usar el grupo de replicación predeterminado para elespacio de nombres.

5. En el campo Bucket Owner, escriba el nombre del propietario del depósito.

Para un depósito de HDFS, por lo general, el propietario del depósito será hdfso, para los depósitos de Kerberos, [email protected]. El usuario hdfs deHadoop requiere privilegios de superusuario en HDFS; estos pueden otorgarsehaciendo que hdfs sea el propietario del depósito. Es posible que otros usuariosde Hadoop también requieran privilegios de superusuario, y estos privilegios se

Configuración de un clúster simple de Hadoop con ECS HDFS

Creación de un depósito para HDFS mediante el portal de ECS 143

Page 144: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

otorgan asignando usuarios a un grupo y haciendo que este sea un grupo desuperusuarios.

6. No habilite CAS.

Nota

Un depósito que está diseñado para usarse como HDFS no se puede utilizar paraCAS. El campo CAS está deshabilitado cuando se activa File System.

7. Habilite cualquier otra función de depósito que necesite.

Puede habilitar las siguientes funciones en un depósito 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 de administración de ECS, disponible en la página dedocumentación de productos de ECS para obtener información sobre cada unode estos ajustes y cómo configurarlos.

Nota

No se puede escribir a un depósito que está habilitado para el cumplimiento denormas por medio del protocolo HDFS. Sin embargo, se pueden leer datosescritos desde HDFS mediante protocolos de objetos.

8. En el campo File System, seleccione Enabled.

Una vez habilitados, los campos para configurar un grupo predeterminado parael sistema de archivos/depósito y para asignar permisos de grupo a los archivosy a los directorios creados en el depósito están disponibles. Estos campos semuestran en el siguiente ejemplo.

9. En el campo Default Bucket Group, escriba un nombre para el grupo dedepósito predeterminado.

Configuración de un clúster simple de Hadoop con ECS HDFS

144 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 145: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Este grupo es el grupo asociado con el sistema de archivos raíz HDFS y permitea los usuarios de Hadoop que son miembros del grupo acceder a HDFS.

El grupo predeterminado puede ser un grupo al que pertenezcan los serviciosque necesite que accedan a los datos de HDFS, como hdfs o hadoop, peropuede ser cualquier nombre de grupo pertinente para su configuración deHadoop. Por ejemplo, el administrador puede desear que todos los archivos deS3 cargados en el depósito se asignen al grupo S3DataUsers. Este grupo seasignará a todos los archivos de S3. En el nodo de Hadoop, el administrador deHadoop tendrá los usuarios que sean miembros del grupo de S3DataUsers.S3DataUsers puede ser un grupo de Linux o un grupo de AD. Cuando losusuarios de Hadoop desean obtener acceso a los datos de S3, pueden hacerlodebido a que los archivos se cargaron y se asignaron a ese grupo.

Debe especificar el grupo predeterminado en el momento de la creación deldepósito. Si no lo hace, el propietario del sistema de archivos debe asignar elgrupo más adelante desde Hadoop.

10. En los campos Group File Permissions y Group Directory Permissions,establezca los permisos predeterminados para los archivos y directorios creadosen el depósito mediante los protocolos de objetos.

Esta configuración se utiliza para aplicar permisos de grupo de UNIX a losobjetos creados mediante protocolos de objetos. Estos permisos se aplican algrupo de HDFS (el grupo predeterminado del depósito) cuando se enumera elobjeto o el directorio desde Hadoop. Para obtener más información sobre cómoconfigurar el grupo predeterminado y los permisos para el sistema de archivos,consulte Acceso multiprotocolo (crosshead) en la página 134.

a. En el campo Group File Permissions, seleccione los botones de lospermisos adecuados. Normalmente, se establecerán permisos Read yExecute.

b. En el campo Group Directory Permissions, seleccione los botones de lospermisos adecuados. Normalmente, se establecerán permisos Read yExecute.

11. Haga clic en Save para crear el depósito.

Configurar las ACL del depósito de un grupo personalizadoPuede configurar una ACL de grupo para un depósito en el portal de ECS y puedeconfigurar ACL de depósitos para un grupo de usuarios (ACL de grupo personalizado),para usuarios individuales o 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 Esta operación requiere la función de administrador del sistema o administrador deespacio de nombres en ECS.

l Un administrador del sistema puede editar la configuración de ACL de grupo de undepósito que pertenezca a cualquier espacio de nombres.

l Un administrador de espacio de nombres puede editar la configuración de ACL degrupo de un depósito en el espacio de nombres en el cual es el administrador.

Las ACL del grupo personalizado permiten que los grupos se definan y que lospermisos se asignen al grupo. El caso de uso principal para asignar grupos a un

Configuración de un clúster simple de Hadoop con ECS HDFS

Configurar las ACL del depósito de un grupo personalizado 145

Page 146: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

depósito es admitir el acceso al depósito como un sistema de archivos, por ejemplo,cuando el depósito pasa a estar disponible para NFS o HDFS.

Los miembros del grupo de UNIX pueden acceder al depósito cuando se accede a élcomo un sistema de archivos (mediante NFS o HDFS).

Procedimiento

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

2. En la página Bucket Management, busque el depósito que desea editar en latabla y seleccione la acción Edit ACL.

3. Para configurar la ACL para un grupo personalizado, haga clic en CustomGroup User ACLs.

4. Haga clic en Add.

Se mostrará la página Edit Custom Group, tal como se muestra en la siguientecaptura de pantalla.

5. En la página Edit Custom Group, en el campo Custom Group Name, escriba elnombre para el 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, debe asignar las opciones Read, Write, Execute y Read ACL.

7. Haga clic en Save.

Configuración de un clúster simple de Hadoop con ECS HDFS

146 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 147: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Configuración de ACL de depósito para un usuarioPuede configurar una ACL de usuario para un depósito en el portal de ECS. ECS asignapermisos automáticamente para el propietario del depósito. Puede asignar ACL deusuario a otros usuarios de Hadoop para permitir el acceso al sistema de archivos/depósito o, de manera alternativa, los usuarios pueden obtener acceso al depósito porser miembros de un grupo al que se han asignado ACL de grupo personalizado.

Antes de comenzar

l Debe ser un administrador de espacio de nombres de ECS o un administrador delsistema para 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.

Procedimiento

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

2. En la página Bucket Management, busque el depósito que desea editar en latabla y seleccione la acción Edit ACL.

3. En la página Bucket ACLs Management, asegúrese de que la pestaña UserACLs esté seleccionada; ese es el valor predeterminado.

4. En la pestaña User ACLs, puede editar los permisos de un usuario que ya tengapermisos asignados, o puede 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 deACL.

l Para agregar un usuario a quien desee asignar permisos, haga clic en Add yescriba el nombre del usuario al que se aplicarán los permisos. Especifiquelos permisos que desee aplicar al usuario.

El usuario que haya definido como propietario del depósito ya tendrá asignadoslos permisos predeterminados.

En el siguiente ejemplo, el usuario hdfs es el propietario del depósito y, por lotanto, se le ha otorgado a hdfs el control completo. El control completosignifica permisos de lectura, escritura y ejecución en un ambiente Hadoop/UNIX. Al usuario sally se le han otorgado permisos de lectura y ejecución paraacceder al depósito.

Configuración de un clúster simple de Hadoop con ECS HDFS

Configuración de ACL de depósito para un usuario 147

Page 148: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Para obtener más información sobre los privilegios de ACL, consulte Guía deadministración de ECS, disponible en la página de documentación de productosde ECS.

5. Haga clic en Save.

Ejemplos de permisos de depósitos de Hadoop y ECSEn este tema se proporcionan ejemplos para demostrar la relación entre los usuarios ylos grupos de Hadoop, y los usuarios y los grupos a los que se les asigna permiso paraacceder al depósito mediante las ACL de usuario de ECS y las ACL de grupopersonalizado.

Cuando se crea un depósito, ECS asigna ACL automáticamente al propietario deldepósito y al grupo predeterminado, que es la asignación de grupo para el depósitocuando se accede mediante HDFS. Un depósito debe tener siempre un propietario,pero no requiere que se le asigne un grupo predeterminado. A los usuarios y los gruposque no son el propietario del depósito, es decir, los grupos personalizados, se lespueden asignar ACL en el depósito. Las ACL que se asignan de esta manera setraducen en permisos para los usuarios de Hadoop.

Tabla 24 Ejemplos de permisos de depósitos para acceder al sistema de archivos en un clústerHadoop simple

Usuarios y grupos de Hadoop Permisos de bucket Acceso al depósito o al sistema dearchivos

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)

Propietario del depósito

hdfs

Grupo predeterminado

ACL del grupopersonalizado

hadoop, usuarios, hive,spark (control total)

ACL de usuario

hdfs (propietario)

Deben establecerse ACL de grupopersonalizado en el depósito en el portal deECS. Asigne control total en el sistema dearchivos raíz o depósito a los gruposhadoop,users, hive y spark.

Este ejemplo asume que hdfs es el

superusuario, el usuario que inició elnamenode.

Configuración de un clúster simple de Hadoop con ECS HDFS

148 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 149: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Tabla 24 Ejemplos de permisos de depósitos para acceder al sistema de archivos en un clústerHadoop simple (continuación)

Usuarios y grupos de Hadoop Permisos de bucket Acceso al depósito o al sistema dearchivos

Supergrupo

hdfs

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 del depósito

s3user

Grupo predeterminado

hadoop(Permisos de archivo degrupo: lectura, escritura;

permisos de directoriode grupo: lectura,escritura, ejecución)

ACL del grupopersonalizado

hadoop(predeterminado)

ACL de usuario

s3user (propietario),sally, fred

Cuando desea que los objetos escritos por unusuario de S3 sean accesibles como archivosde HDFS, se debe definir un grupopredeterminado (hadoop) de modo que los

usuarios y servicios de Hadoop tenganpermisos en los archivos debido a lamembresía de grupo.

El grupo predeterminado tieneautomáticamente las ACL del grupopersonalizado en el depósito o sistema dearchivos. El siguiente ejemplo muestra quehadoop se ha establecido como grupo

predeterminado y los permisos del sistema dearchivos raíz son 777:

drwxrwxrwx+ - s3user hadoop 0 2015-12-09 12:28 /

Puede otorgar acceso a los usuarios mediantela adición de ACL de usuario o de grupopersonalizado para el grupo al que pertenecenlos usuarios.

Tabla 25 Ejemplos de permisos de depósito para acceder al sistema de archivos en un clústerHadoop kerberizado

Usuario Hadoop Permisos de depósito Acceso al depósito o al sistema dearchivos

Usuarios (servicio)

[email protected]@REALM.COM,[email protected],[email protected], [email protected]

Usuarios (aplicaciones)

[email protected],[email protected], [email protected]

Grupos

hdfs ([email protected])

Propietario del depósito

[email protected]

Grupo predeterminado

hadoop

ACL del grupopersonalizado

hadoop(predeterminado),usuarios

Las ACL de grupo personalizado se configuranen el depósito en el portal para habilitar a losgrupos hadoop y users a tener permisos

sobre el sistema de archivos raíz o depósito.

La información del usuario desde el clúster deHadoop debe estar disponible para ECS, a finde que pueda proporcionar acceso seguro aldepósito. Esta información se proporcionamediante los metadatos del depósito, y seproporciona un ejemplo del archivo demetadatos en Asegurar los metadatos deldepósito en la página 198.

Configuración de un clúster simple de Hadoop con ECS HDFS

Ejemplos de permisos de depósitos de Hadoop y ECS 149

Page 150: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Tabla 25 Ejemplos de permisos de depósito para acceder al sistema de archivos en un clústerHadoop kerberizado

Usuario Hadoop Permisos de depósito Acceso al depósito o al sistema dearchivos

hadoop ([email protected],[email protected],[email protected],[email protected],[email protected])

usuarios ([email protected],[email protected])

Supergrupo

hdfs

ACL de usuario

[email protected](propietario)

Planificación de la integración de ECS HDFS y HadoopUtilice la siguiente tabla para verificar que tiene la información necesaria a fin degarantizar una integración correcta.

Tabla 26 Prerrequisitos de configuración de ECS HDFS

Element Qué se debe hacer

Clúster de Hadoop Verifique que el clúster 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. Se accede al depósito como unsistema de archivos utilizando el espacio de nombres y el nombre dedepó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.

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.

Configuración de un clúster simple de Hadoop con ECS HDFS

150 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 151: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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 desde lapágina de soporte de ECS como se describe en Obtención del paquete de instalación yde compatibilidad de ECS HDFS en la página 150.

La biblioteca de clientes HDFS utiliza la siguiente convención de nomenclaturaviprfs-client-<ECS version>-hadoop-<Hadoop version>.jar, y elarchivo JAR para su uso con esta versión se indica en la siguiente tabla.

Tabla 27 Biblioteca de clientes HDFS de ECS

Distribuciónde Hadoop

Versión ECS HDFS JAR

Hortonworks HDP 2.5 viprfs-client-<ECS version>-hadoop-2.7.jar

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.

Procedimiento

1. Inicie sesión en un nodo que tenga acceso de protocolo SSH sin contraseña atodos los nodos de Hadoop.

2. Ejecute el comando classpath para obtener la lista de directorios en elclasspath:

# hadoop classpath3. Implemente el archivo JAR de cliente en todos los nodos de Hadoop mediante la

ejecución de los siguientes pasos:

a. Cree un archivo de texto llamado masters que contenga una lista de lasdirecciones IP o los nombres de dominio calificados para todos los nodosmaestros de Hadoop, uno por línea.

Configuración de un clúster simple de Hadoop con ECS HDFS

Implementación de la biblioteca de clientes HDFS de ECS 151

Page 152: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

b. Cree un archivo de texto llamado workers que contenga una lista de lasdirecciones IP o los nombres de dominio calificados para todos los nodostrabajadores de Hadoop, uno por línea.

c. Cree el directorio /usr/lib/hadoop/lib en todos los nodos. Ejecute elsiguiente comando:

# cat masters workers | xargs -i -n 1 ssh root@{} mkdir -p /usr/lib/hadoop/lib

d. Copie el jar de cliente de ECS en todos los nodos mediante el siguientecomando:

cat masters workers | xargs -i -n 1 scp viprfs-client-3.1.0.0-hadoop-2.7.jar root@{}:/usr/lib/hadoop/lib/

Configuración de las propiedades del cliente de ECSPuede usar Ambari para establecer las siguientes propiedades de configuración querequiere el cliente de ECS.

Para obtener más información sobre los parámetros core-site.xml, consulte Propiedades de core-site.xml de Hadoop para ECS HDFS en la página 192.

Tabla 28 Configuración de Hadoop para permitir el acceso a ECS

Ubicación deHadoop

Propiedad Valor

core-site fs.viprfs.impl com.emc.hadoop.fs.vipr.ViPRFileSystem

fs.AbstractFileSystem.viprfs.impl com.emc.hadoop.fs.vipr.ViPRAbstractFileSystem

fs.viprfs.auth.identity_translation NONE

fs.viprfs.auth.anonymous_translation LOCAL_USER

fs.vipr.installations Puede ser cualquier nombre, como federation1, y sehace referencia a él como $FEDERATION.Si tiene múltiples federaciones de ECSindependientes, introduzca valores múltiplesseparados por comas.

fs.vipr.installation.$FEDERATION.hosts Lista separada por comas de nombres de dominiocalificados o direcciones IP de cada host ECS del sitiolocal.

fs.vipr.installation.$FEDERATION.hosts.resolution dynamic

fs.vipr.installation.$FEDERATION.resolution.dynamic.time_to_live_ms

900000

hdfs-site fs.permissions.umask-mode 022

Configuración de un clúster simple de Hadoop con ECS HDFS

152 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 153: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Tabla 28 Configuración de Hadoop para permitir el acceso a ECS (continuación)

Ubicación deHadoop

Propiedad Valor

yarn-site yarn.application.classpath Agregue lo siguiente:

/usr/lib/hadoop/lib/*

mapred-site mapreduce.application.classpath Agregue lo siguiente:

/usr/lib/hadoop/lib/*

tez-site tez.cluster.additional.classpath.prefix Agregue lo siguiente:

/usr/lib/hadoop/lib/*

HDFS hadoop-env template Agregue lo siguiente:

export HADOOP_CLASSPATH=${HADOOP_CLASSPATH}:/usr/lib/hadoop/lib/*

Spark spark-env template Agregue lo siguiente:

export SPARK_DIST_CLASSPATH="${SPARK_DIST_CLASSPATH}:/usr/lib/hadoop/lib/*:/usr/hdp/current/hadoop-client/client/guava.jar"

Configuración de HiveLos pasos adicionales proporcionados en este procedimiento son requeridos paraconfigurar Hive.

Antes de comenzar

Cuando usa Hive, también debe asegurarse de que el warehouse del almacén demetadatos de Hive se dirija a la ubicación de ViPRFS. Suponiendo que mysql se utilizapara identificar la ubicación del almacén de metadatos de Hive, inicie mysql, vaya a lasbases de datos de Hive, muestre el contenido de la tabla de DBS y configúrela como seindica a continuación.

Procedimiento

1. Si Hive usa templeton, debe modificar las siguientes propiedades, y estaspropiedades ya están definidas.

Configuración de un clúster simple de Hadoop con ECS HDFS

Configuración de Hive 153

Page 154: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Tabla 29 Configuración de templeton de Hive

Ubicación de Hadoop Propiedad Valor (ejemplo)

Advanced webhcat-site templeton.hive.archive viprfs://hdfsBucket2.s3.site1/hdp/apps/${hdp.version}/hive/hive.tar.gz

templeton.pig.archive viprfs://hdfsBucket2.s3.site1/hdp/apps/${hdp.version}/pig/pig.tar.gz

templeton.sqoop.archive viprfs://hdfsBucket2.s3.site1/hdp/apps/${hdp.version}/sqoop/sqoop.tar.gz

templeton.streaming.jar viprfs://hdfsBucket2.s3.site1/hdp/apps/${hdp.version}/mapreduce/hadoop-streaming.jar

2. Inicie mysql.

[root@hdfs-pansy2 lib]# mysql -u hive -pEnter password: Welcome to the MySQL monitor. Commands end with ; or \g.

3. Vaya a la base de datos de Hive.

mysql> use hive;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -A

4. Muestre el contenido de la base de datos.

select * from DBS;+------+-------------+-----------------------------------+--------+-------+------+|DB_ID | DESC | DB_LOCATION_URI | NAME | OWNER | OWNER|| | | | | _NAME | _TYPE|+------+-------------+-----------------------------------+--------+-------+------+| 1 | Default Hive| hdfs://hdfs-pansy1.ecs.lab.emc. |default |public |ROLE || | database | com:8020/apps/hive/warehouse | | | || | | | | | || 6 | NULL | viprfs://hdfsbucket.ns.Site1/ |retail |hdfs |USER || | | apps/hive/warehouse/retail_demo.db| _demo | | |+------+-------------+-----------------------------------+--------+-------+------+2 rows in set (0.00 sec)

5. Cambie la base de datos.

mysql> update DBS set DB_LOCATION_URI='viprfs://hdfsbucket3.ns.Site1/apps/hive/warehouse' where DB_ID=1;Query OK, 1 row affected (0.00 sec)Rows matched: 1 Changed: 1 Warnings: 0

Configuración de un clúster simple de Hadoop con ECS HDFS

154 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 155: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Verificación del acceso de Hadoop a ECSDebe verificar el acceso al depósito de ECS.

Una vez que se hayan iniciado todos los servicios de cliente de Hadoop, asegúrese deque puede tener acceso al depósito de ECS mediante la CLI de Hadoop. El URI tiene elformato viprfs://bucket.namespace.federation/.

Para un depósito con el URI viprfs://hive-warehouse-1.ns1.federation1/,puede intentar un listado de directorio utilizando:

[root@mycluster1-master-0 ~]# hdfs dfs -ls viprfs://hive-warehouse-1.ns1.federation1/

Un depósito nuevo estará vacío y no se devolverá nada.

Para el mismo depósito, los siguientes comandos crean un archivo vacío y, acontinuación, generan una lista de directorios que muestra el archivo.

[root@mycluster1-master-0 ~]# hdfs dfs -touchz viprfs://hive-warehouse-1.ns1.federation1/hive-warehouse-1[root@mycluster1-master-0 ~]# hdfs dfs -ls viprfs://hive-warehouse-1.ns1.federation1/

Protección del depósitoAdemás de configurar una ACL de depósito, la entrada de directorio raíz debe crearsey protegerse inmediatamente después de la creación del depósito.

Antes de comenzar

Este procedimiento debe realizarse como el propietario del depósito, que es hdfs eneste ejemplo.

Procedimiento

1. Establezca los bits de modo en la ACL de objeto de directorio raíz de modo quesolo el propietario del depósito y el grupo predeterminado tengan acceso aldepósito. El grupo other, que incluye todos los usuarios de clientes de ECSHDFS, no tiene permitido el acceso al directorio raíz y, por lo tanto, no tienepermitido el acceso a ningún archivo del depósito.

[hdfs@hadoop-0 ~]$fs=viprfs://bucket.ns.fedhadoop fs -chmod 750 $fs/hadoop fs -chown hdfs:hdfs $fs/

2. Se deben agregar usuarios y grupos específicos a la ACL de objeto de directorioraíz mediante el comando setfacl.

Tenga en cuenta que estos permisos duplican las ACL de grupo personalizadodel depósito para asegurarse de que todas las API de HDFS tengan los mismospermisos reales.

hadoop fs -setfacl -m group:hadoop:r-x $fs/hadoop fs -setfacl -m group:users:r-x $fs/

Configuración de un clúster simple de Hadoop con ECS HDFS

Verificación del acceso de Hadoop a ECS 155

Page 156: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

hadoop fs -setfacl -m group:hive:r-x $fs/hadoop fs -setfacl -m group:spark:r-x $fs/

3. Confirme los permisos.

hadoop fs -ls -d $fs/drwxr-x---+ - hdfs hdfs 0 2017-08-22 20:44 viprfs://bucket.ns.fed/

hadoop fs -getfacl $fs/# file: viprfs://bucket.ns.fed/# owner: hdfs# group: hdfsuser::rwxgroup::r-xgroup:hadoop:r-xgroup:hive:r-xgroup:spark:r-xgroup:users:r-xmask::r-xother::---

Reubicación del sistema de archivos predeterminado deHDFS a un depósito de ECS

A pesar de que el sistema ahora se puede usar y parece funcionar bien, unaconfiguración con HDFS como el sistema de archivos predeterminado no escompatible. Por lo tanto, debe reubicar el sistema de archivos predeterminado deHDFS al depósito de ECS raíz. Este procedimiento copia todos los archivos desde elsistema de archivos HDFS hacia un depósito de ECS y, a continuación, establece eldepósito de ECS como el sistema de archivos predeterminado.

Procedimiento

1. Use Ambari para detener todos los servicios, excepto HDFS, YARN yZookeeper.

2. Copie todos los archivos existentes en el sistema de archivos HDFS de DAS enel depósito de ECS. Incluso para una instalación nueva de Hadoop, haydirectorios importantes que deben existir en el sistema de archivos de Hadooppredeterminado. Use DistCp para realizar la copia de archivos.

[hdfs@mycluster1-master-0~]$ hadoop distcp -skipcrccheck -update -pugp -i / viprfs://mycluster1-root.ns1.federation/

3. Use Ambari para establecer las siguientes configuraciones:

Configuración de un clúster simple de Hadoop con ECS HDFS

156 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 157: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Tabla 30 Configuración de Hadoop para habilitar la simultaneidad de Hive y las transacciones deACID

Ubicación de Hadoop Propiedad Valor (ejemplo)

HDFS Advanced core-site fs.defaultFS viprfs://<bucket_name>.<namespace>.<federation_name>Por ejemplo:

viprfs://mycluster1-root.ns1.federation1

Spark Advanced spark-defaults spark.eventLog.dir viprfs://<bucket_name>.<namespace>.<federation>/<spark-history>Por ejemplo:

viprfs://mycluster1-root.ns1.federation1/spark-history

Spark Advanced spark-defaults spark.history.fs.logDirectory viprfs://<bucket_name>.<namespace>.<federation>/<spark-history>Por ejemplo:

viprfs://mycluster1-root.ns1.federation1/spark-history

4. Use Ambari para detener e iniciar todos los servicios.

5. Asegúrese de que los permisos de directorio sean correctos. Si DistCpencuentra errores, es posible que no se hayan aplicado los permisos necesariosa directorios importantes. Los siguientes comandos configuran los permisoscorrectos.

[hdfs@mycluster1-master-0~]$hadoop fs -chmod 777 /apps/hive/warehousehadoop fs -chown hive:hdfs /apps/hive/warehousehadoop fs -chmod -R 770 /user/ambari-qahadoop fs -chown -R ambari-qa:hdfs /user/ambari-qa

Configuración de un clúster simple de Hadoop con ECS HDFS

Reubicación del sistema de archivos predeterminado de HDFS a un depósito de ECS 157

Page 158: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Configuración de un clúster simple de Hadoop con ECS HDFS

158 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 159: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

CAPÍTULO 8

Configuración de un clúster de Hadoopkerberizado con ECS HDFS

l Integración de un clúster de Hadoop con ECS HDFS ....................................... 160l Planear la migración desde un clúster simple a uno de Kerberos....................... 160l Asignar nombres de grupo.................................................................................161l Configuración de los nodos de ECS con la entidad de seguridad de servicio de

ECS...................................................................................................................161l Activación de Kerberos mediante Ambari..........................................................165l Asegurar el depósito de ECS con metadatos.................................................... 166l Reconfiguración de las propiedades del cliente de ECS.................................... 170l Inicio de los servicios de Hadoop y comprobación del acceso de Hadoop a ECS

.......................................................................................................................... 171

Configuración de un clúster de Hadoop kerberizado con ECS HDFS 159

Page 160: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Integración de un clúster de Hadoop con ECS HDFSPuede integrar su distribución de Hadoop existente, la cual está asegurada medianteKerberos, con ECS HDFS.

Debe ejecutar una instalación no segura de Hadoop y ECS de manera completa antesde habilitar Kerberos de manera opcional.

Antes de realizar los pasos de integración, debe realizar lo siguiente:

l Compruebe que un centro de distribución de claves (KDC) de Kerberos estéinstalado y configurado para manejar la autenticación de las entidades deseguridad de servicio de Hadoop. Si utiliza Active Directory para autenticar a losusuarios de ECS, debe establecer una confianza entre dominios entre el dominiode Kerberos y el dominio de usuario ECS. Para obtener información sobre cómoconfigurar el KDC de Kerberos y la confianza, consulte Guía sobre la configuraciónde Kerberos en la página 186.

l Asegúrese de haber creado un depósito para el sistema de archivos de HDFS(consulte Creación de un depósito para HDFS mediante el portal de ECS en lapágina 142).

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 150).

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 150).

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 160

2. Asignar nombres de grupo en la página 161

3. Configuración de los nodos de ECS con la entidad de seguridad de servicio deECS en la página 161

4. Asegurar el depósito de ECS con metadatos en la página 166

5. Reconfiguración de las propiedades del cliente de ECS en la página 170

6. Inicio de los servicios de Hadoop y comprobación del acceso de Hadoop a ECS enla página 171

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, consulte Migración de un clústersimple a uno de Hadoop de Kerberos en la página 135.

En general, la función de migración de ECS permite a los usuarios de Kerberos elacceso transparente a los archivos y directorios. No obstante, se aplican las siguientesnotas:

l El asistente de Ambari para proteger un clúster de Hadoop informa errores en elpaso final cuando inicia los servicios de Hadoop. Este comportamiento es normal.

Configuración de un clúster de Hadoop kerberizado con ECS HDFS

160 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 161: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Una vez que el depósito de ECS se vuelve a configurar para que sea seguro, sepueden iniciar los servicios de Hadoop.

l Para que los usuarios y los procesos puedan acceder al depósito, deben sermiembros del grupo que tiene acceso al depósito. De lo contrario, debe cambiar lasACL de 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 (AD), la información degrupo se puede encontrar desde dos fuentes diferentes: los metadatos del depósito oAD. 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 la información de grupo (siestá disponible) en lugar de AD, defina el parámetro de la siguiente manera:

[hdfs.fs.request]prefer_secure_metadata_bucket_for_groups = true

Si desea que ECS determine la información de grupo desde AD en lugar de losmetadatos del depósito, defina el parámetro de la siguiente manera:

[hdfs.fs.request]prefer_secure_metadata_bucket_for_groups = false

El valor predeterminado es verdadero, por lo que, si no se define este valor, ECSdetermina los detalles del grupo para una entidad de seguridad de Kerberos desde losmetadatos del depósito. Debe aplicar cualquier cambio en todos los nodos de ECS ydebe reiniciar dataheadsvc en todos los nodos.

Configuración de los nodos de ECS con la entidad deseguridad de servicio de ECS

El principal del servicio ECS y su archivo keytab correspondiente deben residir en cadanodo de datos de ECS. Debe usar las guías Ansible suministradas para automatizarestos pasos.

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

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, vipr/_HOST@REALM nofuncionará.

Configuración de un clúster de Hadoop kerberizado con ECS HDFS

Asignar nombres de grupo 161

Page 162: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

ECS ofrece contenido Ansible reutilizable llamado 'roles', que consta de scriptspython, listas de tareas basadas en YAML y archivos de plantilla.

l vipr_kerberos_config: Configura un nodo de ECS para Kerberos.

l vipr_jce_config: Configura un nodo de datos de ECS para cifrado deseguridad ilimitada mediante la instalación de archivos de política JCE.

l vipr_kerberos_principal: Adquiere un principal de servicio para un nodoECS.

En este procedimiento, se ejecuta 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 el archivo hdfsclient-<ECSversion>-<version>.zip en ese nodo.

Por ejemplo: /home/admin/ansible . Puede utilizar wget para obtener elpaquete directamente desde support.emc.com o puede utilizar scp si ya lodescargó 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, ylos pasos están incluidos también en viprfs-client-<ECS version>-<version>/playbooks/samples/README.md.

3. Edite el archivo inventory.txt en el directorio playbooks/samples paraque haga referencia 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 enun directorio UnlimitedJCEPolicy en viprfs-client-<ECS version>-<version>/playbooks/samples.

Nota

Este paso se debe ejecutar solamente si está utilizando el tipo de cifradoseguro.

Puede configurar Kerberos para que utilice un tipo de cifrado seguro, comoAES-256. En ese caso, debe reconfigurar JRE dentro de los nodos de ECS parautilizar la política.

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 un clúster de Hadoop kerberizado con ECS HDFS

162 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 163: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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

Configuración de un clúster de Hadoop kerberizado con ECS HDFS

Configuración de los nodos de ECS con la entidad de seguridad de servicio de ECS 163

Page 164: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

- 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

Debe eliminar la función vipr_jce_config si no está utilizando un tipo decifrado seguro.

13. Ejecute la guía Ansible para configurar los nodos de datos con el principal delservicio de ECS.

Configuración de un clúster de Hadoop kerberizado con ECS HDFS

164 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 165: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Asegúrese de que exista el directorio /ansible/samples/keytab y de que 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 la entidad de seguridad correcta. 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.

Activación de Kerberos mediante AmbariDebe habilitar Kerberos mediante Ambari.

Este procedimiento proporciona los pasos básicos que debe realizar para habilitarKerberos. Para obtener más información sobre el asistente para Kerberos de Ambari,consulte aquí.

Procedimiento

1. En la interfaz de Ambari, seleccione Ambari > Admin > Kerberos > EnableKerberos para obtener el asistente para habilitar Kerberos.

2. Siga los pasos en el panel Kerberize Cluster del asistente. Haga clic en la X paraanular el asistente de Kerberos.

Configuración de un clúster de Hadoop kerberizado con ECS HDFS

Activación de Kerberos mediante Ambari 165

Page 166: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

El paso Kerberize Cluster puede omitirse ahora debido a que los servicios deHadoop no pueden iniciarse en este momento.

3. Confirme que desea salir del asistente haciendo clic en Exit Anyway en elcuadro de diálogo de confirmación.

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 Asignación de usuario de Kerberos a usuario y grupo de UNIX

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.

Configuración de un clúster de Hadoop kerberizado con ECS HDFS

166 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 167: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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:

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 entidad deseguridad, nombre corto de entidad de seguridad y grupo de entidades de seguridad.ECS espera un prefijo y un sufijo constantes para los nombres de entrada JSON.

El prefijo requerido para cada entrada de usuario de Kerberos esinternal.kerberos.user, y los tres sufijos posibles son name, shortname ygroups, como se muestra en el siguiente 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 yarnque utilizan la configuración auth_to_local para el clúster de Hadoop, como este.

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 rm que se asigna a la entidadde seguridad yarn), se debe utilizar la entidad de seguridad asignada en el valor denombre corto, por lo que la entrada para la entidad de seguridad 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"

Configuración de un clúster de Hadoop kerberizado con ECS HDFS

Asegurar el depósito de ECS con metadatos 167

Page 168: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

},{"name": "internal.kerberos.user.yarn.groups","value": "hadoop"},

SupergrupoDeberá 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 la siguiente:

{ "name": "dfs.permissions.supergroup", "value": "hdfs"}

Ajustes del proxyPara obtener la compatibilidad con el uso de proxy, es necesario identificar toda laconfiguración de proxy que se permite para cada aplicación de Hadoop; en este caso,aplicación significa una de las aplicaciones compatibles con Hadoop, por ejemplo, hive.

En el ejemplo que aparece a continuación, se otorga compatibilidad con el uso deproxy para la aplicación hive a los usuarios que son miembros del grupo s3users(grupo de AD o Linux) y que pueden ejecutar hive en cualquiera de los hosts delclúster de Hadoop. Por lo tanto, la entrada JSON para esto es dos pares de nombre/valor, uno para la configuració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 en el siguiente ejemplo.

{ "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 un clúster de Hadoop kerberizado con ECS HDFS

168 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 169: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

} ]}

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 del depósito enla página 198.

Depósitos seguros y no segurosUna vez que se cargan los metadatos a un depósito, se hace referencia a este como undepósito seguro, por lo que debe contar con las entidades de seguridad de Kerberos afin de obtener acceso. Una solicitud de un nodo de Hadoop no seguro se rechaza. Sino se han cargado los metadatos, el depósito no es seguro y se rechaza la solicitud deun nodo de Hadoop seguro.

Se muestra 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 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 del sistema de ECS, el cual podrá utilizar esteprocedimiento para cargar los metadatos posteriormente. Si el mismo usuario asumelas dos funciones, ese usuario es responsable de crear el archivo de metadatos JSON ycargarlo en el depósito de ECS.

Procedimiento

1. Cree el archivo JSON que contiene los metadatos, como se describe en Asegurar el depósito de ECS con metadatos en la página 166.

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 el comando de inicio de sesión mediante curl. En el ejemplo queaparece a continuación, debe reemplazar <username>:<password> con las

Configuración de un clúster de Hadoop kerberizado con ECS HDFS

Carga de los valores de metadatos a ECS mediante la API de REST de administración 169

Page 170: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

credenciales del administrador del sistema de ECS y proporcionar la dirección IPo el nombre de 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 PUT object/bucket/<bucketname>/metadata de laAPI REST de administración de ECS para implementar los metadatos, como semuestra en el siguiente ejemplo:

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

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 losdatos HDFS.

l <hostname> con la dirección IP o el nombre de host de un nodo de ECS.

l <bucketdetails> con el nombre de archivo del archivo JSON quecontiene los pares de nombre-valor.

l <namespace> con el nombre del espacio de nombres en el que reside eldepósito.

Una vez implementados, los metadatos están disponibles para todos los nodosde ECS.

Reconfiguración de las propiedades del cliente de ECSPuede usar Ambari para establecer las propiedades de configuración que requiere elcliente de ECS.

En la siguiente tabla, se enumeran las propiedades requeridas.

Tabla 31 Configuración de Hadoop para permitir el acceso a ECS

Ubicación deHadoop

Propiedad Valor

core-site fs.viprfs.auth.identity_translation CURRENT_USER_REALM

fs.viprfs.auth.anonymous_translation CURRENT_USER

viprfs.security.principal vipr/[email protected] donde REALM.COM sereemplaza con su nombre de dominio de Kerberos.

Para obtener más información sobre cada parámetro core_site.xml, consulte Propiedades de core-site.xml de Hadoop para ECS HDFS en la página 192.

Configuración de un clúster de Hadoop kerberizado con ECS HDFS

170 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 171: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Inicio de los servicios de Hadoop y comprobación del accesode Hadoop a ECS

Inicie los servicios de Hadoop.

Procedimiento

1. Inicie los servicios de Hadoop con Ambari.

2. Una vez que se hayan iniciado todos los servicios de cliente de Hadoop,asegúrese de que se puede tener acceso al depósito de ECS mediante la CLI deHadoop, usando el siguiente comando.

hdfs dfs -ls /

Configuración de un clúster de Hadoop kerberizado con ECS HDFS

Inicio de los servicios de Hadoop y comprobación del acceso de Hadoop a ECS 171

Page 172: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Configuración de un clúster de Hadoop kerberizado con ECS HDFS

172 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 173: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

CAPÍTULO 9

Solución de problemas

l Introducción......................................................................................................174l Compruebe que AD/LDAP esté configurado correctamente con el clúster

Hadoop seguro..................................................................................................174l Falla la prueba PIG: no se puede obtener la entidad de seguridad de Kerberos..175l Permiso denegado para el usuario de AD.......................................................... 175l Errores de permisos.......................................................................................... 175l Error al procesar la solicitud..............................................................................178l Habilitar el registro y la depuración del lado del cliente de Kerberos................. 179l Depuración de Kerberos en KDC....................................................................... 179l Eliminación de la desviación del reloj................................................................. 179l Configuración de uno o más nodos de ECS nuevos con la entidad de seguridad de

servicio de ECS................................................................................................ 180l Solución alternativa para el error de directorio de Yarn inexistente...................182

Solución de problemas 173

Page 174: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

IntroducciónEsta sección ofrece soluciones alternativas para los problemas que puedenencontrarse al configurar 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 sea correcta, deberá poder usar kinit para 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 la sintaxis del archivo /etc/krb5.conf en el servidorKDC. Los dominios pueden distinguir mayúsculas de minúsculas en los archivos deconfiguración, así como cuando se utilizan con el comando kinit.

l Revise que el archivo /etc/krb5.conf en el servidor KDC se copie en todos losnodos Hadoop.

l Compruebe se haya establecido correctamente la confianza en un solo sentidoentre AD/LDAP y el servidor KDC.

l Asegúrese de que el tipo de cifrado en el servidor de AD/LDAP coincide con el delservidor KDC.

l Compruebe que los archivos /var/kerberos/krb5kdc/kadm5.acl y /var/kerberos/krb5kdc/kdc.conf sean correctos.

l Intente iniciar sesión como entidad de seguridad de servicio en el servidor KDCpara indicar que el servidor KDC en sí está funcionando correctamente.

Solución de problemas

174 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 175: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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.

Falla la prueba PIG: no se puede obtener la entidad deseguridad de Kerberos

Falla la prueba PIG con el error Info:Error: java.io.IOException: Unableto obtain the Kerberos principal, incluso después de ejecutar kinit comousuario AD, o con Unable to open iterator for alias firstten.

Este problema se debe a que PIG (versión 0.13 o inferior) no genera un token dedelegación para ViPRFS como almacenamiento secundario.

Solución alternativaAnexe viprfs://bucket.ns.installation/ a la configuración demapreduce.job.hdfs-servers. Por ejemplo:

set mapreduce.job.hdfs-servers viprfs://KcdhbuckTM2.s3.site1

Permiso denegado para el usuario de ADEl error Permission denied se muestra cuando se ejecuta una aplicación con unusuario de AD.

Solución alternativaConfigure los permisos para el directorio /user de la siguiente manera:

hdfs dfs -chmod 1777 /user

Errores de permisosPueden producirse errores de permisos insuficientes debido a diversos motivos. Puederecibir este tipo de error cuando ejecuta un comando hadoop fs, o puede verlo en elregistro de aplicación, como el registro de mapreduce o hive.

Errores INSUFFICIENT_PERMISSIONS

En el ejemplo siguiente, la entidad de seguridad jhs intentó crear un directorio (/tmp)y recibió un error INSUFFICIENT_PERMISSIONS. En este caso, los permisos deldirectorio raíz no le permitían a este usuario crear un directorio.

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 /

Solución de problemas

Falla la prueba PIG: no se puede obtener la entidad de seguridad de Kerberos 175

Page 176: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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

Donde ve un error similar al siguiente 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 nombre de laentidad de seguridad para ver si había grupos de Active Directory (AD) almacenadosen caché para el usuario de entidad de seguridad que realizó la solicitud. Este error segenera para un usuario de Kerberos.

En el error, se informa el nombre del usuario que realizó la solicitud. Tome nota de ello.

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, puede ver este error 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 a

Solución de problemas

176 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 177: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

uno o más objetos en la ruta a la que intenta obtener acceso. A continuación, seproporciona un ejemplo de un error de acceso a objeto.

2015-11-08 22:36:21,995 [pool-68-thread-6] ERROR FileSystemAccessHelper.java (line 1364) nfsProcessOperation failed to process path: mr-history/done2015-11-08 22:36:21,995 [pool-68-thread-6] ERROR ObjectControllerExceptionHelper.java (line 186) Method nfsGetSMD failed due to exceptioncom.emc.storageos.data.object.exception.ObjectControllerException: directory server returns error ERROR_ACCESS_DENIEDat com.emc.storageos.data.object.FileSystemAccessLayer.FileSystemAccessHelper.nfsProcessOperation(FileSystemAccessHelper.java:1368)at com.emc.storageos.data.object.FileSystemAccessLayer.FileSystemAccessHelper.getSystemMetadata(FileSystemAccessHelper.java:466)at com.emc.storageos.data.object.FileSystemAccessLayer.FileSystemAccessLayer.getSystemMetadata(FileSystemAccessLayer.java:532)at com.emc.storageos.data.object.blob.client.BlobAPI.getStat(BlobAPI.java:1294)at com.emc.vipr.engine.real.RealBlobEngine.stat(RealBlobEngine.java:1976)at com.emc.vipr.engine.real.RealBlobEngine.stat(RealBlobEngine.java:802)at com.emc.vipr.hdfs.fs.RequestProcessor.accept(RequestProcessor.java:499)at com.emc.vipr.hdfs.net.ConnectionManager$RequestThread.run(ConnectionManager.java:136)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)at java.util.concurrent.ThreadPoolExecutor$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 muestrael carácter de barra diagonal inicial, por lo que la ruta real es /mr-history/done.Ahora tiene tres elementos que son importantes para la depuración:

l Entidad de seguridad de usuario (jhs@HOP171_HDFS.EMC.COM)

l Acción (stat es 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 177

l Depuración del cliente Hadoop en la página 178

Depuración de registro en blobsvcUna solicitud de permiso fallida tendrá un error como este en blobsvc:

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

Busque no permit. Esto nos brinda el usuario que hace la solicitud (jhs); elpropietario del objeto (hdfs); el grupo de objetos (hdfs); y los permisos para elpropietario, el grupo y otros. Lo que no nos brinda es el objeto específico que falló laverificación de permiso. En el nodo de Hadoop, conviértase en la entidad de seguridadhdfs, comience con la ruta y prepare el árbol, lo que lleva al otro método dedepuración y a que se analice el sistema de archivos de Hadoop a partir del cliente.

Solución de problemas

Errores de permisos 177

Page 178: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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 el ejemplo, elusuario jhs recibió un error que enumera el directorio /mr-history/done. Puederealizar algunos análisis para determinar la causa raíz. Si tiene acceso a la cuenta desuperusuario, 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

En el siguiente ejemplo, se demuestra que la entidad de seguridad jhs debió habertenido acceso para enumerar este directorio.

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

Del mismo modo, la siguiente salida muestra que el directorio no tiene problemas deacceso.

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 nombrede grupo es hdfs, pero la configuración others es - (0). El usuario que realiza lasolicitud es jhs@REALM; este usuario es miembro de hadoop, pero no de hdfs, demodo que no tiene permisos de ACL de objetos para enumerar el directorio /mr-history/done. Cuando se ejecuta el comando chmod en el directorio raíz, se habilitaal usuario a ejecutar la tarea.

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 /

Error al procesar la solicitudSe muestra Failed to Process Request al mostrar un depósito.

Al ejecutar el comando para mostrar un depósito, por ejemplo:

# hadoop fs -ls viprfs://hdfsBucket2.s3.site1/

Se produce el siguiente error interno de ViPRFS:

ERROR_FAILED_TO_PROCESS_REQUEST

Solución alternativaLas siguientes son algunas razones posibles para este error:

Solución de problemas

178 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 179: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

1. El archivo JAR viprfs-client en el nodo de Hadoop no está sincronizado con elsoftware ECS.

2. Intenta obtener acceso a un depósito seguro (de Kerberos) desde un nodo deHadoop no seguro (que no es de Kerberos).

3. Intenta obtener acceso a un depósito no seguro (que no es de Kerberos) desde unnodo de Hadoop seguro (de Kerberos).

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.

Habilitar el registro detallado del lado del clienteDebe habilitar el registro detallado usando una variable de ambiente que se aplica soloa la sesión del protocolo SSH actual, como se muestra en el siguiente ejemplo.

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 habilitar el registro detallado de Hadoop de la siguiente manera:

export HADOOP_ROOT_LOGGER="Debug,console"

Depuración de Kerberos en KDCSe puede depurar Kerberos en KDC usando el comando tail en elarchivo /var/log/krb5kdc.log de KDC para que sea más fácil de depurar cuandoejecuta una operación de HDFS.

tail -f /var/log/krb5kdc.log

Eliminación de la desviación del relojEs importante asegurarse de que la hora esté sincronizada entre cliente y servidor, yaque Kerberos se basa en la precisión de la hora.

Si su Active Directory (AD) tiene una desviación del reloj en relación con sus nodos dedatos/KDC, tendrá que configurar su servidor NTP. Puede hacerlo de la siguienteforma:

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>

Solución de problemas

Habilitar el registro y la depuración del lado del cliente de Kerberos 179

Page 180: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

b. net stop w32timec. net start w32time

Configuración de uno o más nodos de ECS nuevos con laentidad de seguridad de 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 La dirección IP de 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, vipr/_HOST@REALM nofuncionará.

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 el archivo inventory.txt en el directorio playbooks/samples paraagregar los nodos de ECS.

Las entradas predeterminadas se muestran en el extracto siguiente.

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

a. Cargue la imagen del contenedor de utilidad.

Ejemplo:

sudo docker load -i /opt/emc/caspian/checker/docker/images/utilities.txz

b. Obtenga la identidad de la imagen de docker.

Ejemplo:

admin@provo-lilac:~> sudo docker images

Solución de problemas

180 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 181: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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.

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.

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

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 la entidad de seguridad correcta. Por ejemplo:

dataservice-10-247-199-69:~ # strings /data/hdfs/krb5.keytabMA.EMC.COMviprnile3-vm42.centera.lab.emc.com

Solución de problemas

Configuración de uno o más nodos de ECS nuevos con la entidad de seguridad de servicio de ECS 181

Page 182: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

En ese caso, el principal es vipr/nile3-vm42.centera.lab.emc.com.

Solución alternativa para el error de directorio de Yarninexistente

Cuando configura ECS como el sistema de archivos predeterminado con un clústerHDP kerberizado, puede mostrarse un error como /ats/done does not exist.Además, no se inicia el administrador de recursos.

Este procedimiento proporciona una solución alternativa para estos problemas.

Procedimiento

1. Compruebe si los nodos de Hadoop pueden resolver los nodos de ECS.

a. Instale la herramienta nslookup en los nodos de Hadoop.

yum install -y bind-utils

b. Compruebe si puede resolver el nodo de ECS.

nslookup <address of ECS node>

c. Si no se resuelve con el nombre de host correcto, agregue el DNS de ECSa /etc/resolv.conf en los nodos de Hadoop.

Puede comprobar que las entradas de DNS estén allí mediante la ejecuciónde lo siguiente:

cat /etc/resolv.conf

d. Ahora el nodo de Hadoop resolverá los nodos de ECS.

Ejecute nslookup nuevamente para comprobar que se resuelva.

nslookup <address of ECS node>

2. Compruebe la hora del sistema en el nodo de Hadoop, los nodos de ECS y KDC.

Use lo siguiente:

# date

Si la hora de los sistemas no está consolidada, se debe sincronizar con el mismoservidor NTP.

Esto se describe en Enable NTP.

Solución de problemas

182 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 183: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

3. Si los pasos anteriores no funcionan, puede intentar crear manualmente lacarpeta done o active en /ats:

# sudo -u hdfs hdfs dfs -mkdir /ats/done

# sudo -u hdfs hdfs dfs -mkdir /ats/active

Y comprobar si existen los directorios:

$ hdfs dfs -ls /ats

Found 2 items drwxrwxrwt - yarn hadoop 0 2016-07-12 09:00 /ats/active drwx------ - yarn hadoop 0 2016-07-12 09:00 /ats/done

Solución de problemas

Solución alternativa para el error de directorio de Yarn inexistente 183

Page 184: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Solución de problemas

184 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 185: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

CAPÍTULO 10

Apéndice: Guía sobre la configuración deKerberos

l Guía sobre la configuración de Kerberos........................................................... 186

Apéndice: Guía sobre la configuración de Kerberos 185

Page 186: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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 losprincipales de manera explícita en el directorio /var/kerberos/krb5kdc/ .

6. Modifique kadm5.acl para especificar que los usuarios tienen permiso deadministrador.

*/[email protected] *

Apéndice: Guía sobre la configuración de Kerberos

186 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 187: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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 /

Apéndice: Guía sobre la configuración de Kerberos

Configuración de la autenticación de usuario AD para Kerberos 187

Page 188: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

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

Apéndice: Guía sobre la configuración de Kerberos

188 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 189: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

[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

Apéndice: Guía sobre la configuración de Kerberos

Configuración de la autenticación de usuario AD para Kerberos 189

Page 190: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Apéndice: Guía sobre la configuración de Kerberos

190 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 191: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

CAPÍTULO 11

Apéndice: Propiedades de core-site.xml deHadoop para ECS HDFS

l Propiedades de core-site.xml de Hadoop para ECS HDFS................................ 192

Apéndice: Propiedades de core-site.xml de Hadoop para ECS HDFS 191

Page 192: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Propiedades de core-site.xml de Hadoop para ECS HDFSAl configurar el archivo Hadoopcore-site.xml, utilice esta tabla como referenciapara las propiedades y sus valores relacionados.

Tabla 32 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.[federation].hosts para identificar de manera única conjuntos de nodos de datosde ECS. Los nombres se utilizan como un componente de la sección de autoridad del URI del sistemade archivos ECS HDFS. Por ejemplo:

<property> <name>fs.vipr.installations</name> <value><federation>,<site1>,<testsite></value> </property>

fs.vipr.installation.[federation].hosts

Las direcciones IP de los nodos de datos del clúster 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 o nombres de dominio calificados separados por comas. Por ejemplo:

<property> <name>fs.vipr.installation.<federation>.hosts</name> <value>203.0.113.10,203.0.113.11,203.0.113.12</value> </property>

fs.vipr.installation.[installation_name].resolution

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

Apéndice: Propiedades de core-site.xml de Hadoop para ECS HDFS

192 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 193: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Tabla 32 Propiedades de Hadoop core-site.xml (continuación)

Propiedad Descripción

l fixed: Utilice este valor cuando obtiene acceso a nodos de datos de ECS con un balanceador decarga.

<property> <name>fs.vipr.installation.<federation>.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

establece en dynamic, esta propiedad especifica la frecuencia con que se consulta a ECS para

obtener la lista de nodos activos. Los valores se expresan en milisegundos. El valor predeterminadoes de 10 minutos.

<property> <name>fs.vipr.installation.<federation>.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].[federation]

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 federation: El nombre relacionado con el conjunto de nodos de datos de ECS que Hadoop puedeutilizar para tener acceso a los datos de ECS. El valor de esta propiedad debe coincidir con unode los valores especificados en la propiedad fs.vipr.installations.

Por ejemplo:

<property> <name>fs.defaultFS</name> <value>viprfs://testbucket.s3.federation1</value> </property>

Propiedad umask

Apéndice: Propiedades de core-site.xml de Hadoop para ECS HDFS

Propiedades de core-site.xml de Hadoop para ECS HDFS 193

Page 194: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Tabla 32 Propiedades de Hadoop core-site.xml (continuación)

Propiedad Descripción

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 el cliente de ECS HDFS determina a qué dominio de Kerberospertenece un usuario determinado si no se especifica ninguno. Los nodos de datos de ECSalmacenan propietarios de archivos como username@REALM, mientras que Hadoop almacena los

propietarios de archivos 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 esta

configuració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 se

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

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

Nota

FIXED_REALM ahora está en desuso.

fs.viprfs.auth.realm El dominio asignado a los usuarios cuando la propiedadfs.viprfs.auth.identity_translation se establece en 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.

Apéndice: Propiedades de core-site.xml de Hadoop para ECS HDFS

194 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 195: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Tabla 32 Propiedades de Hadoop core-site.xml (continuación)

Propiedad Descripción

Nota

Esta propiedad se utilizaba para determinar qué pasaba con los archivos que no tenían propietario.Se indicaba que el propietario de estos archivos era anonymous. Los archivos y los directorios ya no

tienen propiedad anónima.

Los valores posibles son:

l LOCAL_USER: Utilice esta configuración con un clúster de Hadoop que utilice la seguridad

simple. 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 que utiliza Kerberos.

Asigna la entidad de seguridad de Kerberos ([email protected]) como el propietario del archivo

o directorio 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 desde

los 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 de la entidad de seguridad puede incluir _HOST, que se sustituye automáticamente por el

nombre de dominio calificado del nodo de datos real durante la hora de ejecución.

Por ejemplo:

<property> <name>viprfs.security.principal</name> <value>vipr/[email protected]</value></property>

Ejemplo de core-site.xml para el modo de autenticación simpleEl siguiente archivo core-site.xml es un ejemplo de propiedades de ECS HDFSpara el modo de autenticación simple.

Ejemplo 1 core-site.xml

<property> <name>fs.viprfs.impl</name> <value>com.emc.hadoop.fs.vipr.ViPRFileSystem</value></property>

Apéndice: Propiedades de core-site.xml de Hadoop para ECS HDFS

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

Page 196: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Ejemplo 1 core-site.xml (continuación)

<property> <name>fs.AbstractFileSystem.viprfs.impl</name> <value>com.emc.hadoop.fs.vipr.ViPRAbstractFileSystem</value></property>

<property> <name>fs.vipr.installations</name> <value>federation1</value></property>

<property> <name>fs.vipr.installation.federation1.hosts</name> <value>203.0.113.10,203.0.113.11,203.0.113.12</value></property>

<property> <name>fs.vipr.installation.federation1.resolution</name> <value>dynamic</value></property>

<property> <name>fs.vipr.installation.federation1.resolution.dynamic.time_to_live_ms</name> <value>900000</value></property>

<property> <name>fs.defaultFS</name> <value>viprfs://mybucket.mynamespace.federation1/</value></property>

<property> <name>fs.viprfs.auth.anonymous_translation</name> <value>LOCAL_USER</value></property>

<property> <name>fs.viprfs.auth.identity_translation</name> <value>NONE</value></property>

Apéndice: Propiedades de core-site.xml de Hadoop para ECS HDFS

196 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 197: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

CAPÍTULO 12

Apéndice: Ejemplo de metadatos de depósitoseguro

l Asegurar los metadatos del depósito................................................................ 198

Apéndice: Ejemplo de metadatos de depósito seguro 197

Page 198: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

Asegurar los metadatos del depósitoEl siguiente ejemplo muestra una lista de pares de nombre-valor de los metadatos dedepósito seguro.

{ "head_type": "hdfs", "metadata": [ { "name": "internal.kerberos.user.ambari-qa.name", "value": "ambari-qa@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.ambari-qa.shortname", "value": "ambari-qa" }, { "name": "internal.kerberos.user.ambari-qa.groups", "value": "hadoop,users" }, { "name": "internal.kerberos.user.cmaurer.name", "value": "cmaurer@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.cmaurer.shortname", "value": "cmaurer" }, { "name": "internal.kerberos.user.cmaurer.groups", "value": "cmaurer,adm,cdrom,sudo,dip,plugdev,users,lpadmin,sambashare" }, { "name": "internal.kerberos.user.dn.name", "value": "dn@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.dn.shortname", "value": "hdfs@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.dn.groups", "value": "hadoop,hdfs" }, { "name": "internal.kerberos.user.hdfs.name", "value": "hdfs@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.hdfs.shortname", "value": "hdfs" }, { "name": "internal.kerberos.user.hdfs.groups", "value": "hadoop,hdfs" }, { "name": "internal.kerberos.user.hive.name", "value": "hive@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.hive.shortname", "value": "hive"

Apéndice: Ejemplo de metadatos de depósito seguro

198 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos

Page 199: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

}, { "name": "internal.kerberos.user.hive.groups", "value": "hadoop" }, { "name": "internal.kerberos.user.jhs.name", "value": "jhs@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.jhs.shortname", "value": "mapred" }, { "name": "internal.kerberos.user.jhs.groups", "value": "hadoop" }, { "name": "internal.kerberos.user.nm.name", "value": "nm@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.nm.shortname", "value": "yarn@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.nm.groups", "value": "hadoop" }, { "name": "internal.kerberos.user.nn.name", "value": "nn@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.nn.shortname", "value": "hdfs@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.nn.groups", "value": "hadoop,hdfs" }, { "name": "internal.kerberos.user.rm.name", "value": "rm@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.rm.shortname", "value": "yarn@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.rm.groups", "value": "hadoop" }, { "name": "internal.kerberos.user.spark.name", "value": "spark@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.spark.shortname", "value": "spark" }, { "name": "internal.kerberos.user.spark.groups", "value": "hadoop" }, { "name": "internal.kerberos.user.yarn.name", "value": "yarn@EXAMPLE_HDFS.EMC.COM"

Apéndice: Ejemplo de metadatos de depósito seguro

Asegurar los metadatos del depósito 199

Page 200: Elastic Cloud Storage (ECS) · Elastic Cloud Storage (ECS) Versión 3.1 Guía de acceso a datos 302-003-865 01

}, { "name": "internal.kerberos.user.yarn.shortname", "value": "yarn" }, { "name": "internal.kerberos.user.yarn.groups", "value": "hadoop" }, { "name": "internal.kerberos.user.zookeeper.name", "value": "zookeeper@EXAMPLE_HDFS.EMC.COM" }, { "name": "internal.kerberos.user.zookeeper.shortname", "value": "ams" }, { "name": "internal.kerberos.user.zookeeper.groups", "value": "hadoop" }, { "name": "hadoop.proxyuser.hcat.groups", "value": "*" }, { "name": "hadoop.proxyuser.hcat.hosts", "value": "*" }, { "name": "hadoop.proxyuser.yarn.users", "value": "*" }, { "name": "hadoop.proxyuser.yarn.hosts", "value": "*" }, { "name": "hadoop.proxyuser.hive.hosts", "value": "10.247.179.42" }, { "name": "hadoop.proxyuser.hive.users", "value": "*" }, { "name": "hadoop.proxyuser.hcat.groups", "value": "*" }, { "name": "hadoop.proxyuser.hcat.hosts", "value": "*" }, { "name": "dfs.permissions.supergroup", "value": "hdfs" } ]}

Apéndice: Ejemplo de metadatos de depósito seguro

200 Elastic Cloud Storage (ECS) 3.1 Guía de acceso a datos