您可以使用存储空间转移作业,将审核日志和操作日志从 Google Distributed Cloud (GDC) 网闸隔离设备导出到远程 S3 兼容存储桶。 分流这些日志有助于您满足长期合规性保留要求,并进行外部安全审核。
获取 IAM 角色
如需获得导出日志所需的权限,请让您的组织 IAM 管理员为您授予基础架构集群中 obs-system 命名空间内的 Logs Transfer Admin (logs-transfer-admin) 角色,以及管理平面中 obs-system 命名空间内的 Logs Bucket Viewer (logs-bucket-viewer)) 角色。
如需详细了解这些角色,请参阅准备 IAM 权限。
获取来源存储桶的端点和完全限定名称
将
KUBECONFIG设置为 Org Management API:export KUBECONFIG=MANAGEMENT_API_KUBECONFIG_PATH获取来源存储桶的端点:
对于审核日志:
kubectl get bucket audit-logs-loki-all -n obs-system -o json | jq '.status.endpoint'对于运维日志:
kubectl get bucket ops-logs-loki-all -n obs-system -o json | jq '.status.endpoint'
获取源存储桶的完全限定名称:
对于审核日志:
kubectl get bucket audit-logs-loki-all -n obs-system -o json | jq '.status.fullyQualifiedName'对于运维日志:
kubectl get bucket ops-logs-loki-all -n obs-system -o json | jq '.status.fullyQualifiedName'
获取来源存储桶的访问凭证
将 KUBECONFIG 设置为组织基础设施集群:
export KUBECONFIG=INFRA_CLUSTER_KUBECONFIG_PATH获取来源存储桶的访问密钥 ID:
对于审核日志:
kubectl get secret audit-logs-loki-all-s3-auth -n obs-system -o json | jq -r '.data."access-key-id"' | base64 -di对于运维日志:
kubectl get secret ops-logs-loki-all-s3-auth -n obs-system -o json | jq -r '.data."access-key-id"' | base64 -di
获取源存储桶的私有访问密钥:
对于审核日志:
kubectl get secret audit-logs-loki-all-s3-auth -n obs-system -o json | jq -r '.data."secret-access-key"' | base64 -di对于运维日志:
kubectl get secret ops-logs-loki-all-s3-auth -n obs-system -o json | jq -r '.data."secret-access-key"' | base64 -di
转移日志
将
KUBECONFIG设置为 Org Infra 集群:export KUBECONFIG=INFRA_CLUSTER_KUBECONFIG_PATH使用来源存储桶的访问凭据创建 Secret:
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使用目标存储桶的访问凭据创建 Secret:
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使用证书授权机构创建 Secret,以对目标存储桶的端点进行身份验证:
kubectl create secret generic -n obs-system DST_BUCKET_CA_SECRET_NAME --from-file="ca.crt"=CA_FILE如需继续,请从远程存储桶中获取
CA_FILE、DST_BUCKET_ACCESS_KEY_ID和DST_BUCKET_SECRET_ACCESS_KEY。数据传输工具的操作取决于传输端点的具体位置。创建日志转移作业:
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. ---等待转移作业完成:
kubectl wait --for=condition=complete job/JOB_NAME -n obs-system