Configuración del registro de un bucket
Funciones
Cuando se crea un bucket, la función de registro no está habilitada de forma predeterminada. Para generar las operaciones de registro de logs en los bucket, debe habilitar la función de registro para el bucket. Una vez activada la función de log, se genera un log para cada operación en un bucket y se empaquetan varios logs en un archivo de log. Al habilitar la función de log, debe especificar una ubicación donde se almacenan los archivos de log. Se pueden almacenar en el bucket para el que está habilitado el registro, o en otros los bucket para los que tenga los permisos necesarios. Sin embargo, el bucket donde se almacenan los archivos de log y el bucket para el que está habilitado el log deben estar en la misma región.
Los archivos de log son generados por OBS y cargados en el bucket donde se almacenan los logs. Por lo tanto, OBS necesita estar autorizado para cargar archivos de log generados. Antes de configurar la función de registro, debe crear una delegación para OBS en IAM, el nombre de la delegación se configura como un parámetro del bucket y la función de registro se debe configurar bajo la etiqueta LoggingEnabled en el archivo XML. Solo necesita autorizar a la delegación con los permisos de carga para el bucket de destino.
Ejemplo de permisos de delegación
{ "Version": "1.1", "Statement": [ { "Action": [ "obs:object:PutObject" ], "Resource": [ "OBS:*:*:object:mybucketlogs/*" ], "Effect": "Allow" } ] }
Para desactivar la función de registro de bucket, suba un archivo de registro con una etiqueta BucketLoggingStatus vacía.
Los bucket de las clases de almacenamiento Infrequent Access y Archive no se pueden utilizar para almacenar archivos de log. Los archivos de log almacenados ocupan espacio de almacenamiento en un bucket. Por lo tanto, se cobra a los usuarios por el servicio de registro en función del precio del almacenamiento de datos.
Si el bucket de destino tiene la encriptación de KMS habilitada, conceda a la delegación acceso a KMS.
Sintaxis de solicitud
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
PUT /?logging HTTP/1.1 Host: bucketname.obs.region.myhuaweicloud.com Date: date Authorization: signatureValue <?xml version="1.0" encoding="UTF-8"?> <BucketLoggingStatus> <Agency>agency-name</Agency> <LoggingEnabled> <TargetBucket>mybucketlogs</TargetBucket> <TargetPrefix>mybucket-access_log-/</TargetPrefix> <TargetGrants> <Grant> <Grantee> <ID>domainID</ID> </Grantee> <Permission>READ</Permission> </Grant> </TargetGrants> </LoggingEnabled> </BucketLoggingStatus> |
Parámetros de solicitud
Esta solicitud no contiene parámetros de mensaje.
Encabezados de solicitud
Esta solicitud utiliza encabezados comunes. Para más detalles, consulte Tabla 3.
Elementos de solicitud
Elemento |
Descripción |
Obligatorio |
---|---|---|
BucketLoggingStatus |
Contenedor para registrar información de estado Tipo: container |
Sí |
Agency |
Nombre de la delegación de IAM creada por el propietario del bucket de destino en IAM. Tipo: string |
Debe establecer este parámetro al habilitar la función de registro. No establezca este parámetro cuando deshabilite la función de registro. |
LoggingEnabled |
Contenedor para la información de registro. Presente este elemento al habilitar la función de registro. De lo contrario, a falta de ello. Puede agregar información de registro específica en este elemento. Tipo: container |
Debe establecer este parámetro al habilitar la función de registro. No establezca este parámetro cuando deshabilite la función de registro. |
Grant |
Contenedor para el concesionario y los permisos de registro del concesionario. Describe quién tiene el permiso para acceder a los archivos de log generados. Tipo: container |
No |
Grantee |
Contenedor para el usuario al que se concede el permiso de registro. Tipo: container |
No |
ID |
ID de cuenta del usuario autorizado, que es globalmente único. Tipo: string |
No |
Permission |
Permisos del concesionario para los registros generados. Tipo: string Opciones de valor: FULL_CONTROL, READ, WRITE |
No |
TargetBucket |
Al habilitar la función de log, el propietario del bucket que se está registrando puede especificar un bucket de destino para almacenar los archivos de log generados. Asegúrese de que el propietario del bucket que configura la función de log tenga el permiso FULL_CONTROL para el bucket que almacena los archivos de log. Los archivos de registro generados para varios bucket se pueden almacenar en el mismo bucket de destino. Si lo hace, debe especificar diferentes TargetPrefixes para clasificar los registros de diferentes los bucket. Tipo: string |
Debe establecer este parámetro al habilitar la función de registro. No establezca este parámetro cuando deshabilite la función de registro. |
TargetPrefix |
Puede especificar un prefijo utilizando este elemento para que los archivos de log se nombren con este prefijo. Tipo: string |
Debe establecer este parámetro al habilitar la función de registro. No establezca este parámetro cuando deshabilite la función de registro. |
TargetGrants |
Contenedor para la concesión de información. Tipo: container |
No |
Reglas de denominación para los logs de acceso
1
|
<TargetPrefix>YYYY-mm-DD-HH-MM-SS-<UniqueString> |
- <TargetPrefix> es el prefijo de nombre de log especificado por el usuario.
- AAAA-mm-DD-HH-MM-SS indica la fecha y la hora en que se genera el log.
- <UniqueString> indica una string de caracteres generada por OBS.
A continuación se muestra un ejemplo de un nombre de archivo de log:
1
|
bucket-log2015-06-29-12-22-07-N7MXLAF1BDG7MPDV |
- bucket-log es el prefijo de destino especificado por el usuario.
- 2015-06-29-12-22-07 indica la hora en que se genera el log.
- N7MXLAF1BDG7MPDV es una string generada automáticamente por OBS
Formato de los logs de acceso al bucket
A continuación se muestra un log de acceso entregado al bucket de destino:
1
|
787f2f92b20943998a4fe2ab75eb09b8 bucket [13/Aug/2015:01:43:42 +0000] xx.xx.xx.xx 787f2f92b20943998a4fe2ab75eb09b8 281599BACAD9376ECE141B842B94535B REST.GET.BUCKET.LOCATION - "GET /bucket?location HTTP/1.1" 200 - 211 - 6 6 "-" "HttpClient" - - |
Cada log de acceso contiene la siguiente información:
Parámetro |
Ejemplo |
Descripción |
---|---|---|
BucketOwner |
787f2f92b20943998a4fe2ab75eb09b8 |
ID del propietario del bucket |
Bucket |
bucket |
Nombre del bucket |
Time |
[13/Aug/2015:14:43:42 +0000] |
Solicitar marca de tiempo en formato [dd/MMM/aaaa:HH:mm:ss Z] |
Remote IP |
xx.xx.xx.xx |
Solicitar la dirección IP |
Requester |
787f2f92b20943998a4fe2ab75eb09b8 |
ID del solicitante
|
RequestID |
281599BACAD9376ECE141B842B94535B |
ID de solicitud |
Operation |
REST.GET.BUCKET.LOCATION |
Operación |
Key |
- |
Nombre del objeto |
Request-URI |
GET /bucket?location HTTP/1.1 |
URI de solicitud |
HTTPStatus |
200 |
Código de respuesta |
ErrorCode |
- |
Código de error |
BytesSent |
211 |
Tamaño de la respuesta HTTP, expresado en bytes |
ObjectSize |
- |
Tamaño del objeto |
TotalTime |
6 |
Tiempo de procesamiento en el servidor Unidad: ms |
Turn-AroundTime |
6 |
Tiempo total de procesamiento de solicitudes Unidad: ms |
Referer |
- |
Consultar el encabezado de la solicitud |
User-Agent |
HttpClient |
Encabezado User-Agent de la solicitud |
VersionID |
- |
ID de versión contenido en una solicitud |
STSLogUrn |
- |
Autenticación federada e información de delegación |
StorageClass |
STANDARD_IA |
Clase de almacenamiento de objeto actual |
TargetStorageClass |
GLACIER |
Clase de almacenamiento a la que se migrará el objeto |
DentryName |
12456/file.txt |
|
Sintaxis de respuesta
1 2 3 |
HTTP/1.1 status_code Date: date Content-Length: length |
Encabezados de respuesta
La respuesta a la solicitud utiliza encabezados comunes. Para más detalles, consulte Tabla 1.
Elementos de respuesta
Esta respuesta no contiene elementos.
Respuestas de error
No se devuelven respuestas de error especiales. Para obtener más información sobre las respuestas de error, consulte Tabla 2.
Modelo de solicitud
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
PUT /?logging HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.region.myhuaweicloud.com Accept: */* Date: WED, 01 Jul 2015 02:40:06 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:mCOjER/L4ZZUY9qr6AOnkEiwvVk= Content-Length: 528 <?xml version="1.0" encoding="UTF-8"?> <BucketLoggingStatus> <Agency>agencyGrantPutLogging</Agency> <LoggingEnabled> <TargetBucket>log-bucket</TargetBucket> <TargetPrefix>mybucket-access_log-/</TargetPrefix> <TargetGrants> <Grant> <Grantee> <ID>783fc6652cf246c096ea836694f71855</ID> </Grantee> <Permission>READ</Permission> </Grant> </TargetGrants> </LoggingEnabled> </BucketLoggingStatus> |
Modelo de respuesta
1 2 3 4 5 6 |
HTTP/1.1 200 OK Server: OBS x-obs-request-id: BF26000001643663CE53B6AF31C619FD x-obs-id-2: 32AAAQAAEAABSAAkpAIAABAAAQAAEAABCT9CjuOx8cETSRbqkm35s1dL/tLhRNdZ Date: WED, 01 Jul 2015 02:40:06 GMT Content-Length: 0 |