Mengekspor log ke bucket jarak jauh

Anda dapat mengekspor log audit dan operasional dari peralatan Google Distributed Cloud (GDC) dengan air gap ke bucket penyimpanan jarak jauh yang kompatibel dengan S3 menggunakan tugas transfer penyimpanan. Dengan memindahkan log ini, Anda dapat memenuhi persyaratan retensi kepatuhan jangka panjang dan melakukan audit keamanan eksternal.

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 infra dan peran Logs Bucket Viewer (logs-bucket-viewer) di namespace obs-system di bidang pengelolaan.

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

Mendapatkan endpoint dan nama yang sepenuhnya memenuhi syarat dari bucket sumber

  1. Tetapkan 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 yang sepenuhnya memenuhi syarat dari bucket sumber:

    • 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
    

    Untuk melanjutkan, dapatkan CA_FILE, DST_BUCKET_ACCESS_KEY_ID, dan DST_BUCKET_SECRET_ACCESS_KEY dari bucket jarak jauh. Operasi alat transfer data bergantung pada lokasi spesifik endpoint transfer.

  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