Exporta registros a un bucket remoto

Puedes exportar registros de auditoría y operativos desde el dispositivo de Google Distributed Cloud (GDC) aislado a un bucket de almacenamiento remoto compatible con S3 con un trabajo de transferencia de almacenamiento. La descarga de estos registros te ayuda a cumplir con los requisitos de retención de cumplimiento a largo plazo y a realizar auditorías de seguridad externas.

Obtén roles de IAM

Para obtener los permisos que necesitas para exportar registros, pídele al administrador de IAM de tu organización que te otorgue el rol de administrador de transferencia de registros (logs-transfer-admin) en el espacio de nombres obs-system del clúster de infraestructura y el rol de visualizador de buckets de registros (logs-bucket-viewer)) en el espacio de nombres obs-system del plano de administración.

Para obtener más información sobre estos roles, consulta Prepara los permisos de IAM.

Obtén el extremo y el nombre completamente calificado del bucket de origen

  1. Establece KUBECONFIG en la API de administración de la organización:

    export KUBECONFIG=MANAGEMENT_API_KUBECONFIG_PATH
    
  2. Obtén el extremo del bucket de origen:

    • Para los registros de auditoría, haz lo siguiente:

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

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

    • Para los registros de auditoría, haz lo siguiente:

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

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

Obtén las credenciales de acceso del bucket de origen

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

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

    • Para los registros de auditoría, haz lo siguiente:

      kubectl get secret audit-logs-loki-all-s3-auth -n obs-system -o json | jq -r '.data."access-key-id"' | base64 -di
      
    • Para los registros operativos, haz lo siguiente:

      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 bucket de origen:

    • Para los registros de auditoría, haz lo siguiente:

      kubectl get secret audit-logs-loki-all-s3-auth -n obs-system -o json | jq -r '.data."secret-access-key"' | base64 -di
      
    • Para los registros operativos, haz lo siguiente:

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

Registros de transferencia

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

    export KUBECONFIG=INFRA_CLUSTER_KUBECONFIG_PATH
    
  2. Crea un Secret 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 Secret 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 Secret con la autoridad certificadora para autenticar el extremo 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 el CA_FILE, el DST_BUCKET_ACCESS_KEY_ID y el 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 extremos de transferencia.

  5. Crea un trabajo 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