Exportar registros a un segmento remoto

En esta página se describe cómo exportar los registros de auditoría y operativos de un dispositivo aislado de Google Distributed Cloud (GDC) a un contenedor remoto mediante la herramienta de transferencia de almacenamiento.

Obtener roles de gestión de identidades y accesos

Para obtener los permisos que necesitas para exportar registros, pide al administrador de gestión de identidades y accesos de tu organización que te conceda el rol Administrador de transferencia de registros (logs-transfer-admin) en el espacio de nombres obs-system del clúster de infraestructura y el rol Lector de segmento de registros (logs-bucket-viewer)) en el espacio de nombres obs-system del plano de gestión.

Para obtener más información sobre estos roles, consulta Preparar permisos de gestión de identidades y accesos.

Obtener el endpoint y el nombre completo del bucket de origen

  1. Define KUBECONFIG en la API Org Management:

    export KUBECONFIG=MANAGEMENT_API_KUBECONFIG_PATH
    
  2. Obtén el endpoint del contenedor de origen:

    • Registros de auditoría:

      kubectl get bucket audit-logs-loki-all -n obs-system -o json | jq '.status.endpoint'
      
    • En los registros operativos:

      kubectl get bucket ops-logs-loki-all -n obs-system -o json | jq '.status.endpoint'
      
  3. Obtén el nombre completo del bucket de origen:

    • Registros de auditoría:

      kubectl get bucket audit-logs-loki-all -n obs-system -o json | jq '.status.fullyQualifiedName'
      
    • En los registros operativos:

      kubectl get bucket ops-logs-loki-all -n obs-system -o json | jq '.status.fullyQualifiedName'
      

Obtener las credenciales de acceso del segmento de origen

  1. Define KUBECONFIG en el clúster de infraestructura de la organización:

      export KUBECONFIG=INFRA_CLUSTER_KUBECONFIG_PATH
    
  2. Obtén el ID de clave de acceso del segmento de origen:

    • Registros de auditoría:

      kubectl get secret audit-logs-loki-all-s3-auth -n obs-system -o json | jq -r '.data."access-key-id"' | base64 -di
      
    • Registros operativos:

      kubectl get secret ops-logs-loki-all-s3-auth -n obs-system -o json | jq -r '.data."access-key-id"' | base64 -di
      
  3. Obtén la clave de acceso secreta del segmento de origen:

    • Registros de auditoría:

      kubectl get secret audit-logs-loki-all-s3-auth -n obs-system -o json | jq -r '.data."secret-access-key"' | base64 -di
      
    • Registros operativos:

      kubectl get secret ops-logs-loki-all-s3-auth -n obs-system -o json | jq -r '.data."secret-access-key"' | base64 -di
      

Registros de la transferencia

  1. Define KUBECONFIG en el clúster de infraestructura de la organización:

    export KUBECONFIG=INFRA_CLUSTER_KUBECONFIG_PATH
    
  2. Crea un secreto con las credenciales de acceso del bucket de origen:

    kubectl create secret generic -n obs-system SRC_BUCKET_SECRET_NAME
    --from-literal=access-key-id=SRC_BUCKET_ACCESS_KEY_ID
    --from-literal=secret-access-key=SRC_BUCKET_SECRET_ACCESS_KEY
    
  3. Crea un secreto con las credenciales de acceso del bucket de destino:

    kubectl create secret generic -n obs-system DST_BUCKET_SECRET_NAME 
    --from-literal=access-key-id=DST_BUCKET_ACCESS_KEY_ID   
    --from-literal=secret-access-key=DST_BUCKET_SECRET_ACCESS_KEY
    
  4. Crea un secreto con la autoridad de certificación para autenticar el endpoint del bucket de destino:

    kubectl create secret generic -n obs-system DST_BUCKET_CA_SECRET_NAME 
    --from-file="ca.crt"=CA_FILE
    

    Para continuar, obtén CA_FILE, DST_BUCKET_ACCESS_KEY_ID y DST_BUCKET_SECRET_ACCESS_KEY del bucket remoto. El funcionamiento de la herramienta de transferencia de datos depende de las ubicaciones específicas de los endpoints de transferencia.

  5. Crea una tarea de transferencia de registros:

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: JOB_NAME
      namespace: obs-system
    spec:
      template:
        spec:
          serviceAccountName: logs-transfer-sa
          containers:
            - name: storage-transfer-pod
              image: gcr.io/private-cloud-staging/storage-transfer:latest
              imagePullPolicy: Always
              command:
                - /storage-transfer
              args:
                - '--src_endpoint=SRC_BUCKET_ENDPOINT'
                - '--dst_endpoint=DST_BUCKET_ENDPOINT'
                - '--src_path=SRC_BUCKET_FULLY_QUALIFIED_NAME'
                - '--dst_path=DST_BUCKET_FULLY_QUALIFIED_NAME'
                - '--src_credentials=obs-system/SRC_BUCKET_SECRET_NAME'
                - '--dst_credentials=obs-system/DST_BUCKET_SECRET_NAME'
                - '--dst_ca_certificate_reference=obs-system/DST_BUCKET_CA_SECRET_NAME'
                - '--src_ca_certificate_reference=obs-system/trust-store-root-ext'
                - '--src_type=s3'
                - '--dst_type=s3'
                - '--bandwidth_limit=1G'
          restartPolicy: OnFailure.
    ---
    
  6. Espera a que se complete el trabajo de transferencia:

    kubectl wait --for=condition=complete job/JOB_NAME -n obs-system