2.5. 마운트된 보안을 사용하도록 GitOps 관리 리소스 구성
배포에 볼륨 마운트 구성을 추가하고 마운트된 보안을 사용하도록 컨테이너 Pod를 구성하여 GitOps 관리 리소스를 구성해야 합니다.
사전 요구 사항
- AWS Secrets Manager 리소스가 GitOps 리포지토리에 저장되어 있습니다.
- AWS Secrets Manager에서 보안을 마운트하도록 SSCSI(Secrets Store Container Storage Interface) 드라이버가 구성되어 있습니다.
프로세스
GitOps 관리 리소스를 구성합니다. 예를 들어
app-taxi
애플리케이션 배포에 볼륨 마운트 구성을 추가하고100-deployment.yaml
파일은/environments/dev/apps/app-taxi/services/config/
디렉터리에 있다고 가정합니다.배포 YAML 파일에 볼륨 마운트를 추가하고 시크릿 공급자 클래스 리소스 및 마운트된 보안을 사용하도록 컨테이너 Pod를 구성합니다.
YAML 파일의 예
apiVersion: apps/v1 kind: Deployment metadata: name: taxi namespace: dev 1 spec: replicas: 1 template: metadata: # ... spec: containers: - image: nginxinc/nginx-unprivileged:latest imagePullPolicy: Always name: taxi ports: - containerPort: 8080 volumeMounts: - name: secrets-store-inline mountPath: "/mnt/secrets-store" 2 readOnly: true resources: {} serviceAccountName: default volumes: - name: secrets-store-inline csi: driver: secrets-store.csi.k8s.io readOnly: true volumeAttributes: secretProviderClass: "my-aws-provider" 3 status: {} # ...
- 업데이트된 리소스 YAML 파일을 GitOps 리포지토리로 내보냅니다.
- Argo CD UI에서 대상 애플리케이션 페이지에서 REFRESH 를 클릭하여 업데이트된 배포 매니페스트를 적용합니다.
- 모든 리소스가 대상 애플리케이션 페이지에서 성공적으로 동기화되었는지 확인합니다.
Pod 볼륨 마운트의 AWS Secrets 관리자에서 시크릿에 액세스할 수 있는지 확인합니다.
Pod 마운트의 보안을 나열합니다.
$ oc exec <deployment_name>-<hash> -n <namespace> -- ls /mnt/secrets-store/
명령 예
$ oc exec taxi-5959644f9-t847m -n dev -- ls /mnt/secrets-store/
출력 예
<secret_name>
Pod 마운트에서 보안을 확인합니다.
$ oc exec <deployment_name>-<hash> -n <namespace> -- cat /mnt/secrets-store/<secret_name>
명령 예
$ oc exec taxi-5959644f9-t847m -n dev -- cat /mnt/secrets-store/testSecret
출력 예
<secret_value>