fargate 삽질 3

hyuckhoon.ko·2023년 5월 15일
0

TIL

목록 보기
28/69

1. base.py에서 SECRET_KEY이슈

decouple config와 aws_sercrets 공존 불가?!

2. aws secrets manager 이슈

aws_secrets.py에서 boto3로 시크릿값 사용시, credentail 에러 발생
(botocore.exceptions.NoCredentialsError: Unable to locate credentials)

해결 : task-definition에 ecsTaskExecutionRole 추가
디폴트가 아니므로 매번 추가해줘야 함.

3. docker-compose.yml 오류

import os
import boto3
import json

from botocore.exceptions import NoCredentialsError


class SecretManager:
    def __init__(self):
        ENV = os.environ.get("DJANGO_ENV")
        if not ENV:
            raise NoCredentialsError
        self.ENV = ENV

    def get_secrets(self):
        return self._read_secrets()

    def _read_secrets(self):
        if self.ENV == "development":
            return self._read_from_local_dot_env()
        else:
            return self._read_from_aws_secrets_manager()

    def _read_from_local_dot_env(self):
        secrets = {}
        with open('config/settings/.env') as f:
            for line in f:
                if line.strip() == '' or line.startswith('#'):
                    continue
                key, value = line.strip().split('=', 1)
                secrets[key] = value
        return secrets

    def _read_from_aws_secrets_manager(self):
        secret_name = aws_secrets_manager 이름
        region_name = 지역

        session = boto3.session.Session()
        client = session.client(service_name='secretsmanager', region_name=region_name)

        response = client.get_secret_value(SecretId=secret_name)
        secret_string = response['SecretString']
        return json.loads(secret_string)

위와 같이 로컬의 환경키 주입 방식으로 변경으로 인한 기존 docker-compose.yml 오류 발생

4. 로컬에서 secrets manager 호출 불가하도록 설정하기

0개의 댓글

관련 채용 정보