guía de acceso a datos - dell emc isilon...api de administración de ecs, que se puede utilizar...

208
ECS Versión 3.3 Guía de acceso a datos 302-005-555 02

Upload: others

Post on 17-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

ECSVersión 3.3

Guía de acceso a datos302-005-555

02

Page 2: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Copyright © 2018-2019 Dell Inc. o sus filiales. Todos los derechos reservados.

Publicado en Marzo de 2019

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 ECS 3.3 Guía de acceso a datos

Page 3: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Bienvenido a ECS 7

S3 9Soporte de API de Amazon S3 en ECS........................................................10Funcionalidades compatibles y no compatibles de la API de S3................... 10

Comportamiento cuando un depósito ya existe.............................. 13Compatibilidad con políticas de depósitos................................................... 14

Creación, asignación y administración de las políticas de depósitos...16Escenarios de políticas de depósitos.............................................. 16Operaciones de política de depósito compatibles........................... 18Condiciones de política de depósito compatibles............................19

Administración del ciclo de vida de un objeto.............................................. 21Extensiones de S3...................................................................................... 29

Extensiones del rango de bytes..................................................... 30Retención...................................................................................... 34Sistema de archivos habilitado.......................................................35Soporte de S3A............................................................................. 39

Búsqueda de metadatos............................................................................. 39Asignación de valores del índice de metadatos a un depósito.........40Uso del cifrado con la búsqueda de metadatos.............................. 42Asignación de metadatos a objetos mediante el protocolo de S3... 43Uso de las consultas de búsqueda de metadatos........................... 44Uso de la búsqueda de metadatos desde SDK Java de ECS ..........49Atributos opcionales y metadatos del sistemas ECS......................50

Interoperabilidad de S3 y Swift................................................................... 51Crear y administrar claves secretas............................................................53

Creación de una clave para un usuario de objetos..........................53Creación de una clave secreta de S3: autoservicio........................ 54

Autenticación con el servició de S3............................................................ 56Autenticación con firma V2............................................................57Autenticación con firma V4............................................................57

Uso de s3curl con ECS............................................................................... 58Uso del SDK para obtener acceso al servicio de S3.................................... 58

Uso del Java SDK de Amazon........................................................ 59Cliente SDK Java para ECS............................................................ 61

Códigos de error de ECS S3........................................................................61

OpenStack Swift 71Compatibilidad de ECS con OpenStack Swift............................................. 72Operaciones compatibles con OpenStack Swift......................................... 72Extensiones de Swift.................................................................................. 74Extensiones del rango de bytes de Swift.................................................... 74

Actualización de un rango de bytes dentro de un objeto................ 74Sobrescritura de la parte de un objeto........................................... 76Adición de datos a un objeto.......................................................... 77Lectura de múltiples rangos de bytes dentro de un objeto............. 78

Retención................................................................................................... 78Sistema de archivos habilitado....................................................................79

Capítulo 1

Capítulo 2

CONTENIDO

ECS 3.3 Guía de acceso a datos 3

Page 4: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Interoperabilidad de S3 y Swift...................................................................79Autenticación de OpenStack Swift.............................................................80

Creación de usuarios de Swift en el portal de ECS........................ 80Autenticación de la versión 1 de OpenStack .................................. 81Autenticación de la versión 2 de OpenStack.................................. 83Autenticación mediante la integración de ECS Keystone V3..........85

Autorización de contenedores.................................................................... 88Códigos de error de ECS Swift...................................................................89

EMC Atmos 91Soporte de API de EMC Atmos en ECS...................................................... 92Llamadas compatibles de la API REST de EMC Atmos............................... 92Llamadas no compatibles de la API REST de EMC Atmos...........................94Compatibilidad de subgrupo de usuarios de la API REST de EMC Atmos....95Extensiones de API.....................................................................................95

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

Códigos de errores de ECS Atmos............................................................. 101

CAS 105Configuración del soporte de CAS en ECS................................................ 106Almacenamiento inactivo.......................................................................... 106Cumplimiento de normas........................................................................... 107

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

Retención de CAS en ECS........................................................................ 109Retención avanzada de las aplicaciones de CAS: retención basada eneventos, destinada a asuntos legales y la controladora mín./máx.............. 110Establecer políticas de retención de espacio de nombres.......................... 116Creación y configuración de un depósito para un usuario de CAS.............. 116Configurar un usuario de objetos de CAS................................................... 117Establecer varias ACL de depósito para CAS............................................. 118API de administración de ECS que admiten usuarios de CAS..................... 119Compatibilidad de la API del SDK de almacenamiento direccionable porcontenido (CAS)....................................................................................... 120Códigos de errores de CAS de ECS...........................................................120

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

Autenticación sin cookies ............................................................ 128Cierre de sesión............................................................................130Comando whoami de la API REST de administración de ECS....... 130Resumen de la API REST de administración de ECS..................... 131

HDFS de ECS 137Introducción a ECS HDFS......................................................................... 138Configuración de Hadoop para usar ECS HDFS ........................................139Modos de autenticación de Hadoop.......................................................... 140

Acceso al depósito como un sistema de archivos......................... 140

Capítulo 3

Capítulo 4

Capítulo 5

Capítulo 6

CONTENIDO

4 ECS 3.3 Guía de acceso a datos

Page 5: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

ACL de grupo personalizado y grupo predeterminado del depósito....141Superusuario y supergrupo de Hadoop......................................... 142Acceso multiprotocolo (crosshead)..............................................142Usuario proxy............................................................................... 142Usuario de equivalencia................................................................ 143

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

Interacción del sistema de archivos........................................................... 144Aplicaciones de Hadoop compatibles.........................................................145Integración de un clúster de Hadoop simple con ECS HDFS..................... 145

Instalación de Hortonworks HDP con Ambari............................... 146Creación de un depósito para HDFS mediante el portal de ECS... 146Planificación de la integración de HDFS de ECS y Hadoop........... 152Obtención del paquete de instalación y de compatibilidad de ECSHDFS........................................................................................... 153Implementación de la biblioteca de clientes HDFS de ECS........... 153Configuración de las propiedades del cliente de ECS................... 154Configuración de Hive.................................................................. 155Verificación del acceso de Hadoop a ECS.....................................157Protección del depósito................................................................157Reubicación del sistema de archivos predeterminado de HDFS a undepósito de ECS...........................................................................158

Integración de un clúster de Hadoop con ECS HDFS ............................... 159Planear la migración desde un clúster simple a uno de Kerberos.. 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 deservicio de ECS.............................................................................161Activación de Kerberos mediante Ambari..................................... 165Asegurar el depósito de ECS con metadatos................................ 165Reconfiguración de las propiedades del cliente de ECS................169Inicio de los servicios de Hadoop y comprobación del acceso deHadoop a ECS.............................................................................. 170

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

Orientación sobre la configuración de Kerberos en el clúster deHadoop 183Configuración del KDC de Kerberos.......................................................... 184Configuración de la autenticación de usuario AD para Kerberos................ 185

Apéndice A

Apéndice B

CONTENIDO

ECS 3.3 Guía de acceso a datos 5

Page 6: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Ejemplo de metadatos de depósito seguro de HDFS 189Asegurar los metadatos del depósito.........................................................190

Propiedades de core-site.xml de Hadoop 193Propiedades de core-site.xml de Hadoop para ECS HDFS........................ 194

Ejemplo de core-site.xml para el modo de autenticación simple....197Propiedades de core-site.xml de Hadoop para ECS S3............................. 198

Ejemplo de core-site.xml para ECS S3.........................................200

Administración de claves externa 207Administración de claves externa............................................................. 208

Apéndice C

Apéndice D

Apéndice E

CONTENIDO

6 ECS 3.3 Guía de acceso a datos

Page 7: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Bienvenido a ECS

ECS es una plataforma de almacenamiento en nube completa definida por softwarecompatible con el almacenamiento, la manipulación y el análisis de datos noestructurados a gran escala en hardware genérico. ECS puede implementarse como undispositivo de almacenamiento listo para usar o como un producto de software quepuede instalarse en servidores y discos genéricos compatibles. ECS ofrece todas lasventajas de costo de la infraestructura genérica con la confiabilidad, disponibilidad ycapacidad de servicio de los arreglos tradicionales de la empresa.

La documentación en línea de ECS consta de las siguientes guías:

l Guía de administración

l Guía de monitoreo

l Guía de acceso a datos

l Guía de hardware

Guía de administración

La Guía de Administración es compatible con la configuración inicial de ECS y elaprovisionamiento de almacenamiento para cumplir con los requisitos dereplicación de datos y disponibilidad. Además, es compatible con la administracióncontinua de los grupos de usuarios y los usuarios, y con la creación y laconfiguración de depósitos.

Guía de monitoreo

La Guía de monitoreo es compatible con el uso del portal de ECS por parte deladministrador de ECS para monitorear el estado y el rendimiento de ECS y paraver su utilización de la capacidad.

Guía de acceso a datos

En la Guía de acceso a datos, se describen los protocolos compatibles con ECSpara que el usuario acceda al almacenamiento de objetos de ECS. Además de lasAPI de objetos de S3, EMC Atmos, OpenStack Swift y Centera (CAS), presenta laAPI de administración de ECS, que se puede utilizar para ejecutar la configuraciónde ECS antes del acceso del usuario, y detalla el uso de ECS como un sistema dearchivos Hadoop (HDFS) y la integración de ECS HDFS con un clúster deHadoop.

Guía de hardware

En la Guía de hardware, se describen la configuración de hardware compatible y lasrutas de actualización, se detallan los requisitos de cableado del rack.

Las versiones en PDF de estas guías en línea y los enlaces a otros documentos en PDF,como la Guía de configuración de seguridad de ECS y las Notas de la versión de ECS, sepueden encontrar en support.emc.com.

Bienvenido a ECS 7

Page 8: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Bienvenido a ECS

8 ECS 3.3 Guía de acceso a datos

Page 9: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

CAPÍTULO 1

S3

En esta sección, se describe la compatibilidad que ofrece ECS para la API S3 y laextensión. En esta sección, también se describe cómo autenticarse en el servicio yutilizar el Software Development Kit (SDK) para desarrollar clientes con el fin deobtener acceso al servicio.

Algunos aspectos de autenticación y direccionamiento de depósitos son específicos deECS. Para configurar una aplicación existente a fin de que se comunique con ECS odesarrollar una nueva aplicación que utilice la API S3 para comunicarse con ECS,consulte la Guía de administración de ECS Página de documentación de productos deECS.

l Soporte de API de Amazon S3 en ECS............................................................... 10l Funcionalidades compatibles y no compatibles de la API de S3...........................10l Compatibilidad con políticas de depósitos...........................................................14l Administración del ciclo de vida de un objeto...................................................... 21l Extensiones de S3..............................................................................................29l Búsqueda de metadatos..................................................................................... 39l Interoperabilidad de S3 y Swift...........................................................................51l Crear y administrar claves secretas....................................................................53l Autenticación con el servició de S3....................................................................56l Uso de s3curl con ECS.......................................................................................58l Uso del SDK para obtener acceso al servicio de S3............................................58l Códigos de error de ECS S3............................................................................... 61

S3 9

Page 10: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Soporte de API de Amazon S3 en ECSECS es compatible con la Interfaz de Programación de Aplicaciones (API) deAmazon Simple Storage Service (Amazon S3).

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

Protocolo Puertos

HTTP 9020

HTTPS 9021

Funcionalidades compatibles y no compatibles de la API deS3

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

En las siguientes secciones, se detallan las API compatibles y no compatibles.

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

Tabla 1 API de S3 compatibles

Feature Notas

Servicio GET ECS es compatible con parámetros de marcador y max-keys para permitir la paginación de lalista de depósitos.

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

Por ejemplo:

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

Categoría DELETE

CORS de categoría DELETE

Ciclo de vida de categoríaDELETE

