- Eks SecretProviderClass RDS 비밀번호 변경되면 deployment 업데이트 하기2024년 12월 27일
- wngnl05
- 작성자
- 2024.12.27.오후02:54
먼저 RDS를 생성할때 비밀번호를 Secret Manager로 생성해줘야 합니다.
1. EKS IAM 역활 및 정책
더보기EKS 포드가 AWS Secrets Manager의 비밀에 접근할 수 있도록 IAM 정책을 생성합니다,
이 정책은 EKS 포드에서 사용하는 서비스 계정에 연결합니다.
Secret_Manager_ARN=''
aws iam create-policy --policy-name wngnl-SecretsManagerAccessPolicy --policy-document "{ \"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \"Action\": [ \"secretsmanager:GetSecretValue\", \"secretsmanager:DescribeSecret\" ], \"Resource\": \"$Secret_Manager_ARN\" } ] }"
환경 변수 설정
CLUSTER_NAME="<클러스터 이름>" NAMESPACE="<네임스페이스>" SERVICE_ACCOUNT_NAME="<서비스 어카운트 이름>"
ServiceAccount 만들기 && SecretProvideClass 역활 만들기
ex. Pod에 부여할 역활이 있으면 wngnl-SecretsManagerAccessPolicy정책에 추가해줘야 합니다.
POLICY_ARN=$(aws iam list-policies --query 'Policies[?PolicyName==`wngnl-SecretsManagerAccessPolicy`].Arn' --output text) eksctl create iamserviceaccount \ --cluster=$CLUSTER_NAME \ --namespace=$NAMESPACE \ --name=$SERVICE_ACCOUNT_NAME \ --attach-policy-arn=$POLICY_ARN \ --override-existing-serviceaccounts \ --approve OIDC_PROVIDER_URL=$(aws eks describe-cluster --name $CLUSTER_NAME --query "cluster.identity.oidc.issuer" --output text | sed 's/^https:\/\///') OIDC_PROVIDER_ARN=$(aws iam list-open-id-connect-providers --query "OpenIDConnectProviderList[?ends_with(Arn, '$OIDC_PROVIDER_URL')].Arn" --output text) aws iam create-role --role-name wngnl-SecretProviderClass-Role --assume-role-policy-document "{ \"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \"Principal\": { \"Federated\": \"$OIDC_PROVIDER_ARN\" }, \"Action\": \"sts:AssumeRoleWithWebIdentity\", \"Condition\": { \"StringEquals\": { \"$OIDC_PROVIDER_URL:sub\": \"system:serviceaccount:$NAMESPACE:$SERVICE_ACCOUNT_NAME\" } } } ] }" # 역활에 정책 연결하기 aws iam attach-role-policy --role-name wngnl-SecretProviderClass-Role --policy-arn $POLICY_ARN
2. Secret Store CSI Driver 설치
helm repo add secrets-store-csi-driver https://kubernetes-sigs.github.io/secrets-store-csi-driver/charts helm install csi-secrets-store secrets-store-csi-driver/secrets-store-csi-driver --namespace kube-system --set syncSecret.enabled=true --set enableSecretRotation=true kubectl get daemonsets -n kube-system -l app.kubernetes.io/instance=csi-secrets-store helm repo add aws-secrets-manager https://aws.github.io/secrets-store-csi-driver-provider-aws helm install -n kube-system secrets-provider-aws aws-secrets-manager/secrets-store-csi-driver-provider-aws kubectl get daemonsets -n kube-system -l app=secrets-store-csi-driver-provider-aws
1-secret-provider-class.yaml && 3-deployment.yaml은 수정해줘야 합니다
curl -o secret-provider-class.yaml https://raw.githubusercontent.com/wngnl-dev/AWS/main/EKS/SecretClassProvider/RDS_SecretManager/secret-provider-class.yaml curl -o deployment.yaml https://raw.githubusercontent.com/wngnl-dev/AWS/main/EKS/SecretClassProvider/RDS_SecretManager/deployment.yaml
kms 에 추가
{ "Sid": "oidc", "Effect": "Allow", "Principal": { "AWS": "arn:aws:sts::654654489681:assumed-role/eksctl-skills-eks-cluster-addon-iamserviceacc-Role1-0YNuDMwAsmGW/1719229920865225558" }, "Action": "kms:*", "Resource": "*" },
'Aws' 카테고리의 다른 글
DynamoDB + ApiGateway를 이용해서 Serverless API 만들어보기 (0) 2024.12.27 S3 정적 호스팅 없이 CloudFront S3 호스팅 하기 (0) 2024.12.27 Eks Bottlerocket 노드그룹 만들기 (1) 2024.12.27 Vpc Flowlog 역활 만들기 (0) 2024.12.27 IAM USER로 로그인 하면 CloudWatch에 Log 기록하기 (1) 2024.12.27 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)