Logs in einen Remote-Bucket exportieren

Auf dieser Seite wird beschrieben, wie Sie die Audit- und Betriebsprotokolle in der Air-Gap-Appliance von Google Distributed Cloud (GDC) mithilfe des Storage Transfer Service in einen Remote-Bucket exportieren.

IAM-Rollen abrufen

Bitten Sie Ihren IAM-Administrator der Organisation, Ihnen die Rolle „Logs Transfer Admin“ (logs-transfer-admin) im Namespace obs-system im Infrastrukturcluster und die Rolle „Logs Bucket Viewer“ (logs-bucket-viewer)) im Namespace obs-system in der Verwaltungsebene zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Exportieren von Logs benötigen.

Weitere Informationen zu diesen Rollen finden Sie unter IAM-Berechtigungen vorbereiten.

Endpunkt und vollständig qualifizierten Namen des Quell-Buckets abrufen

  1. Legen Sie KUBECONFIG auf die Org Management API fest:

    export KUBECONFIG=MANAGEMENT_API_KUBECONFIG_PATH
    
  2. Rufen Sie den Endpunkt des Quell-Buckets ab:

    • Für Audit-Logs gilt:

      kubectl get bucket audit-logs-loki-all -n obs-system -o json | jq '.status.endpoint'
      
    • Für Betriebslogs:

      kubectl get bucket ops-logs-loki-all -n obs-system -o json | jq '.status.endpoint'
      
  3. Rufen Sie den vollständig qualifizierten Namen des Quell-Buckets ab:

    • Für Audit-Logs gilt:

      kubectl get bucket audit-logs-loki-all -n obs-system -o json | jq '.status.fullyQualifiedName'
      
    • Für Betriebslogs:

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

Anmeldedaten für den Quell-Bucket abrufen

  1. Legen Sie KUBECONFIG auf den Org Infra-Cluster fest:

      export KUBECONFIG=INFRA_CLUSTER_KUBECONFIG_PATH
    
  2. Rufen Sie die Zugriffsschlüssel-ID des Quell-Buckets ab:

    • Für Audit-Logs gilt:

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

      kubectl get secret ops-logs-loki-all-s3-auth -n obs-system -o json | jq -r '.data."access-key-id"' | base64 -di
      
  3. Rufen Sie den geheimen Zugriffsschlüssel des Quell-Buckets ab:

    • Für Audit-Logs gilt:

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

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

Übertragungs-Logs

  1. Legen Sie KUBECONFIG auf den Org Infra-Cluster fest:

    export KUBECONFIG=INFRA_CLUSTER_KUBECONFIG_PATH
    
  2. Erstellen Sie ein Secret mit den Zugriffsanmeldedaten des Quell-Buckets:

    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. Erstellen Sie ein Secret mit den Zugangsdaten für den Ziel-Bucket:

    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. Erstellen Sie ein Secret mit der Zertifizierungsstelle zur Authentifizierung des Endpunkts des Ziel-Buckets:

    kubectl create secret generic -n obs-system DST_BUCKET_CA_SECRET_NAME 
    --from-file="ca.crt"=CA_FILE
    
  5. So erstellen Sie einen Logübertragungsjob:

    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. Warten Sie, bis der Übertragungsjob abgeschlossen ist:

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