Solo la parte de la expiración es compatible con el ciclo de vida. Las políticas relacionadas conel archivado (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, solo se admite el delimitador / al

enumerar objetos.

Depósito GET (lista deobjetos) versión 2

En los depósitos habilitados para el sistema de archivos, solo se admite el delimitador / al

enumerar objetos.

CORS de categoría GET

ACL de categoría GET

S3

10 ECS 3.3 Guía de acceso a datos

Page 11: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Tabla 1 API de S3 compatibles (continuación)

Feature Notas

Ciclo de vida de categoríaGET

Solo la parte de la expiración es compatible con el ciclo de vida. Las políticas relacionadas conel archivado (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 Donde PUT se ejecuta en un depósito existente, consulte Comportamiento en el que el

depósito ya existe.

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 de vida. Las políticas relacionadas conel archivado (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 No puede configurar las políticas de depósitos habilitados para depósitos habilitados para CASo sistema de archivos. No puede configurar las políticas de depósito para las operaciones queno son compatibles con ECS. Se proporciona más información sobre la compatibilidad de laspolíticas de depósito en Compatibilidad de la política del depósito.

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

S3

Funcionalidades compatibles y no compatibles de la API de S3 11

Page 12: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Tabla 1 API de S3 compatibles (continuación)

Feature Notas

Completar carga de múltiplespartes

ECS muestra una ETag de 00 para esta solicitud, que es diferente de la respuesta deAmazon 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 muestra 400invalid content-length value, a diferencia de AWS, que muestra 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 Solicitud incorrecta para un depósito habilitado para elsistema de archivos. Sin embargo, AWS muestra el mensaje 200 OK y los objetosno se enumeran.

Tabla 2 Funciones adicionales

Feature Notas

URL prefirmadas ECS es compatible con el uso de URL prefirmadas para otorgar acceso a los objetos sinnecesidad de usar credenciales.

Puede obtener más información en: https://docs.aws.amazon.com/AmazonS3/latest/dev/PresignedUrlUploadObject.html.

PUT fragmentada La operación PUT se puede usar para cargar objetos en fragmentos, lo que permite enviar el

contenido antes de que se conozca el tamaño total de la carga útil. La transferenciafragmentada utiliza el encabezado de codificación de transferencia (codificación detransferencia: fragmentada) para especificar que el contenido se transmite en fragmentos.

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

Tabla 3 API de S3 no compatibles

Feature Notas

Etiquetado de categoríaDELETE

S3

12 ECS 3.3 Guía de acceso a datos

Page 13: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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

Feature Notas

Sitio web de categoríaDELETE

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

Registro de categoría GET

Notificación de categoría GET La notificación solo se define para la funcionalidad de redundancia reducida de S3. Por elmomento, ECS no admite las notificaciones.

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 de redundancia reducida de S3. Por elmomento, ECS no admite las notificaciones.

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

Objeto POST

Restaurar objeto POST La operación de restauración del objeto POST se relaciona con AWS Glacier, que no escompatible con ECS.

Contenido del objeto SELECT

Retención legal del objetoPUT

Retención legal del objetoGET

Retención del objeto PUT ECS aún no es compatible con la nueva API de AWS, pero es compatible con sus propiasextensiones. Consulte Extensiones de S3 en la página 29.

Retención del objeto GET ECS aún no es compatible con la nueva API de AWS, pero es compatible con sus propiasextensiones. Consulte Extensiones de S3 en la página 29.

Etiquetado del objeto PUT

Etiquetado del objeto GET

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

S3

Comportamiento cuando un depósito ya existe 13

Page 14: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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.

Compatibilidad con 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. En esta sección, se proporciona información básica sobre eluso de políticas de depósitos y la identificación de las diferencias cuando utilizapolí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/*"], "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.

Versión

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

S3

14 ECS 3.3 Guía de acceso a datos

Page 15: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 declaración es una cadena que describe lo que hace la declaració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 en función de si se usa direccionamiento del estilo de host virtualo 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, con:

bucketname/*

Acciones

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

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

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 principal en un carácter comodín, “*”, como se muestra acontinuación:

"Principal":"*"

S3

Compatibilidad con políticas de depósitos 15

Page 16: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Nota

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

Condiciones

La condición según la cual se aplica la política. La expresión de condición se utilizapara 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 19.

En la documentación de Amazon S3, encontrará más información sobre los elementosque puede utilizar en una política http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html.

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

Puede crear una política para depósitos desde el portal de ECS (consulte la Guía deadministración de ECS disponible en Página de documentación de productos de ECS).También es posible crear una política mediante otro editor y asociarla con un depósitomediante la API REST de administración de ECS o usando la API de S3 de ECS.

La API REST de administración de ECS proporciona las siguientes API a fin de 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 administrador de espacio denombres.

La API de S3 de ECS proporciona las siguientes API:

l PUT Bucket Policyl GET Bucket Policyl 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 la 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.

S3

16 ECS 3.3 Guía de acceso a datos

Page 17: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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

l Otorgar permisos de depósitos a un usuario

l Otorgar permisos de depósitos a todos los usuarios

l Asigne permisos a objetos creados automáticamente

Otorgar permisos de depósitos a un usuarioPara otorgar permiso a un depósito a un usuario aparte del propietario del depósito,especifique el recurso al que desea cambiar los permisos. Configure el atributoprincipal con el nombre del usuario y especifique una o más acciones que deseehabilitar.

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 cuando accede al depósito desde una dirección IP específica,agregue 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" ], "Resource":[ "mybucket/*" ] "Condition": {"IpAddress": {"aws:SourceIp": "<Ip address>"} } ]}

Otorgar permisos de depósitos a todos los usuariosPara otorgar permiso a un depósito a un usuario aparte del propietario del depósito,especifique el recurso al que desea cambiar los permisos. Configure el atributoprincipal como Anybody (*) y especifique una o más acciones que desee habilitar.

En el siguiente ejemplo, se muestra una política que otorga a cualquier usuario elpermiso de leer objetos en el depósito denominado mybucket:

{ "Version": "2012-10-17", "Id": "S3PolicyId2", "Statement": [

S3

Escenarios de políticas de depósitos 17

Page 18: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

{ "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 configura ACL en la mismaoperación, se puede configurar una condición. De forma tal que se debe especificaruna lectura pública de ACL predefinida cuando se crea 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.

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 especifican un número de versión

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

s3:GetObjectAcl ACEL de objeto GET

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

S3

18 ECS 3.3 Guía de acceso a datos

Page 19: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Tabla 4 Permisos para las operaciones de objetos (continuación)

Palabra clave de permiso Operaciones de S3 admitidas

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

S3

Condiciones de política de depósito compatibles 19

Page 20: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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

Nombre clave Descripción Operadoresaplicables

aws:CurrentTime Se utiliza para verificar las condiciones de fecha/hora. Operador de fecha

aws:EpochTime Se utiliza para verificar las condiciones de fecha/hora con una fecha epocho tiempo de UNIX (consulte Operadores de condición de fecha).

Operador de fecha

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

Operador de cadena

aws:SourceIp Se utiliza para comprobar la dirección IP del solicitante. Operador de cadena

aws:UserAgent Se utiliza para comprobar la aplicación de cliente del solicitante. Operador de cadena

aws:username Se usa para comprobar el nombre de usuario del 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 para requerirpermisos de acceso específicos cuandoel usuario carga un objeto.

s3:PutObject, s3:PutObjectAcl,s3:PutObjectVersionAcl

s3:x-amz-grant-permission (para lospermisos explícitos), donde permissionpuede ser read, write, read-acp, write-acp, full-control

El propietario del depósito puedeagregar condiciones usando estas clavesa fin de requerir ciertos permisos.

s3:PutObject, s3:PutObjectAcl,s3:PutObjectVersionAcl

s3:x-amz-server-side-encryption Requiere que el usuario especifique esteencabezado en la solicitud.

s3:PutObject, s3:PutObjectAcl

s3:VersionId Restringe al usuario al acceso a los datossolo para una versión específica delobjeto.

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 para requerirpermisos de acceso específicos cuandoel usuario carga un objeto.

s3:CreateBucket, s3:PutBucketAcl

s3:x-amz-grant-permission (para lospermisos explícitos), donde permissionpuede ser read, write, read-acp, write-acp, full-control

El propietario del depósito puedeagregar condiciones usando estas clavesa fin de requerir ciertos permisos.

s3:CreateBucket, s3:PutBucketAcl

s3:prefix Permite recuperar solo las claves deobjeto con un prefijo específico.

s3:ListBucket, s3:ListBucketVersions

s3:delimiter Se solicita al usuario que especifique elparámetro de delimitador en la solicitudGet Bucket (List Objects)

s3:ListBucket, s3:ListBucketVersions

s3:max-keys Limita la cantidad de claves que ECSdevuelve en respuesta a la solicitud Get

s3:ListBucket, s3:ListBucketVersions

S3

20 ECS 3.3 Guía de acceso a datos

Page 21: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Tabla 9 Claves de condición específicas de S3 compatibles para las operaciones dedepósito (continuación)

Nombre clave Descripción Permisos aplicables

Bucket (List Objects) solicitando que elusuario especifique el parámetro max-keys.

Administración del ciclo de vida de un objetoECS es compatible con S3 Lifecycle Configuration en los depósitos que tienenhabilitadas las versiones y en aquellos que no las tienen.

Cuando necesite 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 útil para determinar cuándo se quitarán lasversiones de objetos eliminados de ECS.

El control de versiones y el ciclo de vida útil son funciones estándares de S3. Sinembargo, el vencimiento del ciclo de vida está estrechamente relacionado con laretención, que es una extensión de ECS. Si el ciclo de vida útil vence antes de quevenza el período de retención, el objeto no se eliminará hasta que el período deretención termine.

Nota

l El ciclo de vida útil no se puede habilitar en depósitos con la opción FS habilitada.

l El ciclo de vida útil es un concepto a nivel de depósito.

l Se aplica un máximo de 1000 reglas de ciclo de vida útil por depósito.

l Puede haber una demora entre la fecha de vencimiento y la fecha en la que S3quita un objeto.

l Siempre redondee la hora resultante a la medianoche del día siguiente, UTC.

l En el caso del vencimiento, los días se calculan desde la fecha de la últimamodificación (es decir, la fecha de creación de los objetos que aún no se hanmodificado o eliminado).

l En el caso de noncurrentexpiration, los días se calculan, ya que el objeto se volvióno actual.

l Las reglas basadas en fechas activan la acción en todos los objetos creados enesta fecha o antes de ella.

Ejemplo de configuración del ciclo de vida útil para ECSLos siguientes son ejemplos de configuración del ciclo de vida útil.

Anulación de las MPU antiguas (depósitos con control de versiones y sin control deversiones habilitados)

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Rule>

S3

Administración del ciclo de vida de un objeto 21

Page 22: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

<ID>lifecycle-v2-expire-non-current-and-dmarkers-and-mpu</ID> <Filter/> <Status>Enabled</Status> <AbortIncompleteMultipartUpload> <DaysAfterInitiation>1</DaysAfterInitiation> </AbortIncompleteMultipartUpload> </Rule></LifecycleConfiguration>

Vencimiento de objetos después de una cantidad determinada de días (depósitos concontrol de versiones y sin control de versiones habilitados)

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

Vencimiento de versiones no actuales de objetos después de una cantidaddeterminada de días (solo para depósitos con control de versiones habilitado)

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

Eliminación de marcadores de eliminación de objetos vencidos (solo para depósitoscon control de versiones habilitado)

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

S3

22 ECS 3.3 Guía de acceso a datos

Page 23: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Dar vencimiento a todas las versiones no actuales, dmarkers y MPU incompletasdespués de un día

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

Ciclo de vida útil de PUT/GET con ejemplos de s3curlA continuación, se incluyen ejemplos del ciclo de vida útil de PUT y GET con s3curl.Para obtener más información, consulte Uso de s3curl con ECS.

Ciclo de vida útil de PUT

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

S3

Administración del ciclo de vida de un objeto 23

Page 24: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

> Content-Length: 376> Expect: 100-continue>< HTTP/1.1 100 Continue* We are completely uploaded and fine< HTTP/1.1 200 OK< Date: Tue, 06 Nov 2018 17:28:58 GMT* Server ViPR/1.0 is not blacklisted< Server: ViPR/1.0< x-amz-request-id: 0a20a979:166c6842ba5:82ba:5< x-amz-id-2: 6687ce5967202724ed9a94d44c939438d39cabae9abc5a2c48a60c2c5355f95e< Content-Length: 0<* Connection #0 to host 10.32.169.121 left intact

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

Ciclo de vida útil de GET

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

S3

24 ECS 3.3 Guía de acceso a datos

Page 25: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Elementos compatibles de configuración del ciclo de vida útil

Tabla 10 Elementos compatibles de configuración del ciclo de vida útil

Nombre Descripción Obligatorio

AbortIncompleteMultipartUpload

l Contenedor para especificar cuando unacarga incompleta de múltiples partes es aptapara una operación de anulación.

l Cuando especifique esta acción del ciclo devida útil, en la regla no se puede especificarun filtro basado en etiquetas.

l Elemento secundario: DaysAfterInitiation

l Tipo: Container

l Antepasado: Rule

Sí, si no se especifica otra acción para la regla.

And l Contenedor para especificar los filtros de laregla. Estos filtros permiten determinar elsubconjunto de objetos a los que se aplica laregla.

l Tipo: String

l Antepasado: Rule

Sí, si especifica más de una condición de filtro(por ejemplo, un prefijo y una o más etiquetas).

Date l Fecha en que se desea que S3 realice laacción.

l El valor de fecha debe cumplir con el formatode ISO 8601. La hora siempre es amedianoche UTC.

l Tipo: String

l Antepasado: Expiration o Transition

Sí, si Days y ExpiredObjectDeleteMarkerno están presentes.

Days l Especifica la cantidad de días después de lacreación del objeto cuando se aplica la acciónde regla específica.

l Tipo: Nonnegative Integer cuando se utilizacon Transition; Positive Integer cuando seutiliza con Expiration.

l Antepasado: Expiration, Transition

Sí, si Date y ExpiredObjectDeleteMarkerno están presentes.

DaysAfterInitiation

l Especifica la cantidad de días en que se debecompletar una carga de múltiples partesdespués de iniciarla. Si no se completa en lacantidad de días especificada, la carga demúltiples partes incompleta se convierte enapta para una operación de anulación y S3 laanula.

l Tipo: Positive Integer

l Antepasado:AbortIncompleteMultipartUpload

Sí, si se especifica el antepasado.

S3

Administración del ciclo de vida de un objeto 25

Page 26: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Tabla 10 Elementos compatibles de configuración del ciclo de vida útil (continuación)

Nombre Descripción Obligatorio

Expiration l Esta acción especifica un período en laduración de un objeto en el que S3 deberealizar la acción de vencimientocorrespondiente. La acción que S3 realizadepende de si el depósito tiene el control deversiones habilitado.

l Si nunca se habilitó el control de versiones enel depósito, S3 elimina la única copia delobjeto de forma permanente. De lo contrario,si el depósito tiene el control de versioneshabilitado (o si se suspendió el control deversiones), la acción se aplica solo a laversión actual del objeto. Un depósito con elcontrol de versiones habilitado puede tenervarias versiones del mismo objeto, unaversión actual y cero o más versiones noactuales.

l En lugar de eliminar la versión actual, S3 laconvierte en una versión no actual. Para ello,agrega un marcador de eliminación como lanueva versión actual.

Nota

n Si el depósito tiene el control deversiones suspendido, S3 crea unmarcador de eliminación con el ID deversión vacío. Si tiene una versión con elID de versión vacío, S3 sobrescribe esaversión.

n Para configurar el vencimiento de losobjetos no actuales, debe usar la acciónNoncurrentVersionExpiration.

l Tipo: Container

l Elementos secundarios: Days o Date

l Antepasado: Rule

Sí, si no hay otra acción presente en la regla.

Filter l Contenedor para elementos que describen elfiltro que identifica un subconjunto deobjetos a los que se aplica la regla del ciclode vida útil. Si especifica un filtro vacío(<Filter></Filter>), la regla se aplica a todoslos objetos del depósito.

l Tipo: String

l Elementos secundarios: Prefix, Tag

l Antepasado: Rule

S3

26 ECS 3.3 Guía de acceso a datos

Page 27: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Tabla 10 Elementos compatibles de configuración del ciclo de vida útil (continuación)

Nombre Descripción Obligatorio

ID l Identificador único para la regla. El valor nopuede tener más de 255 caracteres.

l Tipo: String

l Antepasado: Rule

No

Key l Especifica la clave de una etiqueta. Una clavede etiqueta puede tener una longitud dehasta 128 caracteres Unicode.

l Las claves de etiqueta que especifique en unfiltro de regla del ciclo de vida útil deben serúnicas.

l Tipo: String

l Antepasado: Tag

Sí, si se especifica el elemento primario <Tag>.

LifecycleConfiguration

l Contenedor para las reglas del ciclo de vidaútil. Puede agregar hasta 1000 reglas.

l Tipo: Container

l Elementos secundarios: Rule

l Antepasado: None

ExpiredObjectDeleteMarker

l En un depósito con control de versiones(depósito con control de versiones habilitadoo suspendido), puede agregar este elementoen la configuración del ciclo de vida útil paraque S3 elimine los marcadores de eliminaciónde objetos vencidos. En un depósito sincontrol de versiones, la adición de esteelemento en una política no tiene sentido, yaque no puede haber marcadores deeliminación. Por lo tanto, el elemento norealiza ninguna acción.

l Cuando especifique esta acción del ciclo devida útil, en la regla no se puede especificarun filtro basado en etiquetas.

l Tipo: String

l Valores válidos: true | false (se permite elvalor false, pero no es operativo, y S3 noadopta medidas si el valor es false)

l Antepasado: Expiration.

Sí, si Date y Days no están presentes.

NoncurrentDays l Especifica la cantidad de días en que unobjeto tiene el estado no actual antes de queS3 pueda realizar la acción asociada.

l Tipo: Nonnegative Integer cuando se utilizacon NoncurrentVersionTransition;

S3

Administración del ciclo de vida de un objeto 27

Page 28: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Tabla 10 Elementos compatibles de configuración del ciclo de vida útil (continuación)

Nombre Descripción Obligatorio

Positive Integer cuando se utiliza conNoncurrentVersionExpiration.

l Antepasado:NoncurrentVersionExpiration oNoncurrentVersionTransition

NoncurrentVersionExpiration

l Especifica la fecha de vencimiento de lasversiones de objetos no actuales. Despuésdel vencimiento, S3 elimina de formapermanente las versiones de objetos noactuales.

l Configure esta acción de configuración delciclo de vida útil en un depósito con controlde versiones habilitado (o suspendido) parasolicitar que S3 elimine las versiones deobjetos no actuales en un período específicode la duración del objeto.

l Tipo: Container

l Elementos secundarios: NoncurrentDays

l Antepasado: Rule

Sí, si no hay otra acción presente en la Rule.

Prefix l Prefijo de clave del objeto que identifica unoo más objetos a los que se aplica la regla. Elprefijo vacío (<Prefix></Prefix>) indica queno hay ningún filtro basado en el prefijo declave.

Nota

ECS es compatible con <Prefix> con o sin<Filter>.Ciclo de vida útil del depósito PUT con<Filter>

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

Ciclo de vida útil del depósito PUT (obsoleto)sin <Filter>

<Prefix>value</Prefix>

l Puede haber al menos un prefijo en un filtrode regla del ciclo de vida útil.

l Tipo: String

No

S3

28 ECS 3.3 Guía de acceso a datos

Page 29: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Tabla 10 Elementos compatibles de configuración del ciclo de vida útil (continuación)

Nombre Descripción Obligatorio

l Antepasado: Filter o And (si se especificanvarios filtros, como prefijo y una o másetiquetas)

Rule l Contenedor para una regla del ciclo de vidaútil. Una configuración del ciclo de vida útilpuede tener hasta 1000 reglas.

l Tipo: Container

l Antepasado: LifecycleConfiguration

Status l Si está habilitado, S3 ejecuta la regla segúnlo programado. Si está deshabilitado, S3omite la regla.

l Tipo: String

l Antepasado: Rule

l Valores válidos: Enabled, Disabled.

Value l Especifica el valor de una clave de etiqueta.Cada etiqueta de un objeto es un par de valorclave.

l Una clave de etiqueta puede tener unalongitud de hasta 256 caracteres Unicode.

l Tipo: String

l Antepasado: Tag

Sí, si se especifica el elemento primario <Tag>.

Habilitación del escáner de eliminación del ciclo de vida útil (LDS)El propósito del escáner LDS es iniciar el vencimiento de los objetos o las versionescreadas antes de la aplicación del ciclo de vida útil. Por ejemplo, si hay un depósitocreado hace algún tiempo y tiene un uso continuo, y aparece un requisito de aplicar elciclo de vida útil, se debe habilitar el LDS para las políticas del ciclo de vida útil con elfin de abarcar los objetos y las versiones anteriores.

Nota

LDS está deshabilitado de forma predeterminada. Para habilitar la versión previa a3.2.1, comuníquese con Soporte remoto de ECS.

Para habilitar la versión 3.2.1 y superiores, establezca el valor del parámetrocom.emc.ecs.resource.lifecycledeletescanner.enable en true.

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

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

S3

Extensiones de S3 29

Page 30: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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

l Extensiones del rango de bytes en la página 30

l Retención en la página 34

l Sistema de archivos habilitado en la página 35

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

l Soporte de S3A en la página 39

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

l Sobrescritura de la parte de un objeto

l Adición de datos a un objeto

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

Nota

Una operación de rango de bytes (actualizar/anexar/sobrescribir) en un objeto concontrol de versiones no crea una nueva versión, sino que actualiza la versión másreciente.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 unagama de 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, 12 Mar 2018 20:04:40 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:9qxKiHt2H7upUDPF86dvGp8VdvI=Accept-Encoding: gzip, deflate, compress HTTP/1.1 200 OKDate: Mon, 12 Mar 2018 20:04:40 GMTContent-Type: application/octet-streamLast-Modified: Mon, 12 Mar 2018 20:04:28 GMTETag: 6Content-Type: application/jsonContent-Length: 43 The quick brown fox jumps over the lazy dog.

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

S3

30 ECS 3.3 Guía de acceso a datos

Page 31: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

finalizació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 de la gama con el valorbytes=10-14, que indica que los bytes 10,11,12,13,14 se reemplazarán con 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, 12 Mar 2018 20:15:16 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:xHJcAYAEQansKLaF+/4PdLBHyaM=Accept-Encoding: gzip, deflate, compress green HTTP/1.1 204 No ContentETag: 10x-amz-id-2: object1x-amz-request-id: 027f037c-29ea-4670-8670-de82d0e9f52aContent-Length: 0Date: Mon, 12 Mar 2018 20:15:16 GMT

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, 12 Mar 2018 20:16:00 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:OGVN4z8NV5vnSAilQTdpv/fcQzU=Accept-Encoding: gzip, deflate, compress HTTP/1.1 200 OKDate: Mon, 12 Mar 2018 20:16:00 GMTContent-Type: application/octet-streamLast-Modified: Mon, 12 Mar 2018 20:15:16 GMTETag: 10Content-Type: application/jsonContent-Length: 43 The quick green fox jumps over the lazy dog.

Sobrescritura de la parte de un objetoPuede usar las extensiones de ECS para sobrescribir parte de un objeto con elprotocolo S3.

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 31

Page 32: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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, 12 Mar 2018 20:51:41 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:uwPjDAgmazCP5lu77Zvbo+CiT4Q=Accept-Encoding: gzip, deflate, compress brown cat HTTP/1.1 204 No ContentETag: 25x-amz-id-2: object1x-amz-request-id: 65be45c2-0ee8-448a-a5a0-fff82573aa3bContent-Length: 0Date: Mon, 12 Mar 2018 20:51:41 GMT

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, 12 Mar 2018 20:51:55 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:/UQpdxNqZtyDkzGbK169GzhZmt4=Accept-Encoding: gzip, deflate, compress HTTP/1.1 200 OKDate: Mon, 12 Mar 2018 20:51:55 GMTContent-Type: application/octet-streamLast-Modified: Mon, 12 Mar 2018 20:51:41 GMTETag: 25Content-Type: application/jsonContent-Length: 51 The quick brown cat jumps over the lazy dog and cat.

Tenga en cuenta que, si sobrescribe partes existentes de un objeto, se agregará eltamaño y la cantidad de las partes nuevas a los de las piezas existentes quesobrescribió. Por ejemplo, si un depósito tiene una parte de 20 KB de tamaño,sobrescribirá 5 KB. Cuando consulte el depósito con GET /object/billing/buckets/{namespace}/{bucketName}/info, se mostrará total_mpu_size =25 KB (no 20 KB) y total_mpu_parts = 2 (no 1) en el resultado.

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 deba agregar un objeto, pero la determinación de lacompensación exacta de bytes no es eficiente ni útil. Para este escenario, ECSpermite agregar datos al objeto sin especificar una compensación (la compensacióncorrecta se devuelve en la respuesta). Por ejemplo, para poder agregar líneas a unarchivo de registro, en Amazon u otras plataformas compatibles con S3, debe enviar elarchivo de registro completo nuevamente.

S3

32 ECS 3.3 Guía de acceso a datos

Page 33: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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

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, 12 Mar 2018 20:46:56 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:D8FSE8JoLl0MTQcFmd4nG1gMDTg=Accept-Encoding: gzip, deflate, compress HTTP/1.1 200 OKDate: Mon, 12 Mar 2018 20:46:56 GMTContent-Type: application/octet-streamLast-Modified: Mon, 12 Mar 2018 20:46:01 GMTETag: 24Content-Type: application/jsonContent-Length: 51 The quick green fox jumps over the lazy dog and cat.

Lectura de múltiples rangos de bytes dentro de un objetoPuede usar las extensiones de ECS para el protocolo de S3 a fin de leer una gama debytes 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 gamas específicas 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, 12 Mar 2018 20:51:55 -0000

S3

Extensiones del rango de bytes 33

Page 34: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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

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. El S3 de ECS es una extensión de ECS yno está disponible en la API 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. La política deretención permite que el período de retención para un grupo de objetos seestablezca en el mismo valor mediante una política y pueda cambiarse para todoslos objetos si se cambia dicha política. El uso de una política proporciona muchamás flexibilidad que la aplicación del período de retención a un objeto. Además, sepueden establecer varias políticas de retención para un espacio de nombres a finde permitir a los diferentes grupos de objetos tener diferentes períodos deretención.

Cuando se aplica una política de retención a un objeto mediante un encabezadox-emc-retention-policy, se debe establecer el período de retención de lapolítica. El administrador de ECS debe establecer el período de retención de lapolítica desde el portal de ECS o mediante la API REST de administración de ECS.

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

Un período de retención que se almacena en un depósito permite definir unperíodo de retención. Se establece un período de retención para todos los objetoscon la política o el período de retención en el nivel de objetos que se usa a fin deproporcionar una configuración de objetos específica cuando se requiere unaretención más prolongada. El período de retención se establece mediante unencabezado x-emc-retention-period en el depósito.

S3

34 ECS 3.3 Guía de acceso a datos

Page 35: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 del objeto se establece directamente en él, o bien mediante eluso de la política de retención de este.

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

Sistema de archivos habilitado

Los depósitos S3 pueden estar habilitados para el sistema de archivos (FS), de modoque los archivos escritos mediante el protocolo de S3 puedan leerse con los protocolosde archivos, como Network File System (NFS) y Hadoop Distributed File System(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 FSCuando se habilita el FS para un depósito, no se puede habilitar la administración delciclo de vida de S3.

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

Un aspecto importante del soporte entre cabezales es la manera en que los permisosde objetos y 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 el soporte entre cabezales con sistemas dearchivos en la Guía de administración de ECS, que está disponible en Página dedocumentación de productos de ECS.

WORM de NFS (Write Once, Read Many)Los datos de NFS se vuelven compatibles con Write Once Read Many (WORM)cuando se implementa la confirmación automática en ellos.En detalle, la creación de archivos a través de NFS es un proceso de varios pasos.Para escribir en un archivo nuevo, el cliente de NFS primero envía la solicitud CREATEsin carga útil al servidor NFS. Después de recibir una respuesta, el servidor emite unasolicitud WRITE. Es un problema para los depósitos con la opción FS habilitada y conretención, ya que el archivo creado con 0 bytes bloquea todas las escrituras en él. Poresta razón, hasta ECS 3.3, la retención en el depósito con la opción FS habilitada haceque todo el sistema de archivos montado sea de solo lectura. No hay un concepto deFin de archivo (EOF) en NFS. Configurar una retención de archivos en los depósitoscon la opción FS habilitada después de escribir en ellos no funciona según lo previsto.

Para quitar las restricciones que se colocan en archivos NFS en un depósito con laretención habilitada, se implementa el período de confirmación automática en los datosde NFS. Por esta razón, se decidió presentar el período de confirmación automática,en el que ciertos tipos de actualizaciones (que se identifican, por el momento, comoescrituras, actualizaciones de ACL y eliminaciones que se requieren para rsync, y

S3

Sistema de archivos habilitado 35

Page 36: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

cambio de nombre que se requiere para el editor de Vim) están permitidas, lo que quitalas restricciones de retención solo para ese período.

Nota

l La confirmación automática y la demora de inicio de la retención de Atmos son lasmismas. Consulte Ventana de demora de inicio de retención en la página 101.

l El período de confirmación automática es una propiedad de depósito, como elperíodo de retención.

l El período de confirmación automática:

n Se aplica solo a los depósitos habilitados para el sistema de archivos con elperíodo de retención

n Se aplica a los depósitos en el espacio de nombres no compatible

n Se aplica solo a las solicitudes de NFS y Atmos

Archivo de selloLa funcionalidad de archivo de sello permite confirmar el archivo en el estado WORMcuando se escribe omitiendo el período de confirmación automática restante. Lafunción de sello se ejecuta mediante el comando: chmod ugo-w <file> en elarchivo.

Nota

La funcionalidad de sellado no tiene un efecto fuera del período de retención.

Visión general de alto nivel

Tabla 11 Términos de confirmación automática

Término Descripción

Período deconfirmaciónautomática

Intervalo de tiempo relativo a la última hora de modificación del objetoen el que ciertas restricciones de retención (por ejemplo,modificaciones de archivos, eliminaciones de archivos, etcétera) no seaplican. No tiene ningún efecto fuera del período de retención.

Demora de inicio deretención

El cabezal de Atmos utiliza la demora de inicio para indicar el períodode confirmación automática.

En el siguiente diagrama, se proporciona una visión general del comportamiento delperíodo de confirmación automática.

S3

36 ECS 3.3 Guía de acceso a datos

Page 37: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Configuración de confirmación automáticaEl período de confirmación automática puede configurarse desde la interfaz delusuario, la API REST del depósito o la API de subgrupo de usuarios de Atmos o delcabezal S3.

Interfaz del usuarioLa interfaz del usuario tiene la siguiente compatibilidad durante la creación y la edicióndel depósito:

l Cuando el sistema de archivos no está habilitado, no se muestra una opción deconfirmación automática.

l Cuando el sistema de archivos está habilitado o no se especifica el valor deretención, se muestra la confirmación automática, pero aparece deshabilitada.

l Cuando el sistema de archivos está habilitado o se selecciona el valor de retención,se muestra la confirmación automática y se habilita para la selección.

Nota

El período máximo de confirmación automática se limita al menor tiempo entre elperíodo de retención del depósito o el período máximo predeterminado de un día.

API RESTLa API REST de la creación del depósito se modifica con el nuevo encabezado, x-emc-autocommit-period.

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

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

Cabezal de S3Creación de depósitosEl flujo de creación de depósitos mediante el cabezal de S3 puede usar el encabezadode la solicitud opcional x-emc-auto-commit-period:seconds para establecer elperíodo de confirmación automática. En este flujo, se realizan las siguientesverificaciones:

l Solo permitir números enteros positivos

l Puede configurarse solo para los depósitos del sistema de archivos

l Puede configurarse solo cuando el valor de retención esté presente

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

Atmos

S3

Sistema de archivos habilitado 37

Page 38: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Atmos permite crear un encabezado de solicitud de subgrupo de usuarios x-emc-retention-start-delay que captura el intervalo de confirmación automática.

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

Comportamiento de las operaciones de archivos

Tabla 12 Comportamiento de las operaciones de archivos

Operación del archivo Se espera en elperíodo deconfirmaciónautomática

Se espera en el período deretención (después del períodode confirmación automática)

Cambiar permiso delarchivo

Permitido Denegado

Cambiar la propiedad delarchivo

Permitido Denegado

Escribir archivo existente Permitido Denegado

Crear archivo vacío Permitido Permitido

Crear archivo no vacío Permitido Denegado

Quitar archivo Permitido Denegado

Mover archivo Permitido Denegado

Cambiar el nombre delarchivo

Permitido Denegado

Realizar dir Permitido Permitido

Quitar directorio Denegado Denegado

Transferir directorio Denegado Denegado

Cambiar el nombre deldirectorio

Denegado Denegado

Cambiar el permiso en eldirectorio

Denegado Denegado

lista Permitido Permitido

Leer archivo Permitido Permitido

Truncar archivo Permitido Denegado

Copia de los archivoslocales de solo lectura enel recurso compartido deNFS

Permitido Permitido

Copia de los archivos desolo lectura del recursocompartido de NFS alrecurso compartido deNFS

Permitido Permitido

S3

38 ECS 3.3 Guía de acceso a datos

Page 39: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Tabla 12 Comportamiento de las operaciones de archivos (continuación)

Operación del archivo Se espera en elperíodo deconfirmaciónautomática

Se espera en el período deretención (después del períodode confirmación automática)

Cambio de atime/mtimede archivos o directorios

Permitido Denegado

Soporte de S3A

El cliente de AWS S3A es un conector para AWS S3 que le permite ejecutar trabajosde MapReduce con ECS S3.

Nota

l ECS no le permite ejecutar el cliente de S3A en depósitos con la opción FShabilitada.

l La compatibilidad de S3A está disponible en Hadoop 2.7 o versiones posteriores.

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

Los metadatos se pueden asociar con objetos mediante la API S3 de ECS. Si conoce laidentidad de un objeto, puede leer los metadatos de ese objeto. Sin la función debúsqueda de metadatos de ECS, no es posible encontrar un objeto con base en susmetadatos sin iterar en el conjunto de objetos 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 según los requisitos del usuario. Losmetadatos del usuario y del sistema se pueden indexar y servir como base para lasbúsquedas de metadatos. La cantidad de valores de metadatos que se pueden indexarse 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.

Cuando realiza 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 resultados

S3

Soporte de S3A 39

Page 40: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

de búsqueda de metadatos. En Metadatos del sistema de ECS y atributos opcionalesse enumeran los valores de metadatos del sistema que están disponibles y se puedenindexar, y los valores de metadatos que pueden devolverse de forma opcional conresultados de consulta de búsqueda.

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

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

l Uso de las consultas de búsqueda de metadatos

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 Metadatos delsistema ECS y atributos opcionales.

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

La página Manage > Bucket le permite crear depósitos y asignar valores de índicedurante el proceso de creación.

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

La API REST de administración de ECS brinda métodos para trabajar con los índicesque se enumeran en la tabla a continuación y se proporcionan enlaces de referenciapara la API.

Ruta de API Descripción

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

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

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

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

DELETE /object/bucket/{bucketname}/searchmetadata

Detiene la indexación mediante las claves de metadatos.

S3

40 ECS 3.3 Guía de acceso a datos

Page 41: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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

S3

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

Page 42: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 S3 para trabajar con los índices se enumeran en la tablaa continuación y se proporcionan enlaces de referencia para la API.

Ruta de API Descripción

GET /?searchmetadata Enumera los nombres de todos los metadatos del sistema disponibles para laindexación en depósitos nuevos.

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

Crea un depósito con la clave de metadatos de búsqueda indicada en elencabezado.

Nota

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

GET /{bucket}/?searchmetadata Obtiene la lista de claves de metadatos que se indexan en la actualidad para eldepósito.

EjemploEn el siguiente ejemplo, se muestra cómo crear un depósito con los índices demetadatos para tres claves de metadatos del sistema y dos claves de metadatos delusuario.

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 objeto con x-amz-meta-, los valores que contienen caracteresespeciales 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.

S3

42 ECS 3.3 Guía de acceso a datos

Page 43: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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, pero los nombres de metadatos nodistinguen mayúsculas de minúsculas, por lo que x-emc-meta-FOO y x-emc-meta-foo hacen referencia al mismo campo foo.

Nota

Cuando defina los campos para indexar y buscar, asegúrese de escribir todo enminúscula.

Cuando se realiza una indexación de metadatos, de modo que pueda utilizarse como labase de las búsquedas de objeto (la función de búsqueda de metadatos), se asigna untipo de datos a los datos. Al escribir metadatos en objetos, los clientes deben escribirdatos en el formato adecuado, de modo que se puedan usar correctamente en lasbúsquedas.

Los tipos de datos son los siguientes ejemplos:

String

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

Integer

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.

Datetime

Si el término del índice de búsqueda está marcado como “datetime”, la cadena demetadatos se tratará como una fecha y hora con el formato esperado: yyyy-MM-ddTHH:mm:ssZ. Si desea que la cadena se trate como “datetime”, debe utilizarel formato yyyy-MM-ddTHH:mm:ssZ cuando especifique los metadatos.

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

S3

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

Page 44: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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)

Nota

La funcionalidad de prefijo seagrega a la búsqueda de metadatos.Consulte la funcionalidad de prefijoen la búsqueda de metadatos.

<BucketQueryResult xmlns:ns2="http://s3.amazonaws.com/doc/2006-03-01/"> <Name>mybucket</Name> <Marker/> <NextMarker>NO MORE PAGES</NextMarker> <MaxKeys>0</MaxKeys> <ObjectMatches> <object> <objectName>file4</objectName> <objectId>09998027b1b7fbb21f50e13fabb481a237ba2f60f352d437c8da3c7c1c8d7589</objectId> <versionId>0</versionId> <queryMds> <type>SYSMD</type> <mdMap> <entry> <key>createtime</key> <value>1449081778025</value> </entry> <entry> <key>size</key> <value>1024</value> </entry> <entry> <key>mtime</key> <value>1449081778025</value> </entry> </mdMap> </queryMds> <queryMds> <type>USERMD</type> <mdMap> <entry> <key>x-amz-meta-INT</key> <value>407</value> </entry> <entry> <key>x-amz-meta-STR</key> <value>String4</value> </entry> </mdMap> </queryMds> <indexKey/> </object> <object ... </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…]

S3

44 ECS 3.3 Guía de acceso a datos

Page 45: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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

{selector} {operator}{argument},

Por ejemplo:

LastModified > 2018-03-01T11:22:00Z

selector

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

operator

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

"/?"

Un valor respecto al cual se prueba el selector.

attributes=[fieldname,...]

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

l ContentEncoding

l ContentType

l Retention

l Expiration

l Expires

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.

S3

Uso de las consultas de búsqueda de metadatos 45

Page 46: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 de fecha y hora

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

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

Ejemplo del encabezado de carga de metadatos del usuario:

-H x-amz-meta-Foo:2018-03-06T12:00:00Z

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

?query=CreateTime>2018-01-01T00:00:00Z and x-amz-meta-Foo==2018-03-06T12: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>2018-03-06T12:00:00Z</value>

S3

46 ECS 3.3 Guía de acceso a datos

Page 47: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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>2018-01-01T00:00:00Z and x-amz-meta-Foo==2018-03-06T12: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>2018-01-01T00:00:00Z and x-amz-meta-Foo==2018-03-06T12: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:

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ó. El siguiente sería un ejemplo de las herramientas de la línea de comandosde Unix, como S3curl.pl:

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

S3

Uso de las consultas de búsqueda de metadatos 47

Page 48: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Funcionalidad de prefijo en la búsqueda de metadatos

La búsqueda de metadatos de la API S3 es compatible con los parámetros de prefijo ydelimitador. Sigue la definición estándar de S3 de estos parámetros. La funcionalidadde prefijo transforma de manera eficaz cada consulta de metadatos en una solicitud deconsulta múltiple con la operación AND entre el prefijo y la cadena de consulta. Enotras palabras, es posible combinar los predicados AND y O en las consultas.

Los metadatos de la API S3 se modifican para admitir parámetros de prefijo ydelimitador, como se describe a continuación:

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

Limitaciones

l Siempre se aplica un prefijo antes de la consulta real.

l El orden personalizado no es compatible con los prefijos. Si el orden se especificajunto con un prefijo, la API devuelve el mensaje 400 Error de solicitud.

l Los objetos se muestran en orden lexicográfico.

l No se permite el uso de ObjectName en una cadena de consulta junto con unprefijo. Se crea una ambigüedad, ya que ambos filtran objetos en función delnombre. Si ambos se especifican, la API devuelve el mensaje 400 Error desolicitud.

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>

S3

48 ECS 3.3 Guía de acceso a datos

Page 49: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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

Page 50: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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

50 ECS 3.3 Guía de acceso a datos

Page 51: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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.

Si tiene en cuenta si los objetos creados con el cabezal de S3 serán accesiblesmediante el cabezal de Swift, y viceversa, debe pensar primero si los usuarios puedenacceder al depósito (denominado “contenedor” en Swift). A un depósito se le asignaun tipo de depósito (por ejemplo, S3 o Swift) según el cabezal de ECS que lo creó. Losusuarios de objetos deben tener los permisos apropiados para el tipo de depósito a finde que una aplicación pueda acceder a los depósitos de Swift y S3. Considere otorgarlos permisos, ya que la forma en que se determinan los permisos para los depósitos deSwift 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, puede acceder a cualquier recurso de S3 al quejohn 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. Por ejemplo, cuando un usuariode S3 crea un depósito, ese depósito es propiedad del nombre de usuario de S3. Eseusuario tiene permisos completos en el depósito; de forma similar, un usuario de Swiftcon el mismo nombre tiene 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 verificación de la membresía degrupo antes de verificar los permisos de ACL de grupo. Los contenedores de Swiftagregan el grupo admin implícitamente y cualquier usuario que sea miembro del grupoadmin (un usuario admin) puede acceder a cualquier otro contenedor del usuarioadmin. Solo los usuarios admin tienen permisos para crear y eliminar contenedores ypara mostrar la lista completa de ellos. Los permisos del usuario admin solo se aplicanal espacio de nombres al que pertenece el usuario. El acceso a los depósitos de S3depende de los permisos de usuario (ACL de usuario), no de los permisos de grupo.Para determinar el acceso a un depósito, el cabezal de S3 comprueba si el usuariotiene permisos de ACL en el depósito. Consulte el ejemplo en la siguiente ilustración.

S3

Interoperabilidad de S3 y Swift 51

Page 52: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Figura 1 Verificaciones de acceso de usuarios de S3

S3 HEAD SWIFT HEAD

S3 APPLICATION

S3 BUCKET ACCESS SWIFT BUCKET ACCESS

GROUP ACLUSER ACL

SWIFT APPLICATION

ECS OBJECT USER

S3 KEY

SWIFT PASSWORDSWIFT GROUP

Swift user accessto Swift containerS3 user access

to S3 bucket

check Swift group ACLpermissions

Swift user access to S3 bucket

S3 user access to Swift container

check S3user ACL

CROSSHEAD

Swift utiliza grupos para habilitar el acceso a los recursos, de modo que un usuario deS3 pueda acceder a un contenedor de Swift. Se debe asignar al usuario de S3 a ungrupo de Swift, ya sea al grupo admin o a un grupo que recibió las ACL de grupopersonalizado 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

52 ECS 3.3 Guía de acceso a datos

Page 53: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Nota

No es posible realizar la lectura de un objeto DLO de Swift a través de la API S3. Lasolicitud sigue una ruta de código genérica para la lectura sin confirmar la presencia dela clave de metadatos X-Object-Manifest para unir el objeto nuevamente desdesus 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 clave 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 (crear unaclave para el usuario de objetos).

l Un usuario de dominio crea una cuenta de usuario de objeto. Para ello, crea unanueva clave secreta con la API de autoservicio (crear una clave secreta de S3:autoservicio).

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, seaceptan las dos claves para las solicitudes. Esto proporciona un período de gracia en elque 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 clave secreta desde el portal de ECS

l Crear una clave secreta de S3 con la API REST de administración de ECS

Para obtener más información sobre los usuarios de ECS, consulte la Guía deadministración de ECS, que se encuentra disponible en Página de documentación deproductos de ECS.

Generación de una clave secreta desde el portal de ECSPuede generar una clave 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 53

Page 54: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 vence la primera clave.

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

Crear una clave secreta de S3 con la API REST de administración de ECSLa API REST de administración de ECS permite a un usuario de administración crearuna clave secreta para un usuario del objeto de S3.

Las API se realizan de la siguiente manera:

Ruta de API Descripción

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

API para permitir la asignación de claves secretas a usuarios de objetos y permitir laadministración de claves secretas.

El administrador de espacio de nombres puede crear claves para los usuarios en suespacio de nombres. Un administrador del sistema puede asignar claves a losusuarios en cualquier espacio de nombres.

Para cambiar una clave, se puede asignar una segunda clave y se puede especificarla hora a la que vence la primera clave.

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

Creación de una clave secreta de S3: autoservicioLa API REST de administración de ECS permite que los usuarios de dominioautenticados soliciten una clave secreta para tener acceso al almacenamiento deobjetos.

Referencia de la 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 S3 creen una nueva seña secreta que lespermita acceder a los objetos y depósitos dentro de su espacio de nombres.

Esto se conoce también como API de autoservicio.

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>

S3

54 ECS 3.3 Guía de acceso a datos

Page 55: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 usuario de dominio

l Generación de la primera clave

l Generación de una segunda clave

l Selección de claves

l Eliminación de todas las claves secretas

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

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

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]"/>

S3

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

Page 56: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

<secret_key>7hXZ9/EHTVvmFuYly/z3gHpihXtEUX/VZxdxDDBd</secret_key> <key_expiry_timestamp/> <key_timestamp>2018-03-05 17:39:13.813</key_timestamp></user_secret_key>

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>2018-03-05 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>2018-03-05 17:50:12.369</key_expiry_timestamp_1> <key_expiry_timestamp_2/> <key_timestamp_1>2018-03-05 17:39:13.813</key_timestamp_1> <key_timestamp_2>2018-03-05 17:40:12.506</key_timestamp_2> <link rel="self" href="/object/secret-keys"/></user_secret_keys>

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.

S3

56 ECS 3.3 Guía de acceso a datos

Page 57: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 al ID de usuario (UID) de ECS. El ID de clave de acceso de AWS tiene20 caracteres (para algunos clientes de S3, como el navegador de S3, es necesarioverificarlo); sin embargo, 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 APIREST o el portal de ECS) con dos claves secretas. El servicio de datos de ECSintentará usar la primera clave secreta y, si la firma calculada no coincide, intentaráutilizar la segunda. Si la segunda clave falla, se rechazará la solicitud. Cuando losusuarios agregan o cambian la clave secreta, antes de usarla, deben esperar dosminutos para que se puedan restaurar todos los nodos del servicio de datos con lanueva 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 V2El encabezado de autorización cuando se utiliza la firma V2 se ve de la siguientemanera:

Authorization: AWS <AWSAccessKeyId>:<Signature>

Por ejemplo:

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

La autenticación con firma V2 se describe en:

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

Autenticación con firma V4El 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

S3

Autenticación con firma V2 57

Page 58: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 utiliza la cadena de laregión que el cliente pasó.

La autenticación con firma V4 se describe en:

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

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

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

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

Respuesta:

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

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 S3Cuando se desarrollan aplicaciones que se comunican con el servicio de S3 de ECS,hay varios SDK que admiten la actividad de su desarrollo.

S3

58 ECS 3.3 Guía de acceso a datos

Page 59: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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.

En los siguientes temas se describe el uso del SDK de Amazon S3 y del SDK Java deECS.

l Uso del SDK Java de Amazon>l Cliente SDK Java para ECS

Nota

Si desea utilizar las extensiones de la API REST de ECS, en el SDK Java de ECSencontrará la compatibilidad con estas extensiones. Si no necesita compatibilidad conlas extensiones de ECS, o si tiene aplicaciones existentes que las utilizan, puede usarel 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 el SDK Java de ECS.

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

De forma predeterminada, el objeto del cliente AmazonS3Client se cifra para funcionardirectamente según amazon.com. En esta sección, se muestra cómo configurarAmazonS3Client para que funcione según ECS.

Para crear una instancia de un objeto de AmazonS3Client, debe pasarle credenciales.Esto se logra con la creación de un objeto de AWSCredentials y el paso de la clave deacceso de AWS (su nombre de usuario de ECS) y la clave 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 intenta comunicarse conAmazon WebServices. Para reemplazar este comportamiento y comunicarse con ECS,necesita configurar un 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");

S3

Uso del Java SDK de Amazon 59

Page 60: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 cual sedebe crear el depósito. Sin embargo, ECS no admite regiones. Por este motivo,cuando se solicita la operación CreateBucket, especificamos la región estándar, queevita que el cliente de AWS descargue el archivo de configuración de la región deAmazon desde Amazon CloudFront.

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

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

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

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

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

AmazonS3Client client = new AmazonS3Client(new 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) {

S3

60 ECS 3.3 Guía de acceso a datos

Page 61: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 es compatible con lasextensiones de API de ECS.

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

package com.emc.ecs.sample;

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

public class BucketCreate {

private ViPRS3Client s3;

public BucketCreate() {

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

}

public static void main(String[] args) throws Exception { BucketCreate instance = new BucketCreate(); instance.runSample(); } 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) { } }}

Códigos de error de ECS S3Los códigos de error que se pueden generar con el cabezal de ECS S3 se indican en lasiguiente tabla.

S3

Cliente SDK Java para ECS 61

Page 62: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Código de error Código deestadoHTTP

Código de error genérico Error de descripción

AccessDenied 403 AccessDenied Acceso denegado

BadDigest 400 BadDigest El Content-MD5 especificado nocoincidió con el recibido.

BucketAlreadyExists 409 BucketAlreadyExists El nombre del depósito solicitado noestá disponible. Todos los usuariosdel sistema comparten el espacio denombres del depósito. Seleccione unnombre distinto e inténtelo de nuevo.

BucketNotEmpty 409 BucketNotEmpty El depósito que intentó eliminar noestá vacío.

ContentMD5Empty 400 InvalidDigest El Content-MD5 especificado no eraválido.

ContentMD5Missing 400 InvalidRequest Falta el encabezado Content-MD5requerido para esta solicitud.

EntityTooSmall 400 EntityTooSmall La carga propuesta es menor que eltamaño mínimo de objeto permitido.

EntityTooLarge 400 EntityTooLarge La carga propuesta excede el tamañomáximo de objeto permitido.

IncompleteBody 400 IncompleteBody No se proporcionó la cantidad debytes especificada con el encabezadoHTTP Content-Length.

InternalError 500 InternalError Se detectó un error interno. Vuelva aintentarlo.

ServerTimeout 500 ServerTimeout Se detectó un error interno detiempo de espera agotado. Vuelva aintentarlo.

InvalidAccessKeyId 403 InvalidAccessKeyId El identificador de clave de accesoproporcionado no existe.

InvalidArgument 400 InvalidArgument Argumento no válido.

NoNamespaceForAnonymousRequest

403 AccessDenied No se pudo determinar el espacio denombres a partir de la solicitudanónima con ECS. Utilice unaBaseURL de espacio de nombres oincluya un encabezado x-emc-namespace.

InvalidBucketName 400 InvalidBucketName El depósito especificado no es válido.

InvalidDigestBadMD5 400 InvalidDigest El Content-MD5 especificado no eraválido.

InvalidDigest 403 SignatureDoesNotMatch El Content-MD5 especificado no erauno válido.

InvalidRequest 400 InvalidRequest Solicitud no válida.

S3

62 ECS 3.3 Guía de acceso a datos

Page 63: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Código de error Código deestadoHTTP

Código de error genérico Error de descripción

InvalidPart 400 InvalidPart No se pudieron encontrar una o máspartes especificadas. Es posible queno se haya cargado la parte.

InvalidPartOrders 400 InvalidPartOrders La lista de partes no estaba en ordenascendente. Se debe especificar elorden de la lista de partes pornúmero de parte.

InvalidPartSizeZero 400 InvalidPartSizeZero El tamaño de la parte de carga nopuede ser cero.

MissingEncryption 400 InvalidRequest Se inició el cifrado solicitado con lacarga de múltiples partes. En lassolicitudes de parte siguientes, sedeben incluir los parámetrosapropiados de cifrado.

NoEncryptionNeed 400 InvalidRequest En la solicitud iniciada con múltiplespartes, no se pidió el cifrado. Reenvíela solicitud sin incluir los parámetrosde cifrado.

BadMD5 400 InvalidRequest El hash MD5 calculado de la clave nocoincidió con el proporcionado.

BadEncryptKey 400 InvalidRequest Los parámetros de cifradoproporcionados no coincidieron conlos utilizados originalmente.

InvalidRange 416 InvalidRange No se puede satisfacer el rangosolicitado.

KeyTooLong 400 KeyTooLong La clave especificada es demasiadolarga.

MalformedACLError 400 MalformedACLError El XML proporcionado no tenía elformato correcto o no se validó conlos esquemas publicados de ECS.

MalformedXML 400 MalformedXML Se envió un XML con el formatoincorrecto (que no cumple con elXSD publicado) para la configuración.

MaxMessageLengthExceeded 400 MaxMessageLengthExceeded La solicitud era demasiado grande.

MetadataTooLarge 400 MetadataTooLarge Los encabezados de metadatosexceden el tamaño máximo demetadatos permitido.

S3

Códigos de error de ECS S3 63

Page 64: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Código de error Código deestadoHTTP

Código de error genérico Error de descripción

Nota

El encabezado de la solicitud PUTdebe tener un tamaño de 8 KB.Dentro del encabezado de la solicitudPUT, los metadatos definidos por elusuario deben tener un tamaño de2 KB. Los metadatos definidos por elusuario son un conjunto de pares declave-valor. El tamaño de losmetadatos definidos por el usuario semide a partir de la suma de lacantidad de bytes en cada clave yvalor más cuatro: dos puntosortográficos y un espacio paraseparar el nombre y el valor, y dosbytes para el salto de línea de retornode carro.

InvalidProject 400 InvalidProject El proyecto especificado no es válido.

InvalidVPool 400 InvalidVPool El vPool especificado (grupo dereplicación) no es válido.

InvalidNamespace 400 InvalidNamespace El espacio de nombres especificadono es válido.

MethodNotAllowed 405 MethodNotAllowed No se permite el método especificadoen este recurso.

MissingContentLength 411 MissingContentLength Se debe proporcionar elencabezado HTTP Content-Length.

MissingRequestBodyError 400 MissingRequestBodyError Se envió un documento XML vacío. Elmensaje de error es el siguiente: Elcuerpo de la solicitud está vacío.

MissingSecurityHeader 400 MissingSecurityHeader La solicitud no contiene unencabezado requerido.

IncompleteLifecycleConfig 400 IncompleteLifecycleConfig Se debe especificar al menos unaacción en una regla.

MalformedLifecycleConfig 400 MalformedLifecycleConfig El XML proporcionado no tenía elformato correcto o no se validó conlos esquemas publicados.

MalformedDateLifecycleConfig 400 MalformedDateLifecycleConfig El XML proporcionado no tenía elformato correcto o no se validó conlos esquemas publicados. Fecha odías no válidos.

NoSuchBucket 404 NoSuchBucket El depósito especificado no existe.

NoSuchBucketPolicy 404 NoSuchBucketPolicy La política de depósito no existe.

S3

64 ECS 3.3 Guía de acceso a datos

Page 65: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Código de error Código deestadoHTTP

Código de error genérico Error de descripción

NoSuchKey 404 NoSuchKey La clave especificada no existe.

NoSuchRetention 404 NoSuchRetention La retención especificada no existe.

ObjectUnderRetention 409 ObjectUnderRetention El objeto está retenido y no se puedeeliminar ni modificar.

NoSuchUpload 404 NoSuchUpload La carga de múltiples partesespecificada no existe. Es posible queel identificador de carga no seaválido.

NotImplemented 501 NotImplemented La funcionalidad solicitada no estáimplementada.

OperationAborted 409 OperationAborted Actualmente, se está realizando unaoperación condicional contradictoriaen este recurso. Vuelva a intentarlo.

PermanentRedirect 301 PermanentRedirect Se debe dirigir el depósito al queintenta acceder utilizando el terminalespecificado. Envíe todas lassolicitudes futuras a este terminal.

PreconditionFailed 412 PreconditionFailed Al menos una de las condicionesprevias especificadas no es válida.

RequestIsNotMultiPartContent 400 RequestIsNotMultiPartContent La POST del depósito debecorresponder al tipo de gabinetemultipart/form-data.

RequestTimeout 400 RequestTimeout No se leyó desde la conexión delsocket al servidor ni se escribió enella dentro del período de espera.

RequestTimeTooSkewed 403 RequestTimeTooSkewed La diferencia entre el tiempo desolicitud y el del servidor esdemasiado grande.

DateIsRequired 403 AccessDenied Se requiere una fecha o unencabezado x-amz-date válido.

SignatureDoesNotMatch 403 SignatureDoesNotMatch La firma de la solicitud calculada nocoincide con aquella proporcionada.Compruebe la clave de accesosecreto y el método de firma.

ZeroAmzExpires 403 Forbidden Valor cero especificado para x-amz-expires.

InvalidAmzExpires 400 Solicitud incorrecta Se especificó un valor no válido parax-amz-expires.

ServiceUnavailable 503 ServiceUnavailable Reduzca la frecuencia de solicitud.

S3

Códigos de error de ECS S3 65

Page 66: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Código de error Código deestadoHTTP

Código de error genérico Error de descripción

TemporaryRedirect 307 TemporaryRedirect Se están redirigiendo las solicitudesal depósito mientras se actualiza elDNS.

TooManyBuckets 400 TooManyBuckets Se intentó crear más depósitos de lospermitidos con la solicitud.

UnexpectedContent 400 UnexpectedContent La solicitud no es compatible coneste contenido.

UnresolvableGrantByEmailAddress 400 UnresolvableGrantByEmailAddress La dirección de correo electrónicoproporcionada no coincide conninguna cuenta del registro.

InvalidBucketState 409 InvalidBucketState La solicitud no es válida con el estadoactual del depósito.

SlowDown 503 SlowDown Reduzca la frecuencia de solicitud.

AccountProblem 403 AccountProblem Hay un problema con la cuentaespecificada que impide que secomplete correctamente laoperación.

CrossLocationLoggingProhibited 403 CrossLocationLoggingProhibited No se permite el registro cruzado deubicaciones. No se puede registrarinformación en los depósitos de unaubicación con los de otra.

ExpiredToken 400 ExpiredToken El token proporcionado ha expirado.

IllegalVersioningConfigurationException

400 IllegalVersioningConfigurationException

La configuración de versiónespecificada en la solicitud no esválida.

IncorrectNumberOfFilesInPostRequest

400 IncorrectNumberOfFilesInPostRequest

La POST requiere exactamente unacarga de archivo por solicitud.

InvalidAddressingHeader 500 InvalidAddressingHeader La función especificada debe ser laanónima.

InvalidLocationConstraint 400 InvalidLocationConstraint La restricción de ubicaciónespecificada no es válida.

InvalidPolicyDocument 400 InvalidPolicyDocument En el contenido del formulario, no secumple con las condicionesespecificadas en el documento depolítica.

InvalidStorageClass 400 InvalidStorageClass La clase de almacenamientoespecificada no es válido.

InvalidTargetBucketForLoggings 400 InvalidTargetBucketForLoggings El depósito de destino para el registrono existe, no es de su propiedad o notiene las autorizaciones adecuadaspara el grupo de entrega de registros.

S3

66 ECS 3.3 Guía de acceso a datos

Page 67: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Código de error Código deestadoHTTP

Código de error genérico Error de descripción

InvalidToken 400 InvalidToken El token proporcionado tiene unformato incorrecto o es de otro modono válido.

InvalidURI 400 InvalidURI No se puede analizar el URIespecificado.

MalformedPOSTRequest 400 MalformedPOSTRequest El cuerpo de la solicitud POST nocorresponde a multipart/form-data con formato correcto.

MaxPostPreDataLengthExceededError

400 MaxPostPreDataLengthExceededError

Los campos de la solicitud POST quepreceden al archivo de carga erandemasiado grandes.

NoLoggingStatusForKey 400 NoLoggingStatusForKey No existe ningún tipo de subrecursode estado de registro para una clave.

NoSuchLifecycleConfiguration 404 NoSuchLifecycleConfiguration La configuración de ciclo de vida noexiste.

NoSuchVersion 404 NoSuchVersion Permite indicar que el identificadorde versión especificado en la solicitudno coincide con una versiónexistente.

RequestTorrentOfBucketError 400 RequestTorrentOfBucketError No se permite solicitar el archivotorrent de un depósito.

UserKeyMustBeSpecified 400 UserKeyMustBeSpecified En la POST de depósito, se debeincluir el nombre de campoespecificado. Si se especifica, reviseel orden de los campos.

AmbiguousGrantByEmailAddress 400 AmbiguousGrantByEmailAddress La dirección de correo electrónicoproporcionada está asociada a másde una cuenta.

BucketAlreadyOwnedByYou 409 BucketAlreadyOwnedByYou Se realizó correctamente la solicitudanterior de creación del depósitonombrado y ya lo posee.

CredentialsNotSupported 400 CredentialsNotSupported La solicitud no es compatible con lascredenciales.

InlineDataTooLarge 400 InlineDataTooLarge Los datos en línea exceden el tamañomáximo permitido.

InvalidPayer 403 InvalidPayer Se ha deshabilitado todo el acceso aeste objeto.

TokenRefreshRequired 400 TokenRefreshRequired Se debe actualizar el tokenproporcionado.

AccessModeNotSupported 409 AccessModeNotSupported El depósito no es compatible con elacceso a archivos o no se permite elmodo de acceso solicitado.

S3

Códigos de error de ECS S3 67

Page 68: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Código de error Código deestadoHTTP

Código de error genérico Error de descripción

AccessModeInvalidTokens 409 AccessModeInvalidTokens El token para la solicitud de cambiode acceso a archivos no es válido.

NoSuchBaseUrl 400 NoSuchBaseUrl La BaseUrl especificada no existe.

NoDataStoreForVirtualPools 404 NoDataStoreForVirtualPools No se encontró ningún almacén dedatos para el grupo de replicación deldepósito.

VpoolAccessNotAllowed 400 No se puede acceder a Vpool El depósito se aloja en un grupo dereplicación al que no se puedeacceder desde S3.

InvalidCorsRequest 403 InvalidCorsRequest Solicitud de CORS no válida.

InvalidCorsRule 400 InvalidCorsRule Regla de CORS no válida.

NoSuchCORSConfiguration 404 NoSuchCORSConfiguration La configuración de CORS no existe.

InvalidAclRequest 404 NoACLFound La ACL no existe.

InsufficientStorage 507 Insufficient Storage No se puede procesar la solicitud conel servidor porque no hay suficienteespacio en el disco.

BadMaxParts 400 InvalidArgument El argumento de cantidad máxima departes debe ser un número enteroentre 0 y 2147483647.

BucketNotFound 404 NoSuchBucket El depósito especificado no existe.

NotSupported 400 Not Supported Es posible que el depósito estébloqueado.

InvalidContentLength 400 Invalid content length La longitud del contenido tiene unvalor no válido.

InvalidVersioningRequest 403 Invalid request for version control El depósito está en modo decumplimiento de normas.

InvalidLifeCycleRequest 403 Invalid request for life cycle El depósito está en modo decumplimiento de normas.

RetentionPeriodRequired 400 Invalid request for bucket withcompliance

Se necesita un período de retenciónpara el depósito.

Conflict 409 Conflict Es posible que el depósito estébloqueado.

MethodForbidden 403 Forbidden Compruebe si se ha excedido lacuota.

NotAcceptable 406 Content encoding not acceptable El objeto Content-Encoding no

coincide con el Accept-Contentsolicitado.

InvalidEncoding 400 Invalid URL enconding La codificación de URL utilizada no esválida.

S3

68 ECS 3.3 Guía de acceso a datos

Page 69: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Código de error Código deestadoHTTP

Código de error genérico Error de descripción

InvalidMetadataQuery 400 Invalid metadata query entered La consulta de metadatos ingresadano cumple con la sintaxis válida

InvalidMetadataSearchList 400 Invalid metadata search list entered Un valor KeyName de la solicitud noes una clave indexable válida, o bienel formato de la lista de solicitud esincorrecto.

MetadataSearchNotEnabled 405 Metadata search not enabled La búsqueda de metadatos no estáactivada para este depósito.

MetadataSearchBadParameter 400 Metadata search invalid parameterused in query

Valor de nombre de atributo, nombrede clave de clasificación o nombre declave de índice de búsqueda no válido

MetadataSearchInvalidArgument 400 Metadata search invalid parameterused in query

Operador o formato utilizado de valorde índice de búsqueda no válido.

MetadataSearchInvalidValueforDatatype

400 Metadata search key indexing foundinvalid input value

No se realizó la operación de objetoporque no se puede convertir unvalor de metadatos de usuario a sutipo de datos definido.

MetadataOperationNotSupported 405 Metadata search operation notsupported

No se admite la consulta demetadatos que tenga operadoreslógicos AND y OR.

MetadataSearchBadSortParameter 400 Metadata search invalid sortparameter

El parámetro de clasificación debeestar incluido en la consulta como unparámetro de búsqueda.

MetadataSearchRestriction 400 Buckets that are encrypted or withinan encrypted namespace cannothave metadata search enabled

La búsqueda de metadatos y elcifrado de espacio de nombres/depósito son mutuamenteexcluyentes.

MetadataSearchTooManyIndexKeys 400 The number of Index keys exceedsthe maximum allowed

La cantidad de claves para indexarexcede la cantidad máxima permitida,quite algunas claves e inténtelo denuevo.

InvalidOrNoCustomerProvidedEncryptionKey

400 Invalid or no customer providedencryption key

No se proporcionó una clave decifrado, o bien se brindó una que nocoincidía con la del sistema.

DareUnavailable 403 Server side encryption (D@RE) is notsupported

La licencia/JAR de D@RE no estádisponible; por lo tanto, no seadmiten solicitudes de cifrado en elservidor.

SelfCopyInvalidRequest 400 InvalidRequest La solicitud de copia es ilegal porqueintenta copiar un objeto en sí mismosin cambiar los atributos de cifrado nilos metadatos del objeto.

S3

Códigos de error de ECS S3 69

Page 70: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Código de error Código deestadoHTTP

Código de error genérico Error de descripción

OverLappingPrefixes 400 Invalid Request Se encontraron prefijossuperpuestos.

SamePrefix 400 Invalid Request Se encontraron dos reglas con elmismo prefijo.

XAmzContentSHA256Mismatch 400 XAmzContentSHA256Mismatch El Content-SHA256 especificado nocoincidió con el que recibimos.

InvalidJSON 400 InvalidJSON Las políticas deben tener un formatoJSON válido y el primer byte debe ser{.

InvalidBucketPolicy 400 InvalidBucketPolicy Política de depósito no válida.

MalformedPolicy 400 MalformedPolicy Política con formato incorrecto.

MaxIDLengthExceeded 400 InvalidArgument La longitud del identificador no debeexceder el límite permitido de 255.

CrossHeadAccessBeforeUpgrade 400 InvalidRequest No se admite el acceso entrecabezales.

InvalidDate 400 InvalidArgument La fecha no debe ser anterior a1970-01-01T00:00:00.000Z.

BadContentLengthRequest 400 RequestTimeout El valor Content-Length especificadono coincide con la longitud delcontenido del cuerpo.

S3

70 ECS 3.3 Guía de acceso a datos

Page 71: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

CAPÍTULO 2

OpenStack Swift

ECS es compatible con la API de OpenStack Swift y se puede usar con las aplicacionesque son compatibles con esa API. En las siguientes secciones, se describen losmétodos compatibles, las extensiones de ECS y el mecanismo de autenticación.

l Compatibilidad de ECS con OpenStack Swift.....................................................72l Operaciones compatibles con OpenStack Swift................................................. 72l Extensiones de Swift..........................................................................................74l Extensiones del rango de bytes de Swift............................................................ 74l Retención...........................................................................................................78l Sistema de archivos habilitado........................................................................... 79l Interoperabilidad de S3 y Swift.......................................................................... 79l Autenticación de OpenStack Swift.................................................................... 80l Autorización de contenedores............................................................................88l Códigos de error de ECS Swift.......................................................................... 89

OpenStack Swift 71

Page 72: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Compatibilidad de ECS con OpenStack SwiftECS incluye compatibilidad con la API de OpenStack Swift y puede reemplazar a Swiften un entorno de 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

Puede encontrar ejemplos que muestran el uso de la API de OpenStack Swift en 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 y no como back-endde Glance.

Para usar OpenStack con ECS, se debe configurar ECS para que pueda autenticar alos usuarios de OpenStack. Puede consultar Autenticación mediante la integración deECS Keystone v3 para obtener información sobre la configuración de la autenticación.

Operaciones compatibles con OpenStack SwiftEn las siguientes secciones, se detallan las solicitudes de la API REST de OpenStackque son compatibles y que no son compatibles con ECS.

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

Tabla 13 Llamadas compatibles de OpenStack Swift

Método Ruta Descripción

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

POST v1/{account} Crear o actualizar los metadatos de la cuenta asociando losencabezados de metadatos personalizados con la URL delnivel de la cuenta. Estos encabezados deben emplear elformato X-Account-Meta-*.

GET v1/{account}/{container} Recupera una lista de objetos almacenados en el contenedor.

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 de contenedoresasociando encabezados de metadatos personalizados con la

OpenStack Swift

72 ECS 3.3 Guía de acceso a datos

Page 73: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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

Método Ruta Descripción

URL del nivel del contenedor. Estos encabezados deben tomarel formato X-Container-Meta-*.

HEAD v1/{account}/{container} Recupera los metadatos de los contenedores. Actualmente,no incluye la cantidad de objetos ni los bytes utilizados.El usuario requiere privilegios de administrador.

GET v1/{account}/{container}/{object} Recupera los datos del objeto.

Nota

El rango GET de un objeto grande estático (SLO) nofuncionará si los segmentos se crearon antes de ECS 3.0.

PUT v1/{account}/{container}/{object} Escribe, o sobrescribe, el contenido y los metadatos de unobjeto.Se utiliza para copiar el objeto existente a otro objeto con elencabezado X-Copy-From para designar el origen.

Para un objeto grande dinámico (DLO) o un SLO, el objetopuede ser un manifiesto. Consulte la documentación de Swiftpara obtener información detallada.

DELETE v1/{account}/{container}/{object} Elimina un objeto del sistema de almacenamiento de formapermanente. Junto con el comando COPY puede usar COPY yluego DELETE para transferir efectivamente un objeto.

HEAD v1/{account}/{container}/{object} Recupera los metadatos del objeto y otros encabezados HTTPestándar.

POST v1/{account}/{container}/{object} Establece y sobrescribe los metadatos arbitrarios de objetos.Estos metadatos deben emplear el formato X-Object-Meta-*.Los encabezados X-Delete-At o X-Delete-After para losobjetos con vencimiento también pueden ser asignados poresta operación. Pero otros encabezados como el tipo decontenido no pueden ser modificados por esta operación.

Tabla 14 Funciones adicionales

Feature Notas

URL temporales ECS es compatible con el uso de URL temporales para que los usuarios puedantener acceso a los objetos sin necesidad de usar credenciales.

Puede encontrar más información en la documentación de Swift.

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

OpenStack Swift

Operaciones compatibles con OpenStack Swift 73

Page 74: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Tabla 15 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 cabo mediante PUTv1/{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 bytes almacenados(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

l Retention

l Sistema de archivos habilitado

Extensiones del rango de bytes de Swift

Se proporcionan las siguientes extensiones de ECS para realizar las operaciones en lasgamas de bytes de Swift que se detallan a continuación:

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

l Sobrescritura de la parte de un objeto

l Adición de datos a un objeto

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

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 unagama 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, 12 Mar 2018 20:04:40 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:9qxKiHt2H7upUDPF86dvGp8VdvI=Accept-Encoding: gzip, deflate, compress HTTP/1.1 200 OKDate: Mon, 12 Mar 2018 20:04:40 GMT

OpenStack Swift

74 ECS 3.3 Guía de acceso a datos

Page 75: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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

Para 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, 12 Mar 2018 20:15:16 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:xHJcAYAEQansKLaF+/4PdLBHyaM=Accept-Encoding: gzip, deflate, compress green HTTP/1.1 204 No ContentETag: 10x-amz-id-2: object1x-amz-request-id: 027f037c-29ea-4670-8670-de82d0e9f52aContent-Length: 0Date: Mon, 12 Mar 2018 20:15:16 GMT

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, 12 Mar 2018 20:16:00 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:OGVN4z8NV5vnSAilQTdpv/fcQzU=Accept-Encoding: gzip, deflate, compress HTTP/1.1 200 OKDate: Mon, 12 Mar 2018 20:16:00 GMTContent-Type: application/octet-streamLast-Modified: Mon, 12 Mar 2018 20:15:16 GMTETag: 10Content-Type: application/jsonContent-Length: 43 The quick green fox jumps over the lazy dog.

OpenStack Swift

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

Page 76: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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, 12 Mar 2018 20:51:41 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:uwPjDAgmazCP5lu77Zvbo+CiT4Q=Accept-Encoding: gzip, deflate, compress brown cat HTTP/1.1 204 No ContentETag: 25x-amz-id-2: object1x-amz-request-id: 65be45c2-0ee8-448a-a5a0-fff82573aa3bContent-Length: 0Date: Mon, 12 Mar 2018 20:51:41 GMT

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, 12 Mar 2018 20:51:55 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:/UQpdxNqZtyDkzGbK169GzhZmt4=Accept-Encoding: gzip, deflate, compress HTTP/1.1 200 OKDate: Mon, 12 Mar 2018 20:51:55 GMTContent-Type: application/octet-streamLast-Modified: Mon, 12 Mar 2018 20:51:41 GMTETag: 25Content-Type: application/jsonContent-Length: 51 The quick brown cat jumps over the lazy dog and cat.

Tenga en cuenta que, si sobrescribe partes existentes de un objeto, se agregará eltamaño y la cantidad de las partes nuevas a los de las piezas existentes quesobrescribió. Por ejemplo, si un depósito tiene una parte de 20 KB de tamaño,sobrescribirá 5 KB. Si consulta el depósito con GET /object/billing/buckets/{namespace}/{bucketName}/info, se muestra total_mpu_size = 25 KB (no20 KB) y total_mpu_parts = 2 (no 1) en el resultado.

OpenStack Swift

76 ECS 3.3 Guía de acceso a datos

Page 77: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Adición de datos a un objetoPuede usar las extensiones de ECS en el protocolo de Swift para 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, ECS permiteagregar datos al objeto sin especificar una compensación (la compensación correctase devuelve en la respuesta). Por ejemplo, para poder agregar líneas a un archivo deregistro, en Swift u otras plataformas compatibles con Swift, debe enviar el archivo deregistro completo nuevamente.

Se utiliza un encabezado de rango con el valor especial bytes=-1- para agregardatos a un objeto. De esta manera, el objeto se extiende sin conocer el tamaño delobjeto 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, 12 Mar 2018 20:46:01 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:/sqOFL65riEBSWLg6t8hL0DFW4c=Accept-Encoding: gzip, deflate, compress and cat HTTP/1.1 204 No ContentETag: 24x-amz-id-2: object1x-amz-request-id: 087ac237-6ff5-43e3-b587-0c8fe5c08732Content-Length: 0Date: Mon, 12 Mar 2018 20:46:01 GMT

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, 12 Mar 2018 20:46:56 -0000x-emc-namespace: emcContent-Type: application/octet-streamAuthorization: AWS wuser1:D8FSE8JoLl0MTQcFmd4nG1gMDTg=Accept-Encoding: gzip, deflate, compress HTTP/1.1 200 OKDate: Mon, 12 Mar 2018 20:46:56 GMTContent-Type: application/octet-streamLast-Modified: Mon, 12 Mar 2018 20:46:01 GMTETag: 24Content-Type: application/jsonContent-Length: 51 The quick green fox jumps over the lazy dog and cat.

OpenStack Swift

Adición de datos a un objeto 77

Page 78: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 variasgamas 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, 12 Mar 2018 20:51:55 -0000x-emc-namespace: emcRange: bytes==4-8,41-44Content-Type: application/octet-streamAuthorization: AWS wuser1:/UQpdxNqZtyDkzGbK169GzhZmt4=Accept-Encoding: gzip, deflate, compress HTTP/1.1 206 Partial ContentDate: Mon, 12 Mar 2018 20:51:55 GMTContent-Type: multipart/byteranges;boundary=bound04acf7f0ae3cccLast-Modified: Mon, 12 Mar 2018 20:51:41 GMTContent-Length: 230 --bound04acf7f0ae3cccContent-Type: application/octet-streamContent-Range: bytes 4-8/50quick--bound04acf7f0ae3cccContent-Type: application/octet-streamContent-Range: bytes 41-44/50lazy--bound04acf7f0ae3ccc--

Retención

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.

OpenStack Swift

78 ECS 3.3 Guía de acceso a datos

Page 79: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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

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 deSwift 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 el soporte entre cabezales con sistemas dearchivos en la Guía de Administración de ECS, que está disponible en 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.

Para obtener más información, consulte Interoperabilidad de S3 y Swift.

OpenStack Swift

Sistema de archivos habilitado 79

Page 80: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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

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

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.

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 de ECS y una contraseña de Swift.

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

La asignación de credenciales de Swift a los usuarios de objetos de ECS se describe en Creación de usuarios de Swift en el portal de ECS.

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

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 asignar nuevos usuarios de objetos encualquier espacio de nombres.

l Un administrador de espacio de nombres puede asignar nuevos usuarios de objetosen el espacio de nombres en el que son el administrador.

l El usuario de Swift debe pertenecer a un grupo Openstack. Un grupo es unconjunto de usuarios de Swift a los que un administrador de OpenStack les haasignado una función. Los usuarios de Swift que pertenecen al grupo admin

OpenStack Swift

80 ECS 3.3 Guía de acceso a datos

Page 81: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

pueden realizar todas las operaciones en depósitos Swift (contenedores) en elespacio de nombres al que pertenecen. No debe agregar usuarios de Swiftcomunes al grupo admin. Para los usuarios de Swift que pertenecen a cualquiergrupo que no sea el grupo admin, la autorización depende de los permisos que seestablecen en el depósito Swift. Puede asignar permisos en el depósito desde lainterfaz del usuario del tablero de OpenStack o en el portal de ECS mediante laACL del grupo personalizado para el depósito. Para obtener más información sobrelas ACL de grupo personalizado y agregar usuarios de objetos a ECS, consulte laGuía de administración de ECS, disponible en Página de documentación deproductos de ECS.

Procedimiento

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

2. En la página User Management, puede crear un nuevo usuario de objeto quienaccederá al almacenamiento de objetos de ECS a través del protocolo deobjetos de Swift de una de las siguiente formas:

a. Haga clic en New Object User para crear un nuevo usuario de objeto.

l En el campo Name de la página New Object User, escriba un nombrepara el usuario de objeto.

l En el campo Namespace, seleccione el espacio de nombres al quepertenecerá el usuario.

l Haga clic en Next to Add Passwords.

b. Haga clic en Edit en la columna Actions junto al usuario existente y agregueuna contraseña de Swift a él.

3. En el campo Swift Groups de la página Update Passwords for User<username>, ingrese el grupo de Swift al que pertenecerá el usuario.

Si especifica el grupo admin, los usuarios automáticamente podrán ejecutartodas las operaciones de contenedor. Si especifica un grupo diferente, esegrupo debe recibir permisos para el contenedor. Consulte Autorización en elcontenedor para obtener más información acerca de la autorización delcontenedor.

4. En el campo Swift password, escriba una contraseña para el usuario de Swift.

5. Haga clic en Set Groups & Password.

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 Creación de usuarios de Swiften el portal de ECS) o puede llamar a la siguiente API REST de ECS paragenerar una contraseña.

Solicitud:

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

OpenStack Swift

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

Page 82: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

<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, la URL y el token dealmacenamiento se muestran en el encabezado de la respuesta. Otras solicitudes sonautenticadas mediante la inclusión de este token. El almacenamiento URL proporcionael nombre del host y la dirección del recurso. Puede acceder a los contenedores y a losobjetos proporcionando 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"

OpenStack Swift

82 ECS 3.3 Guía de acceso a datos

Page 83: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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

Autenticación de la versión 2 de OpenStackECS incluye compatibilidad limitada con la autenticación de OpenStack versión 2(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 en ECS, como se describe en la sección anterior sobre laautenticación de la versión 1.

OpenStack Swift

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

Page 84: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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

OpenStack Swift

84 ECS 3.3 Guía de acceso a datos

Page 85: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 puede considerarse como el equivalente de ungrupo de usuarios o espacio de nombres de ECS. Un espacio de nombres de ECS sepuede considerar como un grupo de usuarios.

Keystone V3 permite que a los usuarios se les asignen funciones y que las accionesque están autorizados a ejecutar se basen en su membresía de funciones. Sinembargo, 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. Puede encontrar más información en Configuración de la integración de OpenStack Swift y ECS.

OpenStack Swift

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

Page 86: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 son necesarias para que ECS pueda autenticarse en elservicio de Keystone.

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

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

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

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.

OpenStack Swift

86 ECS 3.3 Guía de acceso a datos

Page 87: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 del espacio de nombresy la creación de usuarios en ECS, consulte la Guía de administración de ECS,que se encuentra disponible en Página de documentación de productos deECS.

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 en Configuración del proveedor de autenticación de Keystone.

Procedimiento

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

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

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 sobre estoscampos, consulte Configuración del proveedor de autenticación de Keystone.

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.

OpenStack Swift

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

Page 88: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Tabla 16 Configuraciones del proveedor de autenticación Keystone

Campo Descripción

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

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

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

Admin Password Contraseña del administrador Keystone especificado.

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 GROUP LIST tenganderechos de acceso de lectura a container1. Por ejemplo, para asignar permisos delectura 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.

OpenStack Swift

88 ECS 3.3 Guía de acceso a datos

Page 89: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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

Este comando permite que los usuarios que pertenecen a 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.

Códigos de error de ECS SwiftLos códigos de error que se pueden generar con el cabezal de OpenStack Swift seindican en la siguiente tabla. Todos los errores son de tipo: ObjectAccessException.

Código de error CódigodeestadoHTTP

Estado HTTP Descripción

ERROR_NAMESPACE_NOT_FOUND 400 BAD_REQUEST No se encontró el espacio denombres.

ERROR_KEYPOOL_NOT_FOUND 404 NOT_FOUND No se encontró el pool de claves.

ERROR_KEYPOOL_NOT_EMPTY 409 CONFLICT El pool de claves no está vacío.

ERROR_OBJECT_NOT_FOUND 404 NOT_FOUND No se encontró el objeto.

ERROR_VERSION_NOT_FOUND 404 NOT_FOUND No se encontró la versión.

ERROR_ACCESS_DENIED 403 FORBIDDEN null

ERROR_SERVICE_BUSY 503 SERVICE_UNAVAILABLE null

ERROR_PRECONDITION_FAILED 412 PRECONDITION_FAILED null

ERROR_INVALID_ARGUMENT 400 BAD_REQUEST Argumento no válido.

ERROR_BAD_ETAG 422 SC_UNPROCESSABLE_ENTITY ETag incorrecto.

OpenStack Swift

Códigos de error de ECS Swift 89

Page 90: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Código de error CódigodeestadoHTTP

Estado HTTP Descripción

ERROR_PROJECT_NOT_FOUND 404 NOT_FOUND SwiftException.NO_PROJECT_FOUND.

ERROR_NO_DEVICE 404 NOT_FOUND SwiftException.NO_DATA_STORE_FOUND.//add 416 - El Rango solicitado noes factible para errorMap.

ERROR_INVALID_RANGE 422 SC_REQUESTED_RANGE_NOT_SATISFIABLE

No se puede satisfacer el rangosolicitado.

ERROR_INSUFFICIENT_STORAGE 507 SC_INSUFFICIENT_STORAGE No se puede procesar la solicitudcon el servidor porque no haysuficiente espacio en el disco.

ERROR_RETENTION_INCORRECT 404 SC_NOT_FOUND La retención especificada noexiste.

ERROR_OBJECT_UNDER_RETENTION 409 SC_CONFLICT El objeto está retenido y no sepuede eliminar ni modificar.

ERROR_METHOD_NOT_ALLOWED 403 SC_FORBIDDEN Es posible que se haya excedido lacuota.

ERROR_BUCKET_NOT_FOUND 404 NOT_FOUND No se encontró el depósito.

ERROR_KEYPOOL_OPERATION_NOT_SUPPORTED

400 BAD_REQUEST No se admiten las funcionalidadesVersionEnabled yFileSystemEnabled.

ERROR_REP_GROUP_NOT_FOUND 400 BAD_REQUEST El grupo de replicaciónespecificado no es válido.

ERROR_OBJECT_METADATA_REACH_MAXIMUM

400 BAD_REQUEST Los metadatos exceden la longitudmáxima permitida.

ERROR_KEYPOOL_LOCKED 409 CONFLICT Es posible que el depósito estébloqueado.

ERROR_INVALID_PART 409 CONFLICT El ETag del segmento es distintodel incluido en el manifiesto.

ERROR_DELETE_DIRECTORY_NOT_EMPTY

409 CONFLICT El directorio no está vacío.

ERROR_API_INVALID 400 BAD_REQUEST No se admite el acceso entrecabezales.

OpenStack Swift

90 ECS 3.3 Guía de acceso a datos

Page 91: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

CAPÍTULO 3

EMC Atmos

En esta sección, se describe la compatibilidad que ofrece ECS para EMC Atmos.

l Soporte de API de EMC Atmos en ECS..............................................................92l Llamadas compatibles de la API REST de EMC Atmos....................................... 92l Llamadas no compatibles de la API REST de EMC Atmos.................................. 94l Compatibilidad de subgrupo de usuarios de la API REST de EMC Atmos........... 95l Extensiones de API............................................................................................ 95l Códigos de errores de ECS Atmos.....................................................................101

EMC Atmos 91

Page 92: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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

En la Guía del programador de Atmos, se proporciona más información sobre lasoperaciones compatibles, como las siguientes:

l Compatibilidad con formato de cable para todas las operaciones compatibles, quetambién se aplica a las operaciones de la API expuestas por ECS.

l Autenticación con la API de Atmos y ejemplos completos para muchas de lasfunciones admitidas.

La Guía del programador de Atmos está disponible en http://support.emc.com.

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 17 Llamadas compatibles de la API de REST de Atmos

Método Ruta Descripción

Operaciones de servicios

GET /rest/service Obtención de información sobre elsistema

Operaciones de objetos

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

Cree un objeto

(Consulte las notas que semuestran a continuación)

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

Elimine un objeto

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

Actualización de un objeto

(Consulte las notas que semuestran a continuación)

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

Lectura de un objeto (o lista deldirectorio)

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

Operaciones de metadatos

EMC Atmos

92 ECS 3.3 Guía de acceso a datos

Page 93: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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

Método Ruta Descripción

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

Obtención de metadatos de unusuario para un objeto

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

Obtención de metadatos de unusuario

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

Eliminación de metadatos de unusuario

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

Obtención de metadatos de unsistema para un objeto

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 etiquetas demetadatos para un objeto

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

Obtención de información de unobjeto

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

Obtención de todos los metadatosdel objeto

Operaciones de espacio-objeto

GET /rest/objects Listado de objetos

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

Acceso anónimo

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

URL compartible

Nota

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

l La carga de formularios HTML no es compatible.

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

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

EMC Atmos

Llamadas compatibles de la API REST de EMC Atmos 93

Page 94: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 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, cuando se transfieren aplicaciones deAtmos 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 18 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 un objeto

DELETE /rest/objects/<objectID>?versions Eliminación de una versión de un objeto

GET /rest/objects/<objectID>?versions Listado de versiones de un objeto

PUT /rest/objects/<objectID>?versions Restauración de una versión de unobjeto

Acceso anónimo

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

GET /rest/accesstokens/<token_id>?info Obtención de detalles del token deacceso

DELETE /rest/accesstokens/<token_id> Eliminación de un token de acceso

GET /rest/accesstokens Listado de tokens de acceso

GET /rest/accesstokens/<token_id> Descarga de contenido de formaanónima

EMC Atmos

94 ECS 3.3 Guía de acceso a datos

Page 95: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 (por ejemplo, [email protected]) y x-emc-signature.

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

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

Nota

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

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

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

Adición de datos a un objetoPuede usar las extensiones de ECS para el protocolo de EMC Atmos para 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, ECS permiteagregar automáticamente datos al objeto sin especificar una compensación (lacompensación correcta se devuelve en la respuesta).

Se utiliza un encabezado de rango con el valor especial bytes=-1- para agregardatos a un objeto. De esta manera, el objeto se puede extender sin conocer el tamañodel objeto existente. El formato es el siguiente: Range: bytes=-1-

EMC Atmos

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

Page 96: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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.

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 retendrá 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,establezca el período de retención directamente en el objeto. El objeto no hereda lapolítica de retención del espacio de nombres.

EMC Atmos

96 ECS 3.3 Guía de acceso a datos

Page 97: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Tabla 19 Períodos de retención de Atmos

Retenciónestablecida en el

Mediante Notas

Objeto API de Atmos por medio de

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

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

l Tanto encabezado como UMD:'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 el objeto durante lacreación o la actualización de la configuración delobjeto.

l El período de retención de encabezado se define ensegundos.

l La fecha de finalización define la retención de UMD.

l Si el período de retención se establece tanto medianteel encabezado como mediante los UMD, el atributo deUMD se comprueba en primer lugar y tiene prioridadsobre la configuración del encabezado.

l No se puede modificar el período de retención despuésde que se ha establecido en el objeto hasta que hayavencido el período.

l Cuando se usa el encabezado x-emc para configurar la

retención:

n Si hay uno habilitado, -1 establece un período deretención infinito y deshabilita el período devencimiento.

n -2 deshabilita el período de retención establecidoen el objeto.

Espacio de nombres deECS

Portal de ECS desde la página NewNamespace o Edit Namespace.

l Si desea establecer un período de retención para unobjeto, y se definió una política de retención en elespacio de nombres del usuario del objeto, debe definirun período de retención de todos modos directamenteen el objeto como se describió anteriormente.

l Si una política de retención se establece en el espaciode nombres de ECS o se establece un período deretención en un depósito del espacio de nombres, y secrea un objeto en el depósito, ECS conserva el espaciode nombres, el depósito y el objeto durante losperíodos de retención más largos establecidos para elespacio de nombres o el depósito.

l Si se ha establecido un período de retención en elobjeto mediante el encabezado del objeto, ECS loconserva durante el período más largo establecido enel objeto, el depósito o el espacio de nombres.

l Si se define una fecha de finalización de la retención enun objeto a través de la API de Atmos, ECS utilizará lafecha de finalización de la retención de la API deAtmos establecida en el objeto y omitirá la política deretención del espacio de nombres y los períodos deretención del depósito cuando se cree el objeto.

l Cuando se aplica una política de retención en unsubgrupo de usuarios (depósito) que contiene objetos

API REST de ECS POST /object/namespaces/namespace/{namespace}/retention

Depósito de ECS Portal de ECS desde la página NewBucket o Edit Bucket.

API REST de ECS PUT /object/bucket/{bucketName}/retention

EMC Atmos

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

Page 98: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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

Retenciónestablecida en el

Mediante Notas

de Atmos, la política de retención se aplica tanto a losobjetos creados en el subgrupo de usuarios después dela configuración de la política de retención como a losobjetos que se crearon en el subgrupo de usuariosantes de la configuración de la política de retención.

Nota

Para obtener más información sobre las políticas de retención de espacio de nombresy los períodos de retención de depósitos, consulte la Guía de administración de ECSque está disponible en 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: 1485795387838

EMC Atmos

98 ECS 3.3 Guía de acceso a datos

Page 99: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

x-emc-retention-period: 21798212x-emc-meta: user.maui.retentionEnd=2017-10-10T00:00:00Z,user.maui.retentionEnable=true,allow-inline-update=false,atime=2017-01-30T16:45:48Z,ctime=2017-01-30T16:56:27Z,ctype=plain/text,data-range=CAAQgFA=,dek=kq/W1Rg/7qbmaCcLF8pFvqlDJ8+suPTdVddBBZFwZA86muG3P0Pb7w==,dekAlgo=AESKeyWrapRFC5649,etag=0-,fs-mtime-millisec=1485795387838,itime=2017-01-30T16:45:48Z,kekId=s3.7a2593be81374744adbf8e3983e7bd843cdda755061bac6c12c06eb02800a7fee4b11ac2e03f62bb01eee02995068e56,keypoolid=s3.7a2593be81374744adbf8e3983e7bd84,keypoolname=7a2593be81374744adbf8e3983e7bd84,keyversion=0,mtime=2017-01-30T16:56:27Z,namespace=s3,nlink=1,object-name=,objectid=d1bced53f2ebbcbc51af1d84747bd198d123d3b8585293a5bf0d32bb73c6cf4b-365f4482-c24a-4eca-b24a-070efe29bf63,objname=file,parentOid=53ae036bfcfb46f5580b912222f3026835e3ef972c7e3e532ba4a5de30b1946e,parentZone=urn:storageos:VirtualDataCenterData:365f4482-c24a-4eca-b24a-070efe29bf63,policyname=default,retention=CgYIoKOZmlE=,size=0,type=regular,uid=u1,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.

EMC Atmos

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

Page 100: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 GMTx-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: 0

EMC Atmos

100 ECS 3.3 Guía de acceso a datos

Page 101: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Server ViPR/1.0 is not blacklistedServer: ViPR/1.0

Ventana de demora de inicio de retenciónAtmos le permite especificar una ventana de demora de inicio cuando crea un períodode retención, lo que le permite migrar a ECS. Además, esta función evita que losobjetos lleguen a la retención después de la carga inicial de un objeto.

Atmos crea un encabezado de solicitud de subgrupo de usuarios x-emc-retention-start-delay que captura el intervalo de asignación automática.

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

Demora de inicio de retención aplicada en el objeto mtimeEn la creación de objetos de Atmos, si se configura la demora de inicio de retención enel depósito (x-emc-retention-start-delay), la demora de inicio para el objetose calcula de acuerdo con time-since-mtime del objeto.

Nota

time-since-mtime se considera para calcular la demora de inicio, ya que no da untiempo exacto para completar una carga y x-emc-retention-start-delay puedeser más breve, incluso en pocos minutos.

Reemplazar la retención en el nivel de depósito para los objetos migrados

l Si el usuario decide migrar los datos a través de la API de Atmos a un depósito deECS en un espacio de nombres compatible con encabezados de retención de Mauiy si hay retenciones en conflicto, prevalece la retención más larga.

l En los depósitos que no cumplen con las normas, para los objetos migrados deAtmos, user.maui*headers especifica el valor de retención final en un objeto.Si no hay user.maui*headers disponibles, prevalece la retención más larga.

l En la creación de objetos en ECS mediante la API de Atmos,user.maui*headers no se puede combinar con ninguno de los encabezados x-emc-retention.

La API de Atmos es compatible con GeoDriveLa API de Atmos es compatible con GeoDrive en ECS. GeoDrive es una aplicación deWindows que permite el espejeado de los datos de Atmos en el sistema de archivos deWindows local y es igual que CIFS-ECS.

Códigos de errores de ECS AtmosLos códigos de error que se pueden generar con el cabezal de EMC Atmos se indicanen la siguiente tabla.

Código de error Mensaje de error Código de estadoHTTP

Descripción de estado HTTP

1001 Se produjo un error interno en el servidor. Vuelva aintentarlo.

500 Error interno del servidor

EMC Atmos

Códigos de errores de ECS Atmos 101

Page 102: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

1002 Uno o más argumentos de la solicitud no son válidos. 400 Solicitud incorrecta

1003 No se encontró el objeto solicitado. 404 Not Found

1004 No se puede cumplir el rango especificado. 416 El rango solicitado no esfactible

1005 No se encontraron una o más etiquetas de metadatospara el objeto solicitado.

400 Solicitud incorrecta

1006 Se anuló la operación debido a una operacióncontradictoria en proceso en el recurso.Nota: Mediante este código de error, es posible quese indique que el sistema se encuentra demasiadoocupado temporalmente para procesar la solicitud.Este es un error que se puede recuperar; puede volvera intentar la solicitud más adelante.

409 Conflict

1007 Se produjo un error interno en el servidor. Vuelva aintentarlo.

500 Error interno del servidor

1008 No se encontró el recurso solicitado en el servidor. 400 Solicitud incorrecta

1009 El método especificado en la solicitud no se permitepara el recurso identificado.

405 Method Not Allowed

1010 El tamaño del objeto solicitado excede el tamañomáximo permitido de carga/descarga.

400 Solicitud incorrecta

1011 La longitud del objeto especificado no coincide con lalongitud real del objeto adjunto.

400 Solicitud incorrecta

1012 El tamaño del objeto adjunto y el de extensiónespecificado no coinciden.

400 Solicitud incorrecta

1,013 Se produjo un error interno en el servidor. Vuelva aintentarlo.

500 Error interno del servidor

1014 Se excedió la cantidad máxima de entradas demetadatos permitida por objeto.

400 Solicitud incorrecta

1015 La solicitud no se pudo completar debido a que losprivilegios de acceso no son suficientes

401 No autorizado

1016 El recurso que intenta crear ya existe. 400 Solicitud incorrecta

1019 Se produjo un error de I/O en el servidor. Vuelva aintentarlo.

500 Error interno del servidor

1020 Falta el recurso solicitado o no se pudo encontrar. 500 Error interno del servidor

1021 El recurso solicitado no es un directorio. 400 Solicitud incorrecta

1022 El recurso solicitado es un directorio. 400 Solicitud incorrecta

1023 El directorio que intenta eliminar no está vacío. 400 Solicitud incorrecta

1,024 Se produjo un error interno en el servidor. Vuelva aintentarlo.

500 Error interno del servidor

1025 Se produjo un error interno en el servidor. Vuelva aintentarlo.

500 Error interno del servidor

1026 Se produjo un error interno en el servidor. Vuelva aintentarlo.

500 Error interno del servidor

EMC Atmos

102 ECS 3.3 Guía de acceso a datos

Page 103: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

1027 Se produjo un error interno en el servidor. Vuelva aintentarlo.

500 Error interno del servidor

1028 Se produjo un error interno en el servidor. Vuelva aintentarlo.

500 Error interno del servidor

1029 Se produjo un error interno en el servidor. Vuelva aintentarlo.

500 Error interno del servidor

1031 El registro de fecha y hora de la solicitud seencontraba fuera del período válido.

403 Prohibido

1032 La firma de la solicitud y la que se procesó con elservidor no coinciden.

403 Prohibido

1033 No se pudo recuperar la clave secreta del usuarioespecificado.

403 Prohibido

1034 No se puede leer el contenido del cuerpo HTTP. 400 Solicitud incorrecta

1037 El token especificado no es válido. 400 Solicitud incorrecta

1040 El servidor está ocupado. Please try again 500 Error interno del servidor

1041 La longitud del nombre del archivo solicitado excedela longitud máxima permitida.

400 Solicitud incorrecta

1042 No se admite la operación solicitada. 400 Solicitud incorrecta

1043 El objeto tiene la cantidad máxima de vínculos 400 Solicitud incorrecta

1044 El elemento primario especificado no existe. 400 Solicitud incorrecta

1045 El elemento primario especificado no es un directorio. 400 Solicitud incorrecta

1046 El objeto especificado no está en el espacio denombres.

400 Solicitud incorrecta

1047 El archivo de origen y el de destino son el mismo. 400 Solicitud incorrecta

1,048 El directorio de destino no está vacío y puede que nose sobrescriba

400 Solicitud incorrecta

1049 La suma de comprobación que se envió con lasolicitud no coincide con la que se procesó con elservidor

400 Solicitud incorrecta

1050 El algoritmo solicitado de suma de comprobación esdistinto del que se usó anteriormente para esteobjeto.

400 Solicitud incorrecta

1051 La verificación de la suma de comprobación solo sepuede utilizar con las solicitudes de actualizaciónanexadas

400 Solicitud incorrecta

1052 El algoritmo de suma de comprobación especificadono está implementado.

400 Solicitud incorrecta

1053 No se puede procesar la suma de comprobación de unobjeto en proceso de actualización si no se procesódurante su creación.

400 Solicitud incorrecta

1054 El parámetro de entrada de la suma de comprobaciónno se encuentra en la solicitud.

400 Solicitud incorrecta

EMC Atmos

Códigos de errores de ECS Atmos 103

Page 104: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

1056 La operación solicitada no es compatible consymlinks.

400 Solicitud incorrecta

1057 Error de condición previa If-Match. 412 Error de condición previa

1058 Error de condición previa If-None-Match. 412 Error de condición previa

1059 La clave que intenta crear ya existe. 400 Solicitud incorrecta

1060 No se encontró la clave solicitada. 404 Not Found

1061 Ya existe el pool solicitado. 400 Solicitud incorrecta

1062 No se encontró el pool solicitado. 404 Not Found

1063 Se alcanzó la cantidad máxima de pools. 400 Solicitud incorrecta

1064 No se pudo completar la solicitud porque el subgrupode inquilinos supera la cuota

403 Prohibido

1065 No se pudo completar la solicitud porque el UIDsupera la cuota

403 Prohibido

1,070 No se recibió la cantidad esperada de datos. 400 Solicitud incorrecta

1071 El cliente cerró la conexión antes de leer todos losdatos.

499 El cliente cerró la solicitud

1072 No se pudieron escribir todos los bytes en el cliente. 499 El cliente cerró la solicitud

1073 Tiempo de espera agotado para la escritura de datosen el cliente.

499 El cliente cerró la solicitud

EMC Atmos

104 ECS 3.3 Guía de acceso a datos

Page 105: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

CAPÍTULO 4

CAS

En esta sección, se describe la compatibilidad que ofrece ECS para CAS.

l Configuración del soporte de CAS en ECS....................................................... 106l Almacenamiento inactivo.................................................................................. 106l Cumplimiento de normas...................................................................................107l Retención de CAS en ECS................................................................................ 109l Retención avanzada de las aplicaciones de CAS: retención basada en eventos,

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

(CAS)............................................................................................................... 120l Códigos de errores de CAS de ECS.................................................................. 120

CAS 105

Page 106: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Configuración del soporte de CAS en ECSEn este capítulo se describe cómo modificar la configuración básica para que seacompatible con CAS.

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

El almacenamiento subyacente de ECS se debe aprovisionar para poder configurarECS. Normalmente, el aprovisionamiento se completa cuando se instala un nuevo rackde ECS. Esto incluye la configuración de un pool de almacenamiento, VDC y grupo dereplicación.

Para los pools de almacenamiento, puede considerar la configuración de un archivoinactivo. Consulte Almacenamiento inactivo.

A continuación, configure sus espacios de nombres, sus usuarios y sus depósitosmediante la documentación estándar. Consulte la Guía de administración de ECS, queestá disponible en Página de documentación de productos de ECS para conocer estospasos, como también los pasos de aprovisionamiento.

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

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.

CAS

106 ECS 3.3 Guía de acceso a datos

Page 107: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Configuración del pool de almacenamientoPara establecer un archivo inactivo desde el portal, seleccione Cold Storage cuandocree un pool de almacenamiento. Una vez creado un pool de almacenamiento, estaconfiguració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 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.

CAS

Cumplimiento de normas 107

Page 108: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 On en el nivel de objeto, depósito y espacio de nombres. El cumplimiento denormas refuerza estas funciones mediante la limitación de los cambios que se puedenrealizar en la configuración de la retención de los objetos retenidos. Las reglasincluyen:

l El cumplimiento de normas está establecido en el nivel del espacio de nombres.Esto significa que todos los depósitos en el espacio de nombres deben tener unperíodo de retención mayor que cero. En el caso de CAS, se pueden creardepósitos con valor de retención cero, siempre que la configuración EnforceRetention Information in Object esté configurada como On.

l Solo puede activar el cumplimiento de normas si crea un espacio de nombres. (Nopuede agregar el cumplimiento de normas a un espacio de nombres existente).

l No puede desactivar el cumplimiento de normas una vez que lo activa.

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.

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

Nota

Comuníquese con su representante de Soporte remoto de ECS para activar elmonitoreo de cumplimiento de normas. Los mensajes de monitoreo se encuentrandisponibles de forma obligatoria desde el nodo. No aparecen en el Portal de ECS.

CAS

108 ECS 3.3 Guía de acceso a datos

Page 109: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Retención de CAS en ECSUn objeto de CAS C-Clip puede tener un período de retención que rige la cantidad detiempo durante el cual el objeto asociado se conserva en almacenamiento de ECSantes de que una aplicació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 clases de retención de EMC Centera es equivalente a las políticas deretención de ECS. En esta documentación, se utiliza el término 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 se asocian a espacios de nombres en ECS y la aplicación deCAS las reconoce 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.

Período de retención predeterminado en objetos escritos sin retención en el nivelde objetos en espacios de nombres de cumplimiento de normasA partir de la versión 3.0 de ECS, cuando se escriban C-Clips sin retención de objetospara un depósito de CAS de ECS de un espacio de nombres de cumplimiento denormas y dicho depósito tenga un valor de retención (por ejemplo, 6 meses), seasignará a los C-Clips el período de retención predeterminado de infinito (-1). Los C-Clips no se pueden eliminar nunca debido a que su período de retención real es el máslargo de los dos: el período de retención en el nivel de depósito y la retenciónpredeterminada en el nivel de objetos.

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.

CAS

Retención de CAS en ECS 109

Page 110: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Cómo aplicar la retención CASPuede definir políticas de retención para espacios de nombres en el portal de ECS ocon la API de administración de ECS. Consulte Establecer políticas de retención deespacio de nombres.

Su aplicación externa de CAS puede asignar un período de retención fijo o una políticade retención a C-Clip durante su creación.

Al aplicar los períodos de retención mediante API, especifique el período en segundos.

Tenga en cuenta que la CAS de ECS usa el tiempo de creación de C-Clip para todoslos cálculos relacionados con la retención, y no el tiempo de migración.

Cómo crear políticas de retención con la API de administración de ECS.Puede crear períodos y políticas de retención mediante ECS; a continuación seproporciona un resumen.

Tabla 21 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 define un período deretención obligatorio que se aplica a cada objeto dentro de undepósito. Si establece un período de retención de un año, nose podrá eliminar un objeto del depósito durante un año.

GET /object/bucket/{bucketName}/retention Devuelve el período de retención que está establecidoactualmente para un depósito especificado.

POST /object/namespaces/namespace/{namespace}/retention

Para los espacios de nombres, el ajuste de retención actúacomo una política, donde cada política es un par<Name>:<Retention period>. Puede definir una serie depolíticas de retención para un espacio de nombres y puedeasignar una política, por nombre, a un objeto en el espacio denombres. Esto le permite cambiar el período de retención deun conjunto de objetos que tienen la misma política asignada alcambiar la política correspondiente.

PUT /object/namespaces/namespace/{namespace}/retention/{class}

Actualiza el período para un período de retención asociado aun espacio de nombres.

GET /object/namespaces/namespace/{namespace}/retention

Devuelve las políticas de retención definidas para un espaciode nombres.

Puede encontrar más información sobre la API de administración de ECS en la Introducción a la API REST de administración de ECS. La referencia en línea está aquí: Referencia de la API de ECS.

Retención avanzada de las aplicaciones de CAS: retenciónbasada en eventos, destinada a asuntos legales y lacontroladora mín./máx.

Describe las funciones de retención avanzada disponibles en la API de CAS que soncompatibles con ECS.

Las aplicaciones del cliente utilizan la API de CAS para permitir las estrategias deretención. Cuando se migran las cargas de trabajo de CAS a ECS, el reconocimientopor parte de ECS de las funciones de la API de CAS permiten a las aplicaciones de los

CAS

110 ECS 3.3 Guía de acceso a datos

Page 111: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

clientes seguir trabajando con los datos migrados. En ECS, las siguientes funciones deadministración de retención avanzada (ARM) están disponibles sin una licencia aparte:

l Retención basada en eventos: la capacidad de configurar un objeto a través de suC-Clip para que aplique (active) un período o política de retención cuando laaplicación de CAS reciba un evento especificado.

l Retención para asuntos legales: la capacidad de impedir la eliminación de un objetosi la aplicación de CAS le aplicó una retención de este tipo a través de su C-Clip. Laaplicación de CAS puede aplicar hasta un máximo de 100 retenciones para asuntoslegales a un objeto mediante la creación y la aplicación de ID únicos de retenciónpara asuntos legales.

l 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. Todas lasfunciones que se muestran en la siguiente pantalla son exclusivas de CAS, salvo lafunción Bucket Retention Period. Bucket Retention Period es la función deretención de depósito estándar de ECS compatible con todos los tipos de depósito deECS.

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

Enforce Retention Si esta función está activada, no se puede crear ningún objeto de CAS sin contar con la informaciónde retención (período o política). Si se intenta guardar este tipo de objeto, devolverá un error. Si

está activada, es posible no configurar Bucket Retention Period incluso en el ambientehabilitado para el cumplimiento de normas.

Nota

Cuando se migra un modo de CE+ de EMC Centera a ECS, se activa Enforce Retention de formapredeterminada en el depósito.

CAS

Retención avanzada de las aplicaciones de CAS: retención basada en eventos, destinada a asuntos legales y la controladora

mín./máx. 111

Page 112: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Característica Descripción

Bucket Retention Period Si se especifica un período de retención de depósito, entonces se implementará el período más largosi hay un período de retención en el nivel de depósito y en el nivel de objetos.

En un ambiente habilitado para el cumplimiento de normas, Bucket Retention Period esobligatorio, 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 los objetos. Si el período deretención del objeto se encuentra fuera de los límites que se especifican aquí, entonces fallarácualquier intento de escribir el objeto.Cuando se utilizan las políticas de retención, no se implementa la configuració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 queno hay ningún límite máximo.

Las restricciones de retención mín./máx. se aplican a cualquier C-Clip escrito en un depósito. Si unaherramienta de otros fabricantes basada en SDK migra un clip, la retención debe encontrarse dentrode límites; de lo contrario, se produce un error.

Maximum FixedRetention Period

Minimum VariableRetention Period

Esta característica controla los períodos de retención variables especificados en los objetos conretención basada en eventos (EBR). En la EBR, se establece un período de retención de base y lafunción de activación programada tiene la capacidad de aumentar el período de retención cuando seinicia la activación. Si el nuevo período de retención de un objeto se encuentra fuera de los límitesque 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 la configuració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 hay ningún límite máximo.

Las restricciones de retención mín./máx. se aplican a cualquier C-Clip escrito en un depósito. Si unaherramienta de otros fabricantes basada en SDK migra un clip, la retención debe encontrarse dentrode límites; de lo contrario, se produce un error.

Maximum VariableRetention Period

Nota

Si el programador o el administrador del sistema no estableció ningún valor para losperíodos de retención fijos y variables, la función get de la API de administración deECS no devolverá valores para la configuración mín./máx. La opción EnforceRetention Information in C-Clip devolverá un valor predeterminado de false.

Retención basada en eventosLa retención basada en eventos (EBR) es una instrucción que especifica que no sepuede eliminar un registro antes de un evento y durante un período especificadoposterior al evento. En CAS, la EBR es un C-Clip con una política o un período deretención de base especificado y una activación definida por una aplicación que puedeestablecer un período de retención más prolongado cuando se inicia la activación. Elperíodo de retención únicamente comienza cuando se inicia la activación. Cuando semarca un C-Clip para EBR, este no puede eliminarse antes del evento, a menos que seutilice una eliminación con privilegios.

Cuando se utiliza EBR, el ciclo de vida de C-Clip es el siguiente:

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 una

CAS

112 ECS 3.3 Guía de acceso a datos

Page 113: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

retenció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 lapolítica o el período de retención basada en eventos. En este punto, la aplicaciónpuede asignar un nuevo período de retención basada en eventos, siempre que seamayor que el asignado en el momento de la creación del C-Clip.

l Delete: Cuando la aplicación intenta eliminar el C-Clip, deben cumplirse lassiguientes condiciones:

n Venció la retención de la política (espacio de nombres)

n Venció la retención del depósito

n Venció la retención fija

n Se activó el evento

n Vencieron la EBR configurada en el momento de la creación y todos cambiosposteriores (extensiones) en el momento del evento

La siguiente figura muestra los tres escenarios posibles para un C-Clip como parte deEBR:

l C1 tiene una retención fija o mínima que ya venció antes de que se activara elevento.

l C2 tiene una retención fija o mínima que vencerá antes de que venza la EBR.

l C3 tiene una retención fija o mínima que vencerá después de que venza la EBR.

Figura 3 Escenarios de EBR

Para los espacios de nombres que no cumplan los requisitos, los comandos deeliminación con privilegios pueden reemplazar la retención fija y variable para EBR.

Cuando se aplica la retención EBR, esta debe cumplir con la configuración de lacontroladora mín./máx. para el período de retención variable.

CAS

Retención avanzada de las aplicaciones de CAS: retención basada en eventos, destinada a asuntos legales y la controladora

mín./máx. 113

Page 114: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Tabla 22 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 los requisitos para recibir un eventofuturo y permite que una clase de retención basada en eventos (EBR) se asigneal C-Clip durante el tiempo de creación de este.

FPClip_EnableEBRWithPeriod Esta función establece un C-Clip que cumple los requisitos para recibir un eventofuturo y permite que un período de retención basada en eventos (EBR) se asigneal C-Clip durante el tiempo de creación de este.

FPClip_IsEBREnabled Esta función devuelve un valor booleano que indica si un C-Clip está habilitadopara la retención basada en eventos (EBR) o no.

FPClip_GetEBRClassName Esta función recupera el nombre de la política de retención basada en eventos(EBR) asignado al C-Clip.

FPClip_GetEBREventTime Esta función devuelve la hora del evento establecida en un C-Clip cuando elevento de retención basada en eventos (EBR) se activó para ese C-Clip.

FPClip_GetEBRPeriod Esta función devuelve el valor (en segundos) del período de retención basada eneventos (EBR) asociado con un C-Clip.

FPClip_TriggerEBREvent Esta función activa el evento de un C-Clip para el cual se habilitó la retenciónbasada en eventos (EBR).

FPClip_TriggerEBREventWithClass Esta función activa el evento de un C-Clip para el cual se habilitó la retenciónbasada 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 para el cual se habilitó la retenciónbasada 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.

CAS

114 ECS 3.3 Guía de acceso a datos

Page 115: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

l Establecer la retención para asuntos legales: Una aplicación pone el C-Clip enespera. Esta aplicación puede ser diferente de la aplicación que escribió el C-Clip.

l Liberar la retención para asuntos legales: Una aplicación libera el C-Clip. Estaaplicación puede ser diferente de la aplicación que estableció la retención paraasuntos legales o escribió el C-Clip.

l Eliminar: Cuando la aplicación intenta eliminar el C-Clip, deben cubrirse lassiguientes condiciones:

n No hay ninguna otra retención para asuntos legales pendiente en el C-Clip.

n Venció la retención de la política.

n Venció la retención del depósito estándar. (La retención del depósito estándarestá disponible para todos los tipos de objeto de ECS, pero no se recomiendapara CAS).

n Venció el período de retención fijo (función exclusiva de CAS).

n Venció la retención basada en eventos (función exclusiva de CAS).

La siguiente figura muestra los tres escenarios posibles para un C-Clip sujeto aretención para asuntos legales:

l C1 tiene una retención fija que ya venció antes de que se activara la retención.

l C2 tiene una retención fija que vencerá durante la retención.

l C3 tiene una retención fija que vencerá después de la liberación de la retención.

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.

CAS

Retención avanzada de las aplicaciones de CAS: retención basada en eventos, destinada a asuntos legales y la controladora

mín./máx. 115

Page 116: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Tabla 23 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 de retención del C-Clip y devuelve losvalores verdadero o falso.

FPClip_SetRetentionHold Esta función establece o restablece una retención en un C-Clip. En el casode que tengan lugar varias retenciones para asuntos legales, proporcione unID único para este tipo de retención. Realice una llamada por ID en el casode varias retenciones 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 el portal de ECS, 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.

4. Seleccione Save.

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 un

CAS

116 ECS 3.3 Guía de acceso a datos

Page 117: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

usuario 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 el portal de ECS, seleccione Manage > Bucket.

3. Elija New Bucket.

4. Complete los campos tal como se muestra a continuación:

Campo Valor

Replication Group Your replication group

Set current user as Bucket Owner Check

CAS Encendido

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 el portal de ECS, seleccione Manage > Users.

2. Para editar la configuración de un usuario de objetos existente, elija la acciónEdit asociada con el usuario.

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

CAS

Configurar un usuario de objetos de CAS 117

Page 118: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 el portal de ECS, seleccione Manage > Bucket.

2. Para editar las ACL de un depósito existente, elija la acción Edit ACL asociadacon el depósito existente.

3. Elija Edit asociado con el usuario.

4. Modifique los permisos.

Tabla 24 ACL de depósitos

ACL de ECS Definición de ACL

READ Funcionalidades de lectura, consultas yexistencia

WRITE Funcionalidades de escritura y de retenciónpara asuntos legales

FULL_CONTROL Lectura, eliminación, consulta, existencia,copia de clip, escritura, retención paraasuntos legales

PRIVILEDGED_WRITE Eliminación con privilegios

DELETE Eliminar

Nota

Otros ACL de ECS no tienen significado para CAS.

5. Seleccione Save.

6. También puede editar las ACL a nivel de grupo. Los grupos están predefinidos yla membresía al grupo se basa automáticamente en criterios del usuario. ElijaGroup ACLs.

7. Seleccione Add.

8. Seleccione el grupo que desea editar de la lista Group Name.

CAS

118 ECS 3.3 Guía de acceso a datos

Page 119: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Tabla 25 Grupos de ACL de depósitos

Grupo de ACL de depósitos Descripción

public Todos los usuarios, autenticados o no.

all users Todos los usuarios autenticados.

other Los usuarios autenticados, pero no elpropietario del depósito.

log delivery 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 pueden utilizar paraadministrar la configuración del usuario y del perfil de CAS.

Descripciones de recursos de la API de administración de ECS:

l <ip address>?name=<name>,password=<password> : Realiza suautenticación en la API de CAS como alternativa al archivo PEA

Nota

. Necesita el nombre y la contraseña del archivo PEA.

l GET /object/user-cas/secret/{uid} : Obtiene la seña secreta de CASpara el usuario especificado.

l GET /object/user-cas/secret/{namespace}/{uid}: Obtiene la señasecreta de CAS para el espacio de nombres y el usuario especificados.

l POST /object/user-cas/secret/{uid}: Crea o actualiza la seña secreta deCAS para un usuario especificado.

l GET /object/user-cas/secret/{namespace}/{uid}/pea: Genera unarchivo PEA para el usuario especificado.

l POST /object/user-cas/secret/{uid}/deactivate: Elimina la señasecreta de CAS para un usuario especificado.

l GET /object/user-cas/bucket/{namespace}/{uid}: Obtiene el depósitopredeterminado para el espacio de nombres y el usuario especificados.

l GET /object/user-cas/bucket/{uid}: Obtiene el depósito predeterminadopara un usuario especificado.

l POST /object/user-cas/bucket/{namespace}/{uid}: Actualiza eldepósito predeterminado para el espacio de nombres y el usuario especificados.

l GET /object/user-cas/applications/{namespace}: Obtiene lasaplicaciones registradas de CAS para un espacio de nombres especificado.

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.

CAS

API de administración de ECS que admiten usuarios de CAS 119

Page 120: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Consulte Referencia de la API de ECS 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 ESC puede encontrar más información sobreel soporte de CAS para ECS.

Soporte de CAS QueryCAS Query es compatible a partir de ECS 2.2.

Nota

En ECS, las operaciones de CAS Query arrojan resultados según la hora de creacióndel C-Clip existente y la hora de la eliminación del C-Clip eliminado (reflejo). En EMCCentera, las operaciones de consulta arrojan resultados basados en la hora deescritura del objeto.

API no compatibles en las versiones de ECS anteriores a ECS 3.0Las llamadas de API del SDK de CAS no son compatibles con las versiones de ECSanteriores a ECS 3.0:

l FPClip_EnableEBRWithClass

l FPClip_EnableEBRWithPeriod

l FPClip_SetRetentionHold

l FPClip_TriggerEBREvent

l FPClip_ TriggerEBREventWithClass

l FPClip_ TriggerEBREventWithPeriod

l FPClip_GetEBRClassName

l FPClip_GetEBREventTime

l FPClip_GetEBRPeriod

l FPClip_GetRetentionHold

l FPClip_IsEBREnabled

Códigos de errores de CAS de ECSLos códigos de error que se pueden generar con el cabezal de CAS se indican en lasiguiente tabla.

Valor Nombre del error Descripción

10001 FP_INVALID_NAME El nombre utilizado no es compatible con XML.

10002 FP_UNKNOWN_OPTION Ha utilizado un nombre de opción desconocido conFPPool_SetIntOption() o FPPool_GetIntOption().

10003 FP_NOT_SEND_REQUEST_ERR Se produjo un error cuando envió una solicitud al servidor.Este error interno se generó porque el servidor no pudo

CAS

120 ECS 3.3 Guía de acceso a datos

Page 121: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

aceptar el paquete de solicitud. Verifique todas lasconexiones LAN e inténtelo de nuevo.

10004 FP_NOT_RECEIVE_REPLY_ERR No se ha recibido ninguna respuesta del servidor. Este errorinterno se generó porque el servidor no envío una respuestaal paquete de solicitud. Verifique todas las conexiones LAN einténtelo de nuevo.

10005 FP_SERVER_ERR El servidor registra un error. Se produjo un error interno enel servidor. Intente nuevamente.

10006 FP_PARAM_ERR Ha utilizado un parámetro incorrecto o desconocido.Ejemplo: ¿Es una variable de cadena nula o demasiado larga,o bien está vacía, cuando no debería ser así? ¿Un parámetrotiene un conjunto limitado de valores? Revise cadaparámetro del código.

10007 FP_PATH_NOT_FOUND_ERR Esta ruta no corresponde a un archivo o directorio delsistema cliente. La ruta de uno de sus parámetros no dirige aun archivo o directorio existente. Verifique la ruta del código.

10008 FP_CONTROLFIELD_ERR El servidor registra que se generó un error "Controlfieldmissing" con la operación. Este error interno se generóporque no se encontró el campo de control requerido.Intente nuevamente. (Obsoleto a partir de la v2.0.)

10009 FP_SEGDATA_ERR El servidor registra que se generó un error "Segdatafieldmissing" con la operación. Este error interno se generóporque no se encontró el campo requerido que contiene losdatos de BLOB en el paquete. Intente nuevamente.(Obsoleto a partir de la v2.0.)

10010 FP_DUPLICATE_FILE_ERR Ya existe una CA duplicada en el servidor. Si no activó ladetección de archivos duplicados, verifique que todavía noha guardado estos datos e inténtelo de nuevo.

10011 FP_OFFSET_FIELD_ERR El servidor informa que se generó un error "Offsetfieldmissing" con la operación. Este error interno se generóporque no se encontró el campo de compensación en elpaquete. Intente nuevamente. (Obsoleto a partir de la v2.0.)

10012 FP_OPERATION_NOT_SUPPORTED Esta operación no es compatible. Si se obtiene este errorcon FPClip_Write(), FPTag_GetSibling(),FPTag_GetPrevSibling(), FPTag_GetFirstChild() oFPTag_Delete(), entonces esta operación no es compatiblecon los C-Clips abiertos en modo sin formato. Si se obtieneeste error con FPStream, entonces está intentando realizaruna operación que no es compatible con ese flujo.

10013 FP_ACK_NOT_RCV_ERR No se recibió una confirmación de escritura. Verifique lasconexiones LAN e inténtelo de nuevo.

10014 FP_FILE_NOT_STORED_ERR No se pudo escribir el BLOB en el servidor, O BIEN no sepudo encontrar el BLOB en el servidor. Este error interno segeneró porque la operación de almacenamiento del BLOB nose realizó correctamente. Verifique que se hayanalmacenado correctamente los datos originales, compruebelas conexiones LAN e inténtelo de nuevo.

CAS

Códigos de errores de CAS de ECS 121

Page 122: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

10015 FP_NUMLOC_FIELD_ERR El servidor informa que se generó un error de "Numlockfieldmissing" con la operación. Este error interno se generóporque no se encontró el campo de Bloq Num en el paquete.Intente nuevamente. (Obsoleto a partir de la v2.0.)

10016 FP_SECTION_NOT_FOUND_ERR No se pudo recuperar la etiqueta de sección definida con lasolicitud GetSection. Este error interno se generó porquefalta una sección requerida en el CDF. Verifique el contenidodel código e inténtelo de nuevo. (Obsoleto a partir de lav2.0.)

10017 FP_TAG_NOT_FOUND_ERR No se pudo encontrar en el CDF la etiqueta a la que se hizoreferencia. Este error interno se generó porque faltainformación en la sección de descripción del CDF. Verifiqueel contenido del código e inténtelo de nuevo.

10018 FP_ATTR_NOT_FOUND_ERR No se pudo encontrar un atributo con ese nombre. Si seobtuvo este error con FPTag_GetXXXAttribute(), entoncesno se encontró el atributo en la etiqueta. Si se obtuvo esteerror con FPTag_GetIndexAttribute(), entonces elparámetro de índice es superior a la cantidad de atributos dela etiqueta.

10019 FP_WRONG_REFERENCE_ERR La referencia utilizada no es válida. No se abrió la referencia,ya se cerró o no es del tipo correcto.

10020 FP_NO_POOL_ERR No fue posible establecer una conexión con un clúster. No sepudo ubicar el servidor. Esto significa que no se pudo utilizarninguna de las direcciones IP para abrir una conexión alservidor o que no se pudo encontrar ningún clúster quetenga funcionalidad exigida. Verifique las conexiones LAN, laconfiguración del servidor e inténtelo de nuevo.

10021 FP_CLIP_NOT_FOUND_ERR No se pudo encontrar en el clúster el C-Clip al que se hizoreferencia. Se obtuvo con FPClip_Open() y significa que nose pudo encontrar el CDF en el servidor. Verifique que sehayan almacenado correctamente los datos originales einténtelo de nuevo.

10022 FP_TAGTREE_ERR Existe un error en el árbol de etiquetas. Verifique elcontenido del código e inténtelo de nuevo.

10023 FP_ISNOT_DIRECTORY_ERR Se proporcionó una ruta de acceso a un archivo, pero seespera una ruta de acceso a un directorio. Verifique la rutade acceso a los datos e inténtelo de nuevo.

10024 FP_UNEXPECTEDTAG_ERR Se esperaba una etiqueta "File" o "Folder", pero no seproporcionó ninguna. Se encontró una etiqueta inesperada alrecuperar el CDF. El CDF probablemente está dañado.

10025 FP_TAG_READONLY_ERR No se puede cambiar ni eliminar la etiqueta (probablemente,corresponda a una etiqueta principal). Verifique la lógica delprograma.

10026 FP_OUT_OF_BOUNDS_ERR Se excedió el límite del parámetro de opciones. Uno de losparámetros de función excede sus límites preestablecidos.Verifique cada parámetro del código.

10027 FP_FILESYS_ERR Se produjo un error en el sistema de archivos; por ejemplo,se proporcionó una ruta incorrecta, o bien está intentando

CAS

122 ECS 3.3 Guía de acceso a datos

Page 123: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

abrir un archivo desconocido o uno en el modo incorrecto.Verifique la ruta e inténtelo de nuevo.

10029 FP_STACK_DEPTH_ERR Excedió el límite de la etiqueta anidada. Revise la estructurade la descripción de su contenido e inténtelo de nuevo.Obsoleto.

10030 FP_TAG_HAS_NO_DATA_ERR Está intentando acceder a los datos de BLOB de unaetiqueta que no contiene dichos datos.

10031 FP_VERSION_ERR Se ha creado el C-Clip con una versión más reciente delsoftware cliente que la que está utilizando. Actualícelo a laversión más reciente.

10032 FP_MULTI_BLOB_ERR La etiqueta ya tiene datos asociados a ella. Debe crear unanueva etiqueta para almacenar los datos nuevos o eliminaresta etiqueta, volver a crearla e intentarlo de nuevo.

10033 FP_PROTOCOL_ERR Ha utilizado una opción de protocolo desconocido (solo seadmite HPP). Verifique los parámetro del código. Tambiénes posible que se haya producido un error de comunicacióninterno entre el servidor y el cliente. Si verificó el código y elproblema persiste, deberá actualizarlo a las versiones decliente y servidor más recientes.

10034 FP_NO_SOCKET_AVAIL_ERR No hay ningún socket de red nuevo disponible para latransacción. Disminuya la cantidad de transacciones abiertasentre el cliente y el servidor o utilice la funciónFPPool_SetGlobalOption() para aumentar la cantidad desockets disponibles con FP_OPTION_MAXCONNECTIONS.

10035 FP_BLOBIDFIELD_ERR Se esperaba un campo BlobID (la Content Address), pero nose proporcionó ninguno. Actualice el cliente y el servidor alas versiones más recientes. (Obsoleto a partir de la v2.0.)

10036 FP_BLOBIDMISMATCH_ERR El BLOB está dañado: se produjo un error de coincidencia deBlobID entre el cliente y el servidor. Se obtuvieronresultados distintos para el cálculo de Content Address delcliente y el servidor. El BLOB está dañado. Si obtiene esteerror con FPClip_Open(), significa que los datos de BLOB olos metadatos del C-Clip están dañados y no se puedendecodificar.

10037 FP_PROBEPACKET_ERR No hay direcciones válidas de servidor en el paquete desondeo. Actualice el cliente y el servidor a las versiones másrecientes. (Obsoleto a partir de la v2.0.)

10038 FP_CLIPCLOSED_ERR (Solo para Java). Intentó realizar una operación en un C-Clipcerrado. Se debe acceder a un C-Clip abierto para realizaresta operación. Verifique el código e inténtelo de nuevo.

10039 FP_POOLCLOSED_ERR (Solo para Java). Intentó realizar una operación en un poolcerrado. Se debe acceder a un pool abierto para realizar estaoperación. Verifique el código y las conexiones LAN einténtelo de nuevo.

10040 FP_BLOBBUSY_ERR El BLOB del clúster está ocupado y no se puede leer suinformación ni escribirla en él. Intentó leer la información deun BLOB, o bien escribirla en él, que está ocupado con otraoperación de escritura/lectura. Intente nuevamente.

CAS

Códigos de errores de CAS de ECS 123

Page 124: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

10041 FP_SERVER_NOTREADY_ERR El servidor todavía no está listo. Este error puede producirsecuando un cliente intenta conectarse al servidor paraejecutar una operación y se están ejecutando los nodos conla función de acceso, pero todavía no se inician aquellos quetienen la función de almacenamiento. Este error tambiénpuede producirse cuando no se encuentran suficientesgrupos de espejeado en el servidor. Permita que se realice,con el SDK, la cantidad automática de reintentosconfigurados.

10042 FP_SERVER_NO_CAPACITY_ERR El servidor no tiene capacidad para almacenar datos.Agrande la capacidad del servidor e inténtelo de nuevo.

10043 FP_DUPLICATE_ID_ERR La aplicación envió un identificador de secuencia utilizadoanteriormente.

10044 FP_STREAM_VALIDATION_ERR Se produjo un error de validación de flujo genérico.

10045 FP_STREAM_BYTECOUNT_MISMATCH_ERR

Se detectó un error de coincidencia de conteo de bytes deflujo genérico.

10101 FP_SOCKET_ERR Se produjo un error en el socket de red. Verifique la red.

10102 FP_PACKETDATA_ERR El paquete de datos incluye datos equivocados. Verifique lared, la versión del servidor o inténtelo de nuevo más tarde.

10103 FP_ACCESSNODE_ERR No se puede encontrar ningún nodo con la función deacceso. Verifique las direcciones IP proporcionadas conFPPool_Open().

10151 FP_OPCODE_FIELD_ERR Falta el campo Query Opcode en el paquete.

10152 FP_PACKET_FIELD_MISSING_ERR Falta el campo de paquete.

10153 FP_AUTHENTICATION_FAILED_ERR No se pudo realizar la autenticación para obtener acceso alservidor. Revise el nombre del perfil y la seña secreta.

10154 FP_UNKNOWN_AUTH_SCHEME_ERR Se ha utilizado un esquema de autenticación desconocido.

10155 FP_UNKNOWN_AUTH_PROTOCOL_ERR Se ha utilizado un protocolo de autenticación desconocido.

10156 FP_TRANSACTION_FAILED_ERR No se pudo realizar la transacción en el servidor.

10157 FP_PROFILECLIPID_NOTFOUND_ERR No se encontró ningún clip de perfil.

10158 FP_ADVANCED_RETENTION_DISABLED_ERR

La función Advanced Retention Management no estáautorizada ni activada para la retención basada en eventos(EBR) ni para la suspensión de la retención.

10159 FP_NON_EBR_CLIP_ERR Se ha intentado desencadenar un EBRevent en un C-Clipque no es apto para recibir un evento.

10160 FP_EBR_OVERRIDE_ERR Se intentó desencadenar o activar el período de retenciónbasada en eventos o la clase de un C-Clip por segunda vez.Puede establecer la información de EBR solo una vez.

10161 FP_NO_EBR_EVENT_ERR El C-Clip se encuentra bajo protección de retención basadaen eventos y no se puede eliminar.

10162 FP_RETENTION_OUT_OF_BOUNDS_ERR El período de retención basada en eventos que se estáestableciendo no cumple la regla de mínimo/máximo.

10163 FP_RETENTION_HOLD_COUNT_ERR La cantidad de suspensiones de retención excede el límite de100.

CAS

124 ECS 3.3 Guía de acceso a datos

Page 125: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

10164 FP_METADATA_MISMATCH_ERR No se encontró un error de coincidencia de metadatosmodificables.

10201 FP_OPERATION_REQUIRES_MARK La aplicación debe ser compatible con el marcador, peroesto no se proporciona con el flujo.

10202 FP_QUERYCLOSED_ERR La FP Query de este objeto ya está cerrada. (Solo paraJava).

10203 FP_WRONG_STREAM_ERR La función espera un flujo de entrada y obtiene uno de salidao viceversa.

10204 FP_OPERATION_NOT_ALLOWED El uso de esta operación está restringido, o bien no sepermite esta operación porque la funcionalidad del servidores falsa.

10205 FP_SDK_INTERNAL_ERR Se detectó un error de programación interno de SDK.

10206 FP_OUT_OF_MEMORY_ERR Se agotó la memoria del sistema. Compruebe la capacidaddel sistema.

10207 FP_OBJECTINUSE_ERR No se puede cerrar el objeto porque se está utilizando.Revise el código.

10208 FP_NOTYET_OPEN_ERR El objeto aún no se ha abierto. Revise el código.

10209 FP_STREAM_ERR Se ha producido un error en el flujo genérico. Revise elcódigo.

10210 FP_TAG_CLOSED_ERR La FP Tag de este objeto ya está cerrada. (Solo para Java).

10211 FP_THREAD_ERR Se ha producido un error al crear un subproceso en segundoplano.

10212 FP_PROBE_TIME_EXPIRED_ERR Se alcanzó el tiempo límite de sondeo.

10213 FP_PROFILECLIPID_WRITE_ERR Se produjo un error mientras se almacenaba el identificadorde clip de perfil.

10214 FP_INVALID_XML_ERR La cadena especificada no tiene un formato XML válido.

10215 FP_UNABLE_TO_GET_LAST_ERROR No se pudo realizar la llamada a FPPool_GetLastError() oFPPool_GetLastErrorInfo(). Se desconoce el estado deerror de la llamada a la función anterior; es posible que lallamada anterior se haya realizado correctamente.

10216 FP_LOGGING_CALLBACK_ERR Se ha producido un error en la devolución de llamada deregistro de FP definida por la aplicación.

CAS

Códigos de errores de CAS de ECS 125

Page 126: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

CAS

126 ECS 3.3 Guía de acceso a datos

Page 127: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

CAPÍTULO 5

API de REST de administración de ECS

En esta sección, se describe cómo obtener acceso y autenticarse en la API REST deadministración de ECS y se proporciona un resumen de las rutas de API.

l Introducción a la API REST de administración de ECS...................................... 128l Realizar la autenticación con la API REST de administración de ECS................128

API de REST de administración de ECS 127

Page 128: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Introducción a la API REST de administración de ECSPuede configurar y administrar el almacén de objetos mediante la API 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 REST de administración de ECS, consulteestos temas:

l Realizar la autenticación con la API REST de administración de ECS

l API REST para el resumen del control de objetos

Además, puede consultar la Guía de referencia de la API REST de ECS que se generaautomáticamente del código fuente y proporciona una referencia para los métodosdisponibles en la API.

Realizar la autenticación con la API REST 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 Si el cliente sigue automáticamente las redirecciones, la API de ECS devuelve uncódigo HTTP 401. A continuación, debe iniciar sesión y autenticarse para obtenerun nuevo token.

l Si el cliente no sigue automáticamente las redirecciones, la API de ECS devuelveun código HTTP 302. El código 302 dirige al cliente adonde puede autenticarse denuevo.

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 ECSmediante la ejecución de 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 utilizacookies. 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 el

API de REST de administración de ECS

128 ECS 3.3 Guía de acceso a datos

Page 129: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

usuario 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> </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.

API de REST de administración de ECS

Autenticación sin cookies 129

Page 130: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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

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.

API de REST de administración de ECS

130 ECS 3.3 Guía de acceso a datos

Page 131: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 ECSLa API REST de administración de ECS permite configurar y administrar el área dealmacenamiento de objetos de ECS.

En la siguiente tabla, se resume la API REST de administración de ECS:

Tabla 26 API REST de administración de ECS: resumen de métodos

Área de la API Descripción

Configuración

Certificate /object-certAPI para administrar los certificados.

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

Configuration Properties /config/object/propertiesLa API para establecer el alcance del usuario como GLOBAL o NAMESPACE. Esto debe

establecerse antes de que se cree el primer usuario. El valor predeterminado es GLOBAL.

API de REST de administración de ECS

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

Page 132: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Tabla 26 API REST de administración de ECS: resumen de métodos (continuación)

Área de la API Descripción

En el alcance GLOBAL, los usuarios son globales y pueden compartirse entre espacios de

nombres. En este caso, el espacio de nombres predeterminado asociado a un usuariodetermina el espacio de nombres para las operaciones de objetos, y no hay necesidad desuministrar un espacio de nombres para una operación. En el alcance NAMESPACE, el usuario

está asociado a un espacio de nombres. En este caso, podría haber más de un usuario con elmismo nombre, cada uno asociado con un espacio de nombres diferente, y se debeproporcionar un espacio de nombres para cada operación.

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

Feature /feature/ServerSideEncryptionLa API para recuperar los detalles de la función ServerSideEncryption.

Syslog /vdc/syslog/configAPI para administrar la configuración de syslog y enviar alertas al servidor de syslog para finesde solución de problemas y depuración.

SNMP /vdc/snmp/configAPI para administrar la configuración de SNMP y enviar alertas al servidor de SNMP para finesde solución de problemas y depuración.

CAS

CAS user profile /object/user-cas/secretLa API para asignar claves secretas a los usuarios de CAS y generar el archivo Pool EntryAuthorization (PEA).

/object/user-cas/bucketLa API para recuperar o actualizar el depósito predeterminado de un usuario especificado deCAS.

/object/user-cas/applications/{namespace}La API para recuperar las aplicaciones registradas de CAS para un espacio de nombresespecificado.

/object/user-cas/metadata/{namespace}/{uid}La API para recuperar o actualizar los metadatos del usuario de CAS para el espacio denombres y el usuario de CAS especificados.

Acceso al sistema de archivos

NFS /object/nfsAPI para crear una exportación de NFS en función de un depósito de ECS y para permitir quelos usuarios y los grupos de UNIX accedan a la exportación.

/object/nfs/usersLa API para administrar la asignación entre el usuario/grupo de ECS y el identificador deusuario UNIX correspondiente.

/object/nfs/exports

API de REST de administración de ECS

132 ECS 3.3 Guía de acceso a datos

Page 133: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Tabla 26 API REST de administración de ECS: resumen de métodos (continuación)

Área de la API Descripción

La API para crear y administrar las exportaciones de NFS.

Medición

Billing /object/billingLa API para medir el uso del área de almacenamiento de objetos a nivel de espacio de nombresy depósito.

Migración

Transformation /object/transformationLa API para permitir la transformación de datos desde un clúster de EMC Centera.

Monitoreo

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

Dashboard /dashboard/zones/localzoneLa API para recuperar los detalles del VDC local, incluida la información de los grupos dereplicación, los pools de almacenamiento, los nodos y los discos.

/dashboard/zones/hostedzoneLa API para recuperar los detalles del VDC alojado, incluida la información de los grupos dereplicación.

/dashboard/replicationgroups/{id}La API para recuperar los detalles de la instancia del grupo de replicación.

/dashboard/storagepools/{id}La API para recuperar los detalles del pool de almacenamiento, incluida la información de losnodos del pool de almacenamiento.

/dashboard/nodes/{id}La API para recuperar los detalles de la instancia del nodo, incluida la información del procesoy el disco de instancia del nodo.

/dashboard/disks/{id}La API para recuperar los detalles de la instancia del disco.

/dashboard/processes/{id}La API para recuperar los detalles de la instancia del proceso.

/dashboard/rglinks/{id}La API para recuperar los detalles de la instancia del vínculo de grupo de replicación.

/dashboard/datatables/{id}La API para recuperar los detalles de la instancia de las tablas de datos del grupo dereplicación.

Events /vdc/eventsLa API para recuperar los eventos de auditoría de un espacio de nombres especificado.

API de REST de administración de ECS

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

Page 134: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Tabla 26 API REST de administración de ECS: resumen de métodos (continuación)

Área de la API Descripción

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

Multiusuario

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

Esta API también permite establecer el período de retención y la cuota del espacio denombres. Para obtener más información sobre los períodos de retención y las cuotas, consultela Guía de administración de ECS, que está disponible en Página de documentación deproductos de ECS.

Georeplicación

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

Temporary Failed Zone /tempfailedzone/API para recuperar todas las zonas de falla temporales o las zonas de falla temporales de ungrupo de replicación específico.

Aprovisionamiento

Base URL /object/baseurlAPI para crear una dirección URL base que permite que las aplicaciones existentes trabajencon el almacén de objetos de ECS. Para obtener más información sobre la URL de base,consulte la Guía de administración de ECS, que se encuentra disponible en Página dedocumentación de productos de ECS.

Bucket /object/bucketAPI para aprovisionar y administrar depósitos.

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

/object/bucket/{bucketName}/tagsLa API para agregar etiquetas a un depósito especificado.

/object/bucket/{bucketName}/retentionLa API para establecer el período de retención de un depósito especificado.

/object/bucket/{bucketName}/quotaLa API para establecer la cuota de un depósito especificado.

/object/bucket/{bucketName}/policyLa API para agregar una política de un depósito especificado.

/object/bucket/{bucketName}/metadataLa API para agregar metadatos de un depósito especificado.

Data store /vdc/data-stores

API de REST de administración de ECS

134 ECS 3.3 Guía de acceso a datos

Page 135: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Tabla 26 API REST de administración de ECS: resumen de métodos (continuación)

Área de la API Descripción

API para crear áreas de almacenamiento de datos en sistemas de archivos (/vdc/data-stores/filesystems) o en nodos genéricos (/vdc/data-stores/commodity).

Node /vdc/nodesAPI para recuperar los nodos que están actualmente configurados para el clúster.

/vdc/nodes/{nodename}/lockdownLa API para establecer el estado de bloqueo o desbloqueo de un nodo especificado.

/vdc/lockdownLa API para recuperar el estado de bloqueo o desbloqueo de un VDC.

Storage pool /vdc/data-services/varraysAPI para crear y administrar pools de almacenamiento.

Virtual data center /object/vdcsAPI para agregar un VDC y especificar la clave secreta y los terminales entre VDC para lareplicación de datos entre los sitios de ECS.

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

Soporte

Call Home /vdc/callhome/La API para administrar la configuración de ESRS y enviar alertas a ConnectEMC para fines desolución de problemas y depuración.

Administración de usuarios

Authentication provider /vdc/admin/authnprovidersAPI para agregar y administrar los proveedores de autenticación.

Password group (Swift) /object/user-passwordAPI para generar una contraseña a fin de utilizarla para la autenticación de OpenStack Swift.

Secret key /object/user-secret-keysAPI para asignar claves secretas a usuarios de objetos y para administrar las claves secretas.

Secret key self-service /object/secret-keysAPI que permite a los usuarios de S3 crear una nueva clave secreta que les permitirá acceder alos objetos y depósitos en el espacio de nombres en el área de almacenamiento de objetos.

User (Object) /object/usersAPI para crear y administrar usuarios de objetos. Los usuarios de objetos siempre estánasociados con un espacio de nombres. La API devuelve una seña secreta que se puede utilizarpara el acceso S3. Un usuario 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.

API de REST de administración de ECS

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

Page 136: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Tabla 26 API REST de administración de ECS: resumen de métodos (continuación)

Área de la API Descripción

/object/users/{userName}/tags.

API para asociar etiquetas con un ID de usuario. Las etiquetas se ofrecen como pares denombre-valor.

User (management) /vdc/usersAPI para crear y administrar usuarios. Pueden asignarse usuarios de administración a lafunción de administrador del sistema o a la función de administrador de espacio de nombres.Puede usar esta API para cambiar la contraseña de usuario de administración local.

API de REST de administración de ECS

136 ECS 3.3 Guía de acceso a datos

Page 137: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

CAPÍTULO 6

HDFS de ECS

En esta sección, se describe la compatibilidad que ofrece ECS para HDFS.

l Introducción a ECS HDFS.................................................................................138l Configuración de Hadoop para usar ECS HDFS ............................................... 139l Modos de autenticación de Hadoop.................................................................. 140l Migración de un clúster simple a uno de Hadoop de Kerberos...........................143l Interacción del sistema de archivos.................................................................. 144l Aplicaciones de Hadoop compatibles................................................................ 145l Integración de un clúster de Hadoop simple con ECS HDFS............................. 145l Integración de un clúster de Hadoop con ECS HDFS ....................................... 159

HDFS de ECS 137

Page 138: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Introducción a ECS HDFSHDFS de ECS es un sistema de archivos compatible con Hadoop (HCFS) que lepermite ejecutar aplicaciones 2.x de Hadoop con la infraestructura de almacenamientode ECS como 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. En la siguiente imagen,se ilustra cómo HDFS de ECS se integra con un clúster de Hadoop existente.

Figura 5 Integración de HDFS de ECS 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 entorno de Hadoop configurado para utilizar HDFS de ECS, cada uno de losnodos de ECS funciona como un DataNode y NameNode de Hadoop tradicional, lo quesignifica que todos los nodos de ECS pueden aceptar solicitudes de HDFS yproporcionarles servicio.

Cuando configura el cliente de Hadoop para utilizar HDFS de ECS, en lugar de HDFStradicional, la configuración indica que HDFS de ECS haga toda la actividad de HDFS.En cada nodo cliente de HDFS de ECS, cualquier componente tradicional de Hadooputilizaría la biblioteca de clientes de ECS (el archivo JAR ViPRFS) para ejecutar laactividad de HDFS.

HDFS de ECS

138 ECS 3.3 Guía de acceso a datos

Page 139: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Para integrar HDFS de ECS en un entorno de Hadoop existente, debe tener lassiguientes condiciones:

l Un clúster de Hadoop ya instalado y configurado. Las siguientes distribuciones soncompatibles:

n Hortonworks HDP 2.6.2

l Un clúster de Hadoop instalado y configurado para ser compatible con HDFS deECS, que necesita los siguientes requisitos:

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 HDFS de ECS: Este conjunto de propiedades define las clasesde implementación de HDFS de ECS que están contenidas en la biblioteca ECSHDFS 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 de ECS para un sistema de archivosespecífico de ECS.

l Propiedades principales de alcance y servicio de Kerberos: Se requieren estaspropiedades solo en un ambiente Hadoop donde está presente Kerberos. Estaspropiedades asignan a los usuarios de Hadoop y de HDFS de ECS.

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 de Ambari se conservan en todo elclúster.

HDFS de ECS

Configuración de Hadoop para usar ECS HDFS 139

Page 140: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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.

HDFS de ECS se integra con clústeres de Hadoop configurados para utilizar los modosde autenticació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.

HDFS de ECS

140 ECS 3.3 Guía de acceso a datos

Page 141: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 personalizadodel depósito y grupo predeterminado. El propietario del depósito debe ser un usuariode objetos de ECS. Otros usuarios no necesitan ser usuarios de objeto de ECS ypueden 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 2018-03-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 2018-03-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.

HDFS de ECS

ACL de grupo personalizado y grupo predeterminado del depósito 141

Page 142: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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

HDFS de ECS

142 ECS 3.3 Guía de acceso a datos

Page 143: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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.

HDFS de ECS

Usuario de equivalencia 143

Page 144: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 paraobtener 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 en Hadoopcon kinit sean reconocidos como usuarios acreditados de ECS.

En un clúster de 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 HDFS de ECS, quizás note las siguientesdiferencias en comparación con la interacción con el sistema de archivos estándar deHDFS:

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 incorporada requieren cambios para utilizar HDFS deECS.

l HDFS de ECS no es compatible con las sumas de comprobación de los datos.

HDFS de ECS

144 ECS 3.3 Guía de acceso a datos

Page 145: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

l Cuando utilice la función listCorruptFileBlocks, todos los bloques se informancomo OK porque HDFS de ECS no tiene noción de los bloques dañados.

l El factor de replicación siempre se informa como una constante N, donde N = 1.Los datos están protegidos por SLA de ECS, no por la replicación de Hadoop.

Aplicaciones de Hadoop compatiblesHDFS de ECS 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

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 HDFS de ECS.

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

2. Creación de un depósito para HDFS mediante el portal de ECS

3. Planificación de la integración de HDFS de ECS y Hadoop

4. Obtención del paquete de instalación y soporte de HDFS de ECS

5. Implementación de ECS HDFS Client Library (no es necesario si utilizóAmbari Hortoworks para ECS)

6. Configuración de las propiedades del cliente de ECS

7. Verificación del acceso de Hadoop a ECS

8. Reubicación del sistema de archivos predeterminado de HDFS a un depósito deECS

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.

HDFS de ECS

Aplicaciones de Hadoop compatibles 145

Page 146: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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.5.2.0/ambari.repo -O /etc/yum.repos.d/ambari.repo

2. Instale el servidor de Ambari.

yum install -y ambari-server

3. Configure el servidor de Ambari.

ambari-server setup -s

4. Inicie el servidor de Ambari.

ambari-server start

5. Vaya a http://ambari.example.com:8080/6. En la página Select Stack, seleccione la versión de Hadoop, HDP 2.6.2, y

seleccione la versión del SO.

7. Seleccione los servicios de Hadoop que desea habilitar.

8. Complete el asistente de instalación.

Creación de un depósito para HDFS mediante el portal de ECSUtilice el portal de ECS para crear un depósito configurado para su uso con HDFS.

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

HDFS de ECS

146 ECS 3.3 Guía de acceso a datos

Page 147: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 acerca de los usuarios y los permisos, consulte Accesoal depósito como un sistema de archivos y Ejemplo de los permisos de depósitos deHadoop y ECS.

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 seotorgan asignando usuarios a un grupo y haciendo que este sea un grupo desuperusuarios.

6. No active el CAS.

Nota

Un depósito que está diseñado para usarse como HDFS no se puede utilizar paraCAS. El campo CAS está desactivado cuando File System está activado.

7. Active cualquier otra función del depósito que necesite.

Puede activar las siguientes funciones en un depósito HDFS:

HDFS de ECS

Creación de un depósito para HDFS mediante el portal de ECS 147

Page 148: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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

Para obtener información sobre cada uno de estos ajustes y cómo configurarlos,consulte la Guía de administración de ECS, que está disponible en Página dedocumentación de productos de ECS.

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, haga clic en On.

Una vez que se activa esta función, los campos para configurar un grupopredeterminado del sistema de archivos/depósito y para asignar permisos degrupo a los archivos y los directorios creados en el depósito estarán disponibles.

9. En el campo Default Bucket Group, escriba un nombre para el grupo dedepósito predeterminado.

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 (soporte entre cabezales).

a. En el campo Group File Permissions, seleccione los botones de lospermisos adecuados. Normalmente, se establecerán permisos Read yExecute.

HDFS de ECS

148 ECS 3.3 Guía de acceso a datos

Page 149: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 undepósito es admitir el acceso al depósito como un sistema de archivos. Por ejemplo,cuando está disponible el depósito 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 la pestañaCustom Group User ACLs.

4. Haga clic en Add.

Se muestra la página Edit Custom Group.

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. Seleccione 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 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/

HDFS de ECS

Creación de un depósito para HDFS mediante el portal de ECS 149

Page 150: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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.

Para obtener más información sobre los privilegios de ACL, consulte la Guía deadministración de ECS, que se encuentra disponible en Página de documentaciónde productos de 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.

HDFS de ECS

150 ECS 3.3 Guía de acceso a datos

Page 151: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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

Supergrupo

hdfs

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.

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 archivode grupo: lectura,escritura;

permisos dedirectorio de 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 2018-03-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.

HDFS de ECS

Creación de un depósito para HDFS mediante el portal de ECS 151

Page 152: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Tabla 28 Ejemplos de permisos de depósito para acceder al sistema de archivos en un clústerHadoop kerberizado

Usuario de 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])

hadoop ([email protected],[email protected],[email protected],[email protected],[email protected])

usuarios ([email protected],[email protected])

Supergrupo

hdfs

Propietario del depósito

[email protected]

Grupo predeterminado

hadoop

ACL del grupopersonalizado

hadoop(predeterminado),usuarios

ACL de usuario

[email protected](propietario)

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.

Planificación de la integración de HDFS de ECS y HadoopUtilice la siguiente tabla para verificar que tiene la información necesaria a fin degarantizar una integración correcta.

Tabla 29 Requisitos de configuración de HDFS de ECS

Elemento 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 de ECS:Nodos ECS

Registre las direcciones IP del nodo de ECS para utilizarlasposteriormente en este procedimiento.

Clúster de 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.

HDFS de ECS

152 ECS 3.3 Guía de acceso a datos

Page 153: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Tabla 29 Requisitos de configuración de HDFS de ECS (continuación)

Elemento Qué se debe hacer

Clúster de ECS:espacio de nombre delgrupo de 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 de ECS HDFSLas herramientas de soporte de HDFS y de ECS HDFS Client Library se proporcionanen un archivo ZIP del cliente HDFS, hdfsclient-<ECS version>-<version>.zip, que puede descargar desde las páginas de soporte de ECS ensupport.emc.com.

El archivo ZIP contiene los directorios /playbooks y /client. Antes dedescomprimir el archivo, cree un directorio para guardar el contenido del archivo .zip(su herramienta de descompresión podría hacerlo por usted) y luego extraiga elcontenido en ese directorio. Una vez que haya extraído los archivos, los directorioscontendrán lo siguiente:

l /playbooks: contiene guías Ansible para configurar un ambiente Hadoop seguropara comunicarse con ECS HDFS.

l /client: Contiene los archivos siguientes:

n Archivos JAR de ECS Client Library (ViPRFS) (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 ECS HDFS Client Libraryen la ruta de clase de cada nodo del cliente en el clúster de Hadoop.

Antes de comenzar

Obtenga ECS HDFS Client Library para su distribución de Hadoop en la página desoporte de ECS como se describe en Obtención del paquete de instalación y desoporte de HDFS de ECS.

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 30 ECS HDFS Client Library

Distribuciónde Hadoop

Versión Archivo JAR de HDFS de ECS

Hortonworks HDP 2.6.2 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.

HDFS de ECS

Obtención del paquete de instalación y de compatibilidad de ECS HDFS 153

Page 154: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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.

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.2.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 HDFS de ECS.

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

HDFS de ECS

154 ECS 3.3 Guía de acceso a datos

Page 155: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Tabla 31 Configuración de Hadoop para permitir el acceso a ECS (continuación)

Ubicación deHadoop

Propiedad Valor

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

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.

HDFS de ECS

Configuración de Hive 155

Page 156: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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.

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

HDFS de ECS

156 ECS 3.3 Guía de acceso a datos

Page 157: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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

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.

HDFS de ECS

Verificación del acceso de Hadoop a ECS 157

Page 158: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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/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 de HDFS a un depósitode 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:

HDFS de ECS

158 ECS 3.3 Guía de acceso a datos

Page 159: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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

Integración de un clúster de Hadoop con ECS HDFSPuede integrar su distribución de Hadoop existente, la cual está asegurada medianteKerberos, con HDFS de ECS.

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 de ECS. Para obtener orientación sobre cómo

HDFS de ECS

Integración de un clúster de Hadoop con ECS HDFS 159

Page 160: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

configurar el KDC de Kerberos y la confianza, consulte Configuración del KDC deKerberos.

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

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 Hadoop y de HDFS de ECS).

l Asegúrese de haber descargado el paquete de instalación y soporte (consulte Obtención del paquete de instalación y soporte de HDFS de ECS).

Para integrar HDFS de ECS a su clúster seguro de Hadoop, complete las siguientestareas:

1. Planear la migración desde un clúster simple a uno de Kerberos

2. Asignar nombres de grupo

3. Configuración de los nodos de ECS con la entidad de seguridad de servicio de ECS

4. Asegurar el depósito de ECS con metadatos

5. Reconfiguración de las propiedades del cliente de ECS

6. Inicio de los servicios de Hadoop y comprobación del acceso de Hadoop a ECS

Planear la migración desde un clúster simple a uno de KerberosECS 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 entorno simple a uno seguro, consulte Migración de un clústersimple a un clúster de Hadoop de Kerberos.

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

Planear la migración desde un clúster simple a uno de KerberosECS 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 entorno simple a uno seguro, consulte Migración de un clústersimple a un clúster de Hadoop de Kerberos.

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.Una vez que el depósito de ECS se vuelve a configurar para que sea seguro, sepueden iniciar los servicios de Hadoop.

HDFS de ECS

160 ECS 3.3 Guía de acceso a datos

Page 161: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 de seguridad de servicio deECS

El principal del servicio de ECS y su archivo keytab correspondiente deben residir encada nodo de datos de ECS. Debe usar las guías Ansible suministradas paraautomatizar estos pasos.

Antes de comenzar

Debe contar con los siguientes elementos para poder realizar este procedimiento:

l Acceso a las guías Ansible. Obtenga los manuales de Ansible del paquete desoftware HDFS de ECS como se describe en Obtención del paquete de instalacióny de soporte de HDFS de ECS.

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

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.

HDFS de ECS

Asignar nombres de grupo 161

Page 162: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 al 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 volver a configurar JRE en 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.

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

HDFS de ECS

162 ECS 3.3 Guía de acceso a datos

Page 163: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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

HDFS de ECS

Configuración de los nodos de ECS con la entidad de seguridad de servicio de ECS 163

Page 164: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 el manual de Ansible para configurar los nodos de datos con el principaldel servicio de ECS.

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

HDFS de ECS

164 ECS 3.3 Guía de acceso a datos

Page 165: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Verifique que se haya creado el principal del servicio de ECS correcto, uno porcada nodo de datos (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 la Guía de seguridad de Ambari.

Procedimiento

1. En la interfaz de Ambari, seleccione Ambari > Admin > Kerberos > EnableKerberos para acceder a Enable Kerberos Wizard.

2. Siga los pasos que se indican en el panelKerberize Cluster del asistente. Hagaclic en la X para anular el asistente de Kerberos.

El paso Kerberize Cluster puede omitirse ahora debido a que los servicios deHadoop no pueden iniciarse en este momento.

3. Haga clic en Exit Anyway en el cuadro de diálogo Confirmation para confirmarque desea cerrar el asistente.

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

HDFS de ECS

Activación de Kerberos mediante Ambari 165

Page 166: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Los datos se ponen a disposición de los nodos de ECS como un conjunto de pares denombre y valor que se mantienen como metadatos.

Usuarios de KerberosLa información acerca de cada usuario de Kerberos (no usuarios de AD) que requiereacceso a Hadoop para un depósito debe cargarse a ECS. Se requieren los siguientesdatos:

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

HDFS de ECS

166 ECS 3.3 Guía de acceso a datos

Page 167: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

{"name": "internal.kerberos.user.yarn.shortname","value": "yarn@EXAMPLE_HDFS.EMC.COM"},{"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" },

:

HDFS de ECS

Asegurar el depósito de ECS con metadatos 167

Page 168: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

{ "name": "METADATANAME_N", "value": "METADATAVALUE_N" } ]}

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

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 de administraciónSe 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.

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

HDFS de ECS

168 ECS 3.3 Guía de acceso a datos

Page 169: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 34 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 HDFS de ECS.

HDFS de ECS

Reconfiguración de las propiedades del cliente de ECS 169

Page 170: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Inicio de los servicios de Hadoop y comprobación del acceso de Hadoop a ECSInicie 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 /

HDFS de ECS

170 ECS 3.3 Guía de acceso a datos

Page 171: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

APÉNDICE A

Solución de problemas de una configuración deECS HDFS

l Compruebe que AD/LDAP esté configurado correctamente con el clústerHadoop seguro..................................................................................................172

l Falla la prueba PIG: no se puede obtener la entidad de seguridad de Kerberos..173l Permiso denegado para el usuario de AD...........................................................173l Errores de permisos.......................................................................................... 173l Error al procesar la solicitud..............................................................................176l Habilitar el registro y la depuración del lado del cliente de Kerberos..................177l Depuración de Kerberos en KDC....................................................................... 177l Eliminación de la desviación del reloj................................................................. 177l Configuración de uno o más nodos de ECS nuevos con la entidad de seguridad de

servicio de ECS.................................................................................................178l Solución alternativa para el error de directorio de Yarn inexistente...................180

Solución de problemas de una configuración de ECS HDFS 171

Page 172: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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.

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.

Solución de problemas de una configuración de ECS HDFS

172 ECS 3.3 Guía de acceso a datos

Page 173: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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_PERMISSIONSEn 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 /tmp18/02/26 21:03:09 ERROR vipr.ViPRFileSystemClientBase: Permissions failure for request: User: jhs/lrmk042.lss.emc.com@HOP171_HDFS.EMC.COM (auth:KERBEROS), host: hdfsBucket3.s3.site1, namespace: s3, bucket: hdfsBucket318/02/26 21:03:09 ERROR vipr.ViPRFileSystemClientBase: Request message sent: MkDirRequestMessage[kind=MKDIR_REQUEST,namespace=s3,bucket=hdfsBucket3,path=/tmp,hdfsTrustedStatus=HDFS_USER_NOT_TRUSTED,permissions=rwxr-xr-x,createParent=true]mkdir: java.security.AccessControlException: ERROR_INSUFFICIENT_PERMISSIONS

root@lrmk042:/etc/security/keytabs# hadoop fs -ls -d /drwxr-xr-x - hdfs hdfs 0 2018-02-26 16:58 /root@lrmk042:/etc/security/keytabs#

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-

Solución de problemas de una configuración de ECS HDFS

Falla la prueba PIG: no se puede obtener la entidad de seguridad de Kerberos 173

Page 174: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 credencialesDonde ve un error similar al siguiente en dataheadsvc-error.log:

2018-02-26 22:36:21,985 [pool-68-thread-6] ERROR RequestProcessor.java (line 1482) Unable to get group credentials for principal 'jhs@HOP171_HDFS.EMC.COM'. This principal will default to use local user groups. Error message: java.io.IOException: Failed to get group credentials for 'jhs@HOP171_HDFS.EMC.COM', status=ERROR

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ósitosSi 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.

2018-02-26 21:35:26,652 [pool-68-thread-1] ERROR BucketAPIImpl.java (line 220) Getting bucket failed withcom.emc.storageos.objcontrol.object.exception.ObjectAccessException: you don't have GET_KEYPOOL_ACL permission to this keypoolat com.emc.storageos.objcontrol.object.exception.ObjectAccessException.createExceptionForAPI(ObjectAccessException.java:286)at com.emc.storageos.data.object.ipc.protocol.impl.ObjectAccessExceptionParser.parseFrom(ObjectAccessExceptionParser.java:61)

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 objetosOtro tipo de error de permiso es un error de acceso al objeto. El acceso a objetos(archivos y directorios) no deben confundirse con el acceso a depósitos Un usuariopuede tener el control completo (lectura/escritura/borrado) a un depósito, peropuede recibir un error INSUFFICIENT_PERMISSIONS debido a que no tiene acceso auno o más objetos en la ruta a la que intenta obtener acceso. A continuación, seproporciona un ejemplo de un error de acceso a objeto.

2018-02-26 22:36:21,995 [pool-68-thread-6] ERROR FileSystemAccessHelper.java (line 1364) nfsProcessOperation failed to process path: mr-history/done2018-02-26 22:36:21,995 [pool-68-thread-6] ERROR ObjectControllerExceptionHelper.java (line 186) Method nfsGetSMD failed due to exceptioncom.emc.storageos.data.object.exception.ObjectControllerException: directory server returns error ERROR_ACCESS_DENIEDat com.emc.storageos.data.object.FileSystemAccessLayer.FileSystemAccessHelper.nfsProcessOperation(FileSystemAccessHelper.java:1368)at com.emc.storageos.data.object.FileSystemAccessLayer.FileSystemAccessHelper.getSystemMetadata(FileSystemAccessHelper.java:466)at

Solución de problemas de una configuración de ECS HDFS

174 ECS 3.3 Guía de acceso a datos

Page 175: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 que se describen a continuación:

l Depuración de registro en blobsvc

l Depuración del cliente Hadoop

Depuración de registro en blobsvcUna solicitud de permiso fallida tendrá un error como este en blobsvc:

2018-02-26 22:36:21,994[TaskScheduler-BlobService-COMMUNICATOR-ParallelExecutor-5892]ERROR ObjectAclChecker.java (line 101) not permit, cred jhs@HOP171_HDFS.EMC.COM[hadoop]false1 withaction GET_OBJECT_ACL on object with acl/owner/group user={hdfs@hop171_hdfs.emc.com=[FULL_CONTROL]},groups={hdfs=[READ_ACL, EXECUTE, READ]}, other=[], owner=hdfs@hop171_hdfs.emc.com, group=hdfs

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.

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 2018-02-26 16:58 /mr-history/done

Solución de problemas de una configuración de ECS HDFS

Errores de permisos 175

Page 176: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 2018-02-26 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 2018-02-26 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 2018-02-26 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:

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

Solución de problemas de una configuración de ECS HDFS

176 ECS 3.3 Guía de acceso a datos

Page 177: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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>

b. net stop w32timec. net start w32time

Solución de problemas de una configuración de ECS HDFS

Habilitar el registro y la depuración del lado del cliente de Kerberos 177

Page 178: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 ya ejecutó los pasos de Configurar nodos de ECScon el principal del servicio de ECS y que tiene los manuales de Ansible instalados yaccesibles.

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 de una configuración de ECS HDFS

178 ECS 3.3 Guía de acceso a datos

Page 179: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 el manual de Ansible para configurar los nodos de datos con el principaldel servicio 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 se haya creado el principal del servicio de ECS correcto, uno porcada nodo de datos (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 de una configuración de ECS HDFS

Configuración de uno o más nodos de ECS nuevos con la entidad de seguridad de servicio de ECS 179

Page 180: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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

Uso:

# date

Si la hora de los sistemas no está consolidada, se debe sincronizar con el mismoservidor NTP.

En la Guía de seguridad de Ambari se proporciona información sobre cómohabilitar NTP en el clúster y en el host del navegador.

Solución de problemas de una configuración de ECS HDFS

180 ECS 3.3 Guía de acceso a datos

Page 181: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 de una configuración de ECS HDFS

Solución alternativa para el error de directorio de Yarn inexistente 181

Page 182: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Solución de problemas de una configuración de ECS HDFS

182 ECS 3.3 Guía de acceso a datos

Page 183: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

APÉNDICE B

Orientación sobre la configuración de Kerberosen el clúster de Hadoop

l Configuración del KDC de Kerberos.................................................................. 184l Configuración de la autenticación de usuario AD para Kerberos........................185

Orientación sobre la configuración de Kerberos en el clúster de Hadoop 183

Page 184: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 una VM, recree /dev/random (de otra forma, el siguiente pasode crear 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] *

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

Orientación sobre la configuración de Kerberos en el clúster de Hadoop

184 ECS 3.3 Guía de acceso a datos

Page 185: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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 enlace para configurar un KDC de Kerberos según lospasos 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 paraKerberos

Cuando 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 /passwordt:ChangeMeksetup /SetEncTypeAttr LSS.ACME.COM DES-CBC-CRC

Orientación sobre la configuración de Kerberos en el clúster de Hadoop

Configuración de la autenticación de usuario AD para Kerberos 185

Page 186: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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]: [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]

Orientación sobre la configuración de Kerberos en el clúster de Hadoop

186 ECS 3.3 Guía de acceso a datos

Page 187: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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

Orientación sobre la configuración de Kerberos en el clúster de Hadoop

Configuración de la autenticación de usuario AD para Kerberos 187

Page 188: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Orientación sobre la configuración de Kerberos en el clúster de Hadoop

188 ECS 3.3 Guía de acceso a datos

Page 189: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

APÉNDICE C

Ejemplo de metadatos de depósito seguro deHDFS

l Asegurar los metadatos del depósito................................................................ 190

Ejemplo de metadatos de depósito seguro de HDFS 189

Page 190: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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

Ejemplo de metadatos de depósito seguro de HDFS

190 ECS 3.3 Guía de acceso a datos

Page 191: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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

Ejemplo de metadatos de depósito seguro de HDFS

Asegurar los metadatos del depósito 191

Page 192: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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

Ejemplo de metadatos de depósito seguro de HDFS

192 ECS 3.3 Guía de acceso a datos

Page 193: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

APÉNDICE D

Propiedades de core-site.xml de Hadoop

l Propiedades de core-site.xml de Hadoop para ECS HDFS................................ 194l Propiedades de core-site.xml de Hadoop para ECS S3..................................... 198

Propiedades de core-site.xml de Hadoop 193

Page 194: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Propiedades de core-site.xml de Hadoop para ECS HDFSCuando configure el archivo core-site.xml de Hadoop, utilice esta tabla comoreferencia para las propiedades y sus valores relacionados.

Tabla 35 Propiedades de core-site.xml de Hadoop

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 HDFS de ECS

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 HDFS de ECS. 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 propiedad fs.vipr.installations. Especifique el valor en forma de lista dedirecciones 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 HDFS de ECS sabe cómo obtener acceso a los nodos de datos deECS. Los valores son los siguientes:

l dynamic: Utilice este valor cuando obtenga acceso a nodos de datos de ECS directamente sin unbalanceador de carga.

Propiedades de core-site.xml de Hadoop

194 ECS 3.3 Guía de acceso a datos

Page 195: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Tabla 35 Propiedades de core-site.xml de Hadoop (continuación)

Propiedad Descripción

l fixed: Utilice este valor cuando obtenga 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>

URI del sistema de archivos de ECS

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 HDFS de ECS es opcional. Si no seconfigura en el sistema de archivos de HDFS de ECS, debe especificar el URI completo en cadaoperación del sistema de archivos. El URI del sistema de archivos de HDFS de ECS tiene esteformato:

viprfs://[bucket_name].[namespace].[federation]

l bucket_name: El nombre de depósito 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 asociado al conjunto de nodos de datos de ECS que Hadoop puede utilizarpara tener acceso a los datos de ECS. El valor de esta propiedad debe coincidir con uno de losvalores especificados en la propiedad fs.vipr.installations.

Por ejemplo:

<property> <name>fs.defaultFS</name> <value>viprfs://testbucket.s3.federation1</value> </property>

Propiedad umask

Propiedades de core-site.xml de Hadoop

Propiedades de core-site.xml de Hadoop para ECS HDFS 195

Page 196: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Tabla 35 Propiedades de core-site.xml de Hadoop (continuación)

Propiedad Descripción

fs.permissions.umask-mode

Esta propiedad estándar de Hadoop especifica cómo HDFS de ECS debe computar permisos enobjetos. Los permisos se computan aplicando una propiedad umask en los permisos de entrada. Elvalor recomendado 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 HDFS de ECS determina a qué dominio de Kerberospertenece un usuario en particular si no hay uno especificado. Los nodos de datos de ECS almacenana los propietarios de archivos como username@REALM, mientras que Hadoop almacena a los

propietarios de archivos simplemente 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.

Propiedades de core-site.xml de Hadoop

196 ECS 3.3 Guía de acceso a datos

Page 197: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Tabla 35 Propiedades de core-site.xml de Hadoop (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 HDFS de ECSpara 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>

Propiedades de core-site.xml de Hadoop

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

Page 198: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

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>

Propiedades de core-site.xml de Hadoop para ECS S3Cuando configure el archivo core-site.xml de Hadoop para ECS S3, utilice estatabla como referencia para las propiedades y sus valores relacionados.

Tabla 36 Propiedades de core-site.xml de Hadoop para ECS S3

Propiedad Descripción

fs.s3a.endpoint= <Dirección IP de ECS(solo una dirección de nodo) o IP deLoadBalancer>:9020

Dirección IP de ECS a la que se conectará.

Nota

s3a no es compatible con varias direcciones IP y, por lo tanto, es mejor tener unloadbalancer

fs.s3a.access.key= <Usuario de objetosde S3 según se creó en ECS>

Su ID de clave de acceso a AWS

Propiedades de core-site.xml de Hadoop

198 ECS 3.3 Guía de acceso a datos

Page 199: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Tabla 36 Propiedades de core-site.xml de Hadoop para ECS S3 (continuación)

Propiedad Descripción

fs.s3a.secret.key=<Clave secreta delusuario de objetos de S3 como en ECS>

Su clave secreta de AWS

fs.s3a.connection.maximum=15 Controla la cantidad de conexiones en paralelo que HttpClient genera (valorpredeterminado: 15)

fs.s3a.connection.ssl.enabled=false Habilita o deshabilita las conexiones de SSL a S3 (valor predeterminado: true)

fs.s3a.path.style.access=false Habilita el acceso al estilo de ruta de S3 que está deshabilitando el comportamientopredeterminado del alojamiento virtual (valor predeterminado: false)

fs.s3a.connection.establish.timeout=5000

Tiempo de espera de configuración de conexión del conector en milisegundos.

fs.s3a.connection.timeout=200000 Tiempo de espera de conexión del conector (valor predeterminado: 5000)

fs.s3a.paging.maximum=1000 La cantidad de claves que se deben solicitar desde S3 cuando se realizan listas dedirectorios al mismo tiempo (valor predeterminado: 5000)

fs.s3a.threads.max=10 La cantidad total de subprocesos disponibles en el sistema de archivos para cargasde datos *o cualquier otra operación del sistema de archivos en línea de espera*.

fs.s3a.socket.send.buffer=8192 El conector envía una sugerencia de búfer al conector de Amazon. Se representa enbytes.

fs.s3a.socket.recv.buffer=8192 El conector recibe una sugerencia de búfer para el conector de Amazon. Serepresenta en bytes.

fs.s3a.threads.keepalivetime=60 Cantidad de segundos durante los cuales un subproceso puede estar inactivo antesde que se termine.

fs.s3a.max.total.tasks=5 Cantidad de operaciones que se pueden poner en línea de espera para ejecutarlas.

fs.s3a.multipart.size=100M El tamaño (en bytes) para dividir una operación de carga o copia (valorpredeterminado: 100 MB)

fs.s3a.multipart.threshold=2147483647 Utiliza la carga no paralela hasta que el archivo tenga este peso en bytes (valorpredeterminado: 2 GB)

fs.s3a.multiobjectdelete.enable=true Cuando está habilitado, varias solicitudes de eliminación de un solo objeto sereemplazan por una sola solicitud de “eliminación de múltiples objetos”, lo quereduce la cantidad de solicitudes. Advertencia: Las áreas de almacenamiento deobjetos legadas y compatibles con S3 podrían no ser compatibles con esta solicitud.

fs.s3a.acl.default=PublicReadWrite Establece una ACL almacenada en objetos recién creados o copiados (Private |PublicRead | PublicReadWrite | AuthenticatedRead | LogDeliveryWrite |BucketOwnerRead | BucketOwnerFullControl)

fs.s3a.multipart.purge=false Tiene el valor True si desea depurar las cargas de múltiples partes existentes quepodrían no haberse completado o anulado correctamente (valor predeterminado:false)

fs.s3a.multipart.purge.age=86400 Antigüedad mínima en segundos de las cargas de múltiples partes de la depuración(valor predeterminado: 86400)

fs.s3a.block.size=32M Tamaño de bloque que se usará cuando se lean archivos mediante S3A: sistema dearchivos. Se puede usar un sufijo del conjunto {K, M, G, T, P} para escalar el valornumérico.

Propiedades de core-site.xml de Hadoop

Propiedades de core-site.xml de Hadoop para ECS S3 199

Page 200: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Tabla 36 Propiedades de core-site.xml de Hadoop para ECS S3 (continuación)

Propiedad Descripción

fs.s3a.readahead.range=64K Bytes para la lectura anticipada durante una función seek() antes de cerrar y volvera abrir la conexión HTTP de S3. Esta opción se reemplazará si se realiza cualquierllamada a setReadahead() en un flujo abierto. Se puede usar un sufijo del conjunto{K, M, G, T, P} para escalar el valor numérico.

fs.s3a.buffer.dir=${hadoop.tmp.dir}/s3a Lista separada por comas de directorios que se utilizarán para colocar en el búferlas escrituras de archivos (valor predeterminado: utiliza fs.s3.buffer.dir)

Ejemplo de core-site.xml para ECS S3El siguiente archivo core-site.xml es un ejemplo de las propiedades de ECS S3.

Ejemplo 2 core-site.xml

<configuration xmlns:xi="http://www.w3.org/2001/XInclude"> <property> <name>fs.azure.user.agent.prefix</name> <value>User-Agent: APN/1.0 Hortonworks/1.0 HDP/</value> </property> <property> <name>fs.defaultFS</name> <value>hdfs://<<hostname:8020>></value> <final>true</final> </property> <property> <name>fs.s3a.access.key</name> <value><<userid>></value> </property> <property> <name>fs.s3a.acl.default</name> <value>PublicReadWrite</value> </property> <property> <name>fs.s3a.block.size</name> <value>32M</value> </property> <property> <name>fs.s3a.bucket.s3aTestBucket.access.key</name> <value>ambari-qa</value> </property> <property> <name>fs.s3a.bucket.s3aTestBucket.secret.key</name> <value>secret_key</value> </property> <property> <name>fs.s3a.buffer.dir</name> <value>${hadoop.tmp.dir}/s3a</value> </property> <property>

Propiedades de core-site.xml de Hadoop

200 ECS 3.3 Guía de acceso a datos

Page 201: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Ejemplo 2 core-site.xml (continuación)

<name>fs.s3a.connection.establish.timeout</name> <value>5000</value> </property> <property> <name>fs.s3a.connection.maximum</name> <value>15</value> </property> <property> <name>fs.s3a.connection.ssl.enabled</name> <value>false</value> </property> <property> <name>fs.s3a.connection.timeout</name> <value>200000</value> </property> <property> <name>fs.s3a.endpoint</name> <value><<Host IP address>></value> </property> <property> <name>fs.s3a.fast.upload</name> <value>true</value> </property> <property> <name>fs.s3a.fast.upload.buffer</name> <value>disk</value> </property> <property> <name>fs.s3a.max.total.tasks</name> <value>5</value> </property> <property> <name>fs.s3a.multiobjectdelete.enable</name> <value>true</value> </property> <property> <name>fs.s3a.multipart.purge</name> <value>false</value> </property> <property> <name>fs.s3a.multipart.purge.age</name> <value>86400</value> </property> <property> <name>fs.s3a.multipart.size</name> <value>67108864</value> </property> <property> <name>fs.s3a.multipart.threshold</name> <value>2147483647</value> </property> <property>

Propiedades de core-site.xml de Hadoop

Ejemplo de core-site.xml para ECS S3 201

Page 202: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Ejemplo 2 core-site.xml (continuación)

<name>fs.s3a.paging.maximum</name> <value>1000</value> </property> <property> <name>fs.s3a.path.style.access</name> <value>false</value> </property> <property> <name>fs.s3a.readahead.range</name> <value>64K</value> </property> <property> <name>fs.s3a.secret.key</name> <value><<secret key>></value> </property> <property> <name>fs.s3a.socket.recv.buffer</name> <value>8192</value> </property> <property> <name>fs.s3a.socket.send.buffer</name> <value>8192</value> </property> <property> <name>fs.s3a.threads.keepalivetime</name> <value>60</value> </property> <property> <name>fs.s3a.threads.max</name> <value>10</value> </property> <property> <name>fs.s3a.user.agent.prefix</name> <value>User-Agent: APN/1.0 Hortonworks/1.0 HDP/</value> </property> <property> <name>fs.trash.interval</name> <value>360</value> </property> <property> <name>ha.failover-controller.active-standby-elector.zk.op.retries</name> <value>120</value> </property> <property> <name>ha.zookeeper.acl</name> <value>sasl:nn:rwcda</value> </property> <property> <name>hadoop.http.authentication.cookie.domain</name> <value>centera.lab.emc.com</value> </property> <property>

Propiedades de core-site.xml de Hadoop

202 ECS 3.3 Guía de acceso a datos

Page 203: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Ejemplo 2 core-site.xml (continuación)

<name>hadoop.http.authentication.kerberos.keytab</name> <value>/etc/security/keytabs/spnego.service.keytab</value> </property> <property> <name>hadoop.http.authentication.kerberos.principal</name> <value>HTTP/[email protected]</value> </property> <property> <name>hadoop.http.authentication.signature.secret.file</name> <value>/etc/security/http_secret</value> </property> <property> <name>hadoop.http.authentication.simple.anonymous.allowed</name> <value>false</value> </property> <property> <name>hadoop.http.authentication.type</name> <value>kerberos</value> </property> <property> <name>hadoop.http.cross-origin.allowed-headers</name> <value>X-Requested-With,Content-Type,Accept,Origin,WWW-Authenticate,Accept-Encoding,Transfer-Encoding</value> </property> <property> <name>hadoop.http.cross-origin.allowed-methods</name> <value>GET,PUT,POST,OPTIONS,HEAD,DELETE</value> </property> <property> <name>hadoop.http.cross-origin.allowed-origins</name> <value>*</value> </property> <property> <name>hadoop.http.cross-origin.max-age</name> <value>1800</value> </property> <property> <name>hadoop.http.filter.initializers</name> <value>org.apache.hadoop.security.AuthenticationFilterInitializer,org.apache.hadoop.security.HttpCrossOriginFilterInitializer</value> </property> <property> <name>hadoop.proxyuser.ambari-server.groups</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.ambari-server.hosts</name> <value><Ambari server fully qualified name>></value> </property> <property> <name>hadoop.proxyuser.hdfs.groups</name> <value>*</value>

Propiedades de core-site.xml de Hadoop

Ejemplo de core-site.xml para ECS S3 203

Page 204: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Ejemplo 2 core-site.xml (continuación)

</property> <property> <name>hadoop.proxyuser.hdfs.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.hive.groups</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.hive.hosts</name> <value><<hive host>></value> </property> <property> <name>hadoop.proxyuser.HTTP.groups</name> <value>users</value> </property> <property> <name>hadoop.proxyuser.knox.groups</name> <value>users</value> </property> <property> <name>hadoop.proxyuser.knox.hosts</name> <value><<knox host>></value> </property> <property> <name>hadoop.proxyuser.livy.groups</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.livy.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.yarn.groups</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.yarn.hosts</name> <value><<yarn host>></value> </property> <property> <name>hadoop.rpc.protection</name> <value>authentication,privacy</value> </property> <property> <name>hadoop.security.auth_to_local</name> <value>RULE:[1:$1@$0]([email protected])s/.*/ambari-qa/RULE:[1:$1@$0]([email protected])s/.*/hbase/RULE:[1:$1@$0]([email protected])s/.*/hdfs/RULE:[1:$1@$0]([email protected])s/.*/spark/RULE:[1:$1@$0]([email protected])s/.*/yarn-ats/RULE:[1:$1@$0](.*@SM.EMC.COM)s/@.*//

Propiedades de core-site.xml de Hadoop

204 ECS 3.3 Guía de acceso a datos

Page 205: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Ejemplo 2 core-site.xml (continuación)

RULE:[2:$1@$0]([email protected])s/.*/activity_analyzer/RULE:[2:$1@$0]([email protected])s/.*/activity_explorer/RULE:[2:$1@$0]([email protected])s/.*/ams/RULE:[2:$1@$0]([email protected])s/.*/ams/RULE:[2:$1@$0]([email protected])s/.*/ams/RULE:[2:$1@$0]([email protected])s/.*/atlas/RULE:[2:$1@$0]([email protected])s/.*/hdfs/RULE:[2:$1@$0]([email protected])s/.*/hbase/RULE:[2:$1@$0]([email protected])s/.*/hive/RULE:[2:$1@$0]([email protected])s/.*/mapred/RULE:[2:$1@$0]([email protected])s/.*/knox/RULE:[2:$1@$0]([email protected])s/.*/yarn/RULE:[2:$1@$0]([email protected])s/.*/hdfs/RULE:[2:$1@$0]([email protected])s/.*/yarn/RULE:[2:$1@$0]([email protected])s/.*/spark/RULE:[2:$1@$0]([email protected])s/.*/yarn/RULE:[2:$1@$0]([email protected])s/.*/yarn-ats/DEFAULT</value> </property> <property> <name>hadoop.security.authentication</name> <value>kerberos</value> </property> <property> <name>hadoop.security.authorization</name> <value>true</value> </property> <property> <name>hadoop.security.instrumentation.requires.admin</name> <value>false</value> </property> <property> <name>io.compression.codecs</name> <value>org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.SnappyCodec</value> </property> <property> <name>io.file.buffer.size</name> <value>131072</value> </property> <property> <name>io.serializations</name> <value>org.apache.hadoop.io.serializer.WritableSerialization</value> </property> <property> <name>ipc.client.connect.max.retries</name> <value>50</value> </property> <property> <name>ipc.client.connection.maxidletime</name> <value>30000</value> </property> <property> <name>ipc.client.idlethreshold</name> <value>8000</value>

Propiedades de core-site.xml de Hadoop

Ejemplo de core-site.xml para ECS S3 205

Page 206: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Ejemplo 2 core-site.xml (continuación)

</property> <property> <name>ipc.server.tcpnodelay</name> <value>true</value> </property> <property> <name>mapreduce.jobtracker.webinterface.trusted</name> <value>false</value> </property> <property> <name>net.topology.script.file.name</name> <value>/etc/hadoop/conf/topology_script.py</value> </property> </configuration>

Propiedades de core-site.xml de Hadoop

206 ECS 3.3 Guía de acceso a datos

Page 207: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

APÉNDICE E

Administración de claves externa

l Administración de claves externa..................................................................... 208

Administración de claves externa 207

Page 208: Guía de acceso a datos - Dell EMC Isilon...API de administración de ECS, que se puede utilizar para ejecutar la configuración de ECS antes del acceso del usuario, y detalla el uso

Administración de claves externa

Como parte del cifrado de datos en reposo (D@RE), ECS es compatible conadministradores de claves externos centralizados. Los administradores de clavesexternos centralizados son compatibles con el Protocolo de interoperabilidad deadministración de claves (KMIP), lo que mejora la seguridad de nivel empresarial en elsistema. Además, permite a los clientes usar los servidores de claves centralizadospara almacenar las claves de cifrado de claves de nivel superior (KEK) a fin deproporcionar los siguientes beneficios:

l Permite obtener beneficios de la producción clave basada en el módulo deseguridad de hardware (HSM) y la tecnología de cifrado más recienteproporcionada por los servidores de administración de claves especializados.

l Ofrece protección contra la pérdida de todo el dispositivo mediante elalmacenamiento de información clave de nivel superior fuera del dispositivo.

ECS incorpora el estándar de KMIP para la integración con administradores de clavesexternos y actúa como un cliente de KMIP, además de ser compatible con lo siguiente:

l Es compatible con el administrador de claves de SafeNet de Gemalto.

Nota

Las versiones admitidas en el administrador de claves se determinan mediante elcliente de la Plataforma de confianza de claves (KTP) de Dell EMC.

l Admite el uso de KEK de nivel superior (clave principal) proporcionada por unadministrador de claves externo.

l Es compatible con la rotación de KEK de nivel superior (clave principal)proporcionada por un administrador de claves externo.

Administración de claves externa

208 ECS 3.3 Guía de acceso a datos