Vault backend storage용 Google Cloud Storage 구성
Vault backend storage용 Google Cloud Storage 구성
Google Cloud Storage storage backend는 Vault의 데이터를 Google Cloud Storage에 영구 저장하는 데 사용됩니다.
출처: 문서
본문
- 고가용성 – Google Cloud Storage storage backend는 고가용성을 지원합니다. Google Cloud Storage storage backend는 세션을 획득할 때 Vault 노드의 시스템 시간을 사용하므로, Vault 서버 간의 시계 오차는 잠금 경합을 일으킬 수 있습니다.
- 커뮤니티 지원 – Google Cloud Storage storage backend는 커뮤니티가 지원합니다. HashiCorp 직원의 검토를 거쳤지만 기술에 대해 그렇게 잘 알지 못할 수 있습니다. 문제가 발생하면 원저자에게 문의하도록 안내받을 수 있습니다.
storage "gcs" {
bucket = "my-storage-bucket"
}
스키마 또는 Google Cloud Storage에 대한 자세한 내용은 Google Cloud Storage 문서를 참고하세요.
gcs 설정
Google Cloud Storage Vault storage backend를 사용하려면 Google Cloud Storage 버킷을 만들 권한이 있는 Google Cloud Platform 계정이 있어야 합니다.
Google Cloud Storage Vault storage backend를 사용하려면 Google Cloud Platform 계정이 있어야 합니다. API 또는 웹 인터페이스를 사용해 gsutil 명령으로 버킷을 만드세요. 버킷 이름은 전체 Google Cloud에서 전역적으로 고유해야 하므로 고유한 이름을 선택하세요:
$ gsutil mb gs://mycompany-vault-data
데이터가 전송 중 및 저장 시 암호화되더라도 노출을 제한하도록 버킷에 적절한 권한을 설정하세요. IAM 권한을 사용해 Vault의 Google Cloud와의 상호 작용을 storage 버킷의 객체로 제한하는 서비스 계정을 만드는 것이 좋을 수 있습니다.
다음은 서비스 계정에 적절한 권한을 부여하는 샘플 Google Cloud IAM 정책입니다. 값을 서비스 계정의 값으로 바꾸세요.
{
"bindings": [
{
"role": "roles/storage.objectAdmin",
"members": ["serviceAccount:[email protected]"]
}
]
}
그런 다음 Vault에 서비스 계정의 자격 증명 파일을 구성 옵션으로 제공하세요.
스키마 또는 Google Cloud Storage에 대한 자세한 내용은 Google Cloud Storage 문서를 참고하세요.
gcs 인증
Google Cloud Storage Vault storage backend는 공식 Google Cloud Golang SDK를 사용합니다. 즉 Google Cloud에 자격 증명을 제공하는 일반적인 방법을 지원합니다.
-
환경 변수
GOOGLE_APPLICATION_CREDENTIALS. 이는 보통 서비스 계정용 Google Cloud 자격 증명 파일의 경로로 지정됩니다. 이 환경 변수가 있으면 그 결과 자격 증명이 사용됩니다. 자격 증명이 유효하지 않으면 오류가 반환됩니다. -
기본 인스턴스 자격 증명. 환경 변수가 없으면 기본 서비스 계정 자격 증명이 사용됩니다.
서비스 계정에 대한 자세한 내용은 Google Cloud Service Accounts 문서를 참고하세요.
이 storage backend를 사용하려면 서비스 계정에 다음 최소 scope가 있어야 합니다:
https://www.googleapis.com/auth/devstorage.read_write
gcs 파라미터
-
bucket(string: <required>)– storage에 사용할 버킷의 이름을 지정합니다. 또는 이 파라미터를 생략하고GOOGLE_STORAGE_BUCKET환경 변수를 사용해 버킷 이름을 설정할 수 있습니다. 환경 변수와 스탠자의 파라미터가 모두 설정되면 환경 변수 값이 우선합니다. -
chunk_size(string: "8192")– 단일 요청으로 보낼 최대 크기(킬로바이트)를 지정합니다. 0으로 설정하면 전체 객체를 한 번에 보내려 시도하지만 실패 시 재시도하지 않습니다. Vault에 큰 객체를 저장하지 않는다면 메모리 사용을 줄이므로 낮은 값(최소 256)으로 설정하는 것을 권장합니다. 또는 이 파라미터를 생략하고GOOGLE_STORAGE_CHUNK_SIZE환경 변수를 사용해 청크 크기를 설정할 수 있습니다. 환경 변수와 스탠자의 파라미터가 모두 설정되면 환경 변수 값이 우선합니다. -
max_parallel(int: 128)- 수행할 최대 병렬 작업 수를 지정합니다.
고가용성 파라미터
ha_enabled(string: "false")- 고가용성 모드가 활성화되었는지 여부를 지정합니다. 부울 값이지만 "true" 또는 "false" 같은 문자열로 지정됩니다. 또는 이 파라미터를 생략하고GOOGLE_STORAGE_HA_ENABLED환경 변수를 사용해 고가용성을 활성화/비활성화할 수 있습니다. 환경 변수와 스탠자의 파라미터가 모두 설정되면 환경 변수 값이 우선합니다.
gcs 예시
고가용성
이 예시는 고가용성을 활성화한 Google Cloud Storage를 구성하는 방법을 보여줍니다.
api_addr = "https://vault-leader.my-company.internal"
storage "gcs" {
bucket = "mycompany-vault-data"
ha_enabled = "true"
}
사용자 지정 청크 크기
이 예시는 업로드용 사용자 지정 청크 크기를 설정하는 방법을 보여줍니다. Vault에 큰 데이터를 업로드할 때 더 낮은 값을 설정하면 Vault의 메모리 소비를 줄일 수 있지만 아웃바운드 요청 수는 늘어납니다.
storage "gcs" {
bucket = "mycompany-vault-data"
chunk_size = "512"
}