임대 개수 quota(lease count quota) 만들기
임대 개수 quota(lease count quota) 만들기
임대 개수 quota를 사용하면 마운트별로 생성되는 임대 수를 제한하고, 하드 리밋(hard limit)이 적합한 Vault 인스턴스의 리소스 소비를 제어할 수 있습니다.
출처: 문서
본문
시작하기 전에
- Vault 인스턴스의 root 또는 관리 namespace에 접근 권한이 있는지 확인하세요. 임대 개수 quota를 수정하는 것은 제한된 활동입니다.
1단계: 적절한 세분성(granularity) 결정
임대 한도의 세분성은 Vault 클러스터의 성능에 영향을 줄 수 있습니다. 특히 임대 한도로 인해 거부되는 요청 수가 급격히 늘어나면 audit 로깅 증가가 Vault 성능에 영향을 줄 수 있습니다.
과거 시스템 동작을 검토해 quota 한도를 상속 가능(inheritable)하게 할지, 특정 역할(role)로 한정할지 판단하세요.
2단계: count quota 적용
vault write와 sys/quotas/lease-count/{quota-name} 마운트 경로를 사용해 새 임대 개수 quota를 만듭니다:
$ vault write \
sys/quotas/lease-count/<QUOTA_NAME> \
name="<QUOTA_NAME>" \
path="<PLUGIN_MOUNT_PATH>" \
role="<OPTIONAL_AUTHN_ROLE>" \
max_leases=<LEASE_LIMIT>
예를 들어 기본 마운트 경로에서 approle 플러그인의 webapp 역할에 webapp-tokens라는 대상 quota 제한을 만들려면:
$ vault write \
sys/quotas/lease-count/webapp-tokens \
name="webapp-tokens" \
path="auth/approle" \
role="webapp" \
max_leases=100
Success! Data written to: sys/quotas/lease-count/webapp-tokens
quota 설정이 포함된 페이로드 파일을 만듭니다:
{
"name": "<QUOTA_NAME>",
"path": "<PLUGIN_MOUNT_PATH>",
"role": "<OPTIONAL_AUTHN_ROLE>",
"max_leases": <LEASE_LIMIT>,
}
예를 들어 webapp-tokens quota를 만들려면:
{
"name": "webapp-tokens",
"path": "auth/approle",
"role": "webapp",
"max_leases": 100,
}
/sys/quotas/lease-count/{quota-name} 엔드포인트를 호출해 임대 개수 quota를 적용합니다. 예를 들어 webapp-tokens quota를 적용하려면:
$ curl \
--request POST \
--header "X-Vault-Token: ${VAULT_TOKEN}" \
--data @payload.json \
${VAULT_ADDR}/v1/sys/quotas/lease-count/webapp-tokens
무음 엔드포인트
/sys/quotas/lease-count/{quota-name}엔드포인트는 성공 시 아무 출력도 반환하지 않습니다.
임대 개수 quota를 정의하려면 vault_quota_lease_count 리소스 유형을 사용하세요. 예를 들어 webapp-tokens quota를 만들려면:
resource "vault_quota_lease_count" "webapp-tokens" {
name = "webapp-tokens"
path = "auth/approle"
role = "webapp"
max_leases = 100
depends_on = [ vault_approle_auth_backend_role.webapp ]
}
3단계: quota 설정 확인
vault read와 sys/quotas/lease-count/{quota-name} 마운트 경로를 사용해 임대 개수 quota 세부 정보를 표시합니다:
$ vault read sys/quotas/lease-count/<QUOTA_NAME>
예를 들어 webapp-tokens quota 세부 정보를 읽으려면:
$ vault read sys/quotas/lease-count/webapp-tokens
Key Value
--- -----
counter 0
inheritable true
max_leases 100
name webapp-tokens
path auth/approle/
role webapp
type lease-count
sys/quotas/lease-count/{quota-name} 엔드포인트를 호출해 임대 개수 quota를 표시할 수도 있습니다. 예를 들어 webapp-tokens quota를 읽으려면:
$ curl \
--header "X-Vault-Token: ${VAULT_TOKEN}" \
--request GET \
--silent \
${VAULT_ADDR}/v1/sys/quotas/lease-count/webapp-tokens | jq
{
"request_id": "188e22f1-dc1a-251a-a0a1-005e256fe70f",
"lease_id": "",
"renewable": false,
"lease_duration": 0,
"data": {
"counter": 0,
"inheritable": false,
"max_leases": 100,
"name": "webapp-tokens",
"path": "auth/approle/",
"role": "webapp",
"type": "lease-count"
},
"wrap_info": null,
"warnings": null,
"auth": null
}
다음 단계
사전 예방적 모니터링과 주기적인 사용 분석은 문제가 악화되기 전에 잠재적 문제를 식별하는 데 도움이 됩니다.
- 일반적인 Vault 리소스 quota에 대해 자세히 알아보세요.
- 요청 볼륨을 제어하는 rate limit quota에 대해 알아보세요.
- audit 디바이스 로그를 조회하는 방법을 알아보세요.
- 일반적인 건강 검진을 위해 핵심 Vault 메트릭을 검토하세요.