Mengekspor log ke bucket jarak jauh

Halaman ini menjelaskan cara mengekspor log audit dan operasional di perlengkapan air-gapped Google Distributed Cloud (GDC) ke bucket jarak jauh menggunakan alat transfer penyimpanan.

Mendapatkan peran IAM

Untuk mendapatkan izin yang diperlukan untuk mengekspor log, minta Admin IAM Organisasi Anda untuk memberi Anda peran Logs Transfer Admin (logs-transfer-admin) di namespace obs-system di cluster infrastruktur dan peran Logs Bucket Viewer (logs-bucket-viewer)) di namespace obs-system di management plane.

Untuk mengetahui informasi selengkapnya tentang peran ini, lihat Siapkan izin IAM.

Mendapatkan endpoint dan nama bucket sumber yang sepenuhnya memenuhi syarat

  1. Setel KUBECONFIG ke Org Management API:

    export KUBECONFIG=MANAGEMENT_API_KUBECONFIG_PATH
    
  2. Dapatkan endpoint bucket sumber:

    • Untuk log audit:

      kubectl get bucket audit-logs-loki-all -n obs-system -o json | jq '.status.endpoint'
      
    • Untuk log operasional:

      kubectl get bucket ops-logs-loki-all -n obs-system -o json | jq '.status.endpoint'
      
  3. Dapatkan nama bucket sumber yang sepenuhnya memenuhi syarat:

    • Untuk log audit:

      kubectl get bucket audit-logs-loki-all -n obs-system -o json | jq '.status.fullyQualifiedName'
      
    • Untuk log operasional:

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

Mendapatkan kredensial akses bucket sumber

  1. Tetapkan KUBECONFIG ke cluster Org Infra:

      export KUBECONFIG=INFRA_CLUSTER_KUBECONFIG_PATH
    
  2. Dapatkan ID kunci akses bucket sumber:

    • Untuk log audit:

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

      kubectl get secret ops-logs-loki-all-s3-auth -n obs-system -o json | jq -r '.data."access-key-id"' | base64 -di
      
  3. Dapatkan kunci akses rahasia bucket sumber:

    • Untuk log audit:

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

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

Log transfer

  1. Tetapkan KUBECONFIG ke cluster Org Infra:

    export KUBECONFIG=INFRA_CLUSTER_KUBECONFIG_PATH
    
  2. Buat secret dengan kredensial akses bucket sumber:

    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. Buat secret dengan kredensial akses bucket tujuan:

    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. Buat secret dengan certificate authority untuk mengautentikasi endpoint bucket tujuan:

    kubectl create secret generic -n obs-system DST_BUCKET_CA_SECRET_NAME 
    --from-file="ca.crt"=CA_FILE
    
  5. Buat tugas transfer log:

    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. Tunggu hingga tugas transfer selesai:

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