2장. GitOps와 함께 Secrets Store CSI 드라이버를 사용하여 안전하게 보안 관리
이 가이드에서는 OpenShift Container Platform 4.14 이상의 GitOps Operator와 SSCSI(Secrets Store Container Storage Interface) 드라이버를 통합하는 프로세스를 안내합니다.
2.1. GitOps와 함께 Secrets Store CSI 드라이버를 사용하여 보안 관리 개요
일부 애플리케이션에는 암호 및 사용자 이름과 같은 민감한 정보가 필요합니다. 이 정보는 적절한 보안 관행으로 숨겨져 있어야 합니다. RBAC(역할 기반 액세스 제어)가 클러스터에 제대로 구성되지 않았기 때문에 중요한 정보가 노출되면 API 또는 etcd 액세스 권한이 있는 모든 사용자가 시크릿을 검색하거나 수정할 수 있습니다.
네임스페이스에서 Pod를 생성할 권한이 있는 모든 사용자는 해당 RBAC를 사용하여 해당 네임스페이스의 보안을 읽을 수 있습니다. SSCSI Driver Operator를 사용하면 외부 시크릿 저장소를 사용하여 중요한 정보를 안전하게 저장하고 Pod에 제공할 수 있습니다.
OpenShift Container Platform SSCSI 드라이버를 GitOps Operator와 통합하는 프로세스는 다음 절차로 구성됩니다.
2.1.1. 혜택
SSCSI 드라이버를 GitOps Operator와 통합하면 다음과 같은 이점이 있습니다.
- GitOps 워크플로우의 보안 및 효율성 향상
- 배포 Pod에 대한 보안 보안 연결을 볼륨으로 용이하게 합니다.
- 민감한 정보에 안전하고 효율적으로 액세스 할 수 있도록
2.1.2. 보안 저장소 공급자
Secrets Store CSI Driver Operator와 함께 다음 보안 저장소 공급자를 사용할 수 있습니다.
- AWS Secrets Manager
- AWS Systems Manager 매개변수 저장소
- Microsoft Azure Key Vault
예를 들어 SSCSI Driver Operator가 있는 시크릿 저장소 공급자로 AWS Secrets Manager를 사용하는 것이 좋습니다. 다음 예제에서는 AWS Secrets Manager의 시크릿을 사용할 준비가 된 GitOps 리포지토리의 디렉터리 구조를 보여줍니다.
GitOps 리포지토리의 디렉터리 구조 예
├── config │ ├── argocd │ │ ├── argo-app.yaml │ │ ├── secret-provider-app.yaml 1 │ │ ├── ... │ └── sscsid 2 │ └── aws-provider.yaml 3 ├── environments │ ├── dev 4 │ │ ├── apps │ │ │ └── app-taxi 5 │ │ │ ├── ... │ │ ├── credentialsrequest-dir-aws 6 │ │ └── env │ │ ├── ... │ ├── new-env │ │ ├── ...
- 2
aws-provider.yaml
파일을 저장하는 디렉터리입니다.- 3
- AWS Secrets Manager 공급자를 설치하고 해당 공급자를 위한 리소스를 배포하는 구성 파일입니다.
- 1
- 애플리케이션을 생성하고 AWS Secrets Manager용 리소스를 배포하는 구성 파일입니다.
- 4
- 배포 Pod 및 인증 정보 요청을 저장하는 디렉터리입니다.
- 5
SecretProviderClass
리소스를 저장하여 시크릿 저장소 공급자를 정의하는 디렉터리입니다.- 6
credentialsrequest.yaml
파일을 저장하는 폴더입니다. 이 파일에는 배포 Pod에 보안을 마운트하기 위한 인증 정보 요청 구성이 포함되어 있습니다.