• 프로필사진
    Home
  • Portfolio
  • github [#ffffff] Created with Sketch.
    Github
  • linkedin
    Linkedin
  • Setting
  • Posting
    • 분류 전체보기 (105)
      • Aws (96)
      • Backend (3)
      • Extension (1)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • Eks SecretProviderClass RDS 비밀번호 변경되면 deployment 업데이트 하기
        2024년 12월 27일
        • wngnl05
        • 작성자
        • 2024.12.27.오후02:54

        Github

         

        먼저 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일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
      • 1. EKS IAM 역활 및 정책
      • 2. Secret Store CSI Driver 설치
      • kms 에 추가
      • 안녕하세요
      • 감사해요
      • 잘있어요

      티스토리툴바

      단축키

      내 블로그

      내 블로그 - 관리자 홈 전환
      Q
      Q
      새 글 쓰기
      W
      W

      블로그 게시글

      글 수정 (권한 있는 경우)
      E
      E
      댓글 영역으로 이동
      C
      C

      모든 영역

      이 페이지의 URL 복사
      S
      S
      맨 위로 이동
      T
      T
      티스토리 홈 이동
      H
      H
      단축키 안내
      Shift + /
      ⇧ + /

      * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.