Redis ElastiCache 데이터베이스 시크릿 엔진
Redis ElastiCache 데이터베이스 시크릿 엔진
Redis ElastiCache는 Vault의 데이터베이스 시크릿 엔진이 지원하는 플러그인 중 하나예요. 이 플러그인은 기존에 관리되는 롤(role)에 대한 정적 자격 증명을 생성해요.
데이터베이스 시크릿 엔진을 어떻게 구성하는지에 대한 자세한 내용은 데이터베이스 시크릿 엔진 문서를 참고해 주세요.
출처: 문서
본문
지원 기능(Capabilities)
| 플러그인 이름 | 루트 자격 증명 회전 | 동적 롤 | 정적 롤 | 사용자 이름 커스터마이징 |
|---|---|---|---|---|
| redis-elasticache-database-plugin | 아니요 | 아니요 | 예 | 아니요 |
설정(Setup)
데이터베이스 시크릿 엔진이 아직 활성화되어 있지 않다면 먼저 활성화해요.
$ vault secrets enable database
Success! Enabled the database secrets engine at: database/
기본적으로 시크릿 엔진은 엔진 이름 그대로의 경로에 활성화돼요. 다른 경로에 두고 싶다면 -path 인자를 사용하면 됩니다.
다음으로 Vault에 올바른 플러그인과 연결 구성을 설정해요.
$ vault write database/config/my-redis-elasticache-cluster \
plugin_name="redis-elasticache-database-plugin" \
url="primary-endpoint.my-cluster.xxx.yyy.cache.amazonaws.com:6379" \
access_key_id="AKI***" \
secret_access_key="ktriNYvULAWLzUmTGb***" \
region=us-east-1 \
allowed_roles="*"
주의할 점은 access_key_id, secret_access_key, region 파라미터가 선택 사항이라는 거예요. 생략하면 인증이 AWS 자격 증명 공급자 체인으로 폴백(fallback)돼요.
username과 password 파라미터는 더 이상 권장되지 않지만(Deprecated) 하위 호환성을 위해 지원돼요. 각각 access_key_id와 secret_access_key 파라미터로 대체되었습니다.
Redis ElastiCache 시크릿 엔진은 ElastiCache 사용자를 관리할 수 있는 충분한 권한을 가진 AWS 자격 증명을 사용해야 해요. 아래 IAM 정책 샘플을 예시로 사용할 수 있는데, <region>과 <account-id>는 본인의 환경에 맞게 바꿔야 해요.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Action": [
"elasticache:ModifyUser",
"elasticache:DescribeUsers"
],
"Resource": "arn:aws:elasticache:<region>:<account-id>:user:*"
}
]
}
사용법(Usage)
시크릿 엔진을 구성한 뒤에는 정적 롤을 작성해 자격 증명 생성을 활성화해요.
정적 롤(Static roles)
Vault 안의 이름을 기존 Redis ElastiCache 사용자에 매핑하는 정적 롤을 구성해요.
$ vault write database/static-roles/my-static-role \
db_name="my-redis-elasticache-cluster" \
username="my-existing-redis-user" \
rotation_period=5m
Success! Data written to: database/static-roles/my-static-role
/static-creds 엔드포인트에서 자격 증명을 가져와요.
$ vault read database/static-creds/my-static-role
Key Value
--- -----
last_vault_rotation 2022-09-14T11:45:57.24715105-04:00
password GKdS6qY-UtVAMpcD9iuu
rotation_period 5m
ttl 4m48s
username my-existing-redis-user
참고로 새 비밀번호가 ElastiCache에 구성이 완료되기까지 수 분이 걸릴 수 있어요. 새 Redis ElastiCache 연결을 맺을 때는 재시도(retry) 전략을 쓰는 것을 권장해요. 이렇게 하면 대상 ElastiCache 클러스터에 아직 적용되지 않은 비밀번호를 사용하려다 발생하는 오류를 막을 수 있어요.
API
구성 가능한 전체 옵션 목록은 Redis ElastiCache Database Plugin API 페이지에서 확인할 수 있어요.
데이터베이스 시크릿 엔진의 HTTP API에 대한 자세한 내용은 Database Secrets Engine API 페이지를 참고해 주세요.
더 알아보기 (Learn more)
- 데이터베이스 시크릿 엔진 문서에서 시크릿 엔진 구성 방법을 살펴보세요.
- Redis ElastiCache 플러그인 API 페이지에서 세부 옵션을 확인해 보세요.