파라미터 스토어 (AWS Systems Manager Parameter Store)

이규황·2023년 5월 23일
post-thumbnail

AWS 파라미터 스토어란 무엇이고 내가 파라미터 스토어를 어떻게 사용했었는지를 기록한다.

파라미터 스토어란?

AWS Systems Manager Parameter Store는 Amazon Web Services(AWS)에서 제공하는 서비스로, 애플리케이션의 구성 데이터 및 비밀을 안전하게 저장하고 관리하는 데 도움이 됩니다. 이 정보를 중앙에서 관리하고 액세스할 수 있으므로 애플리케이션 구성을 보다 쉽게 ​​유지 관리하고 업데이트할 수 있습니다.

Parameter Store를 사용하면 키-값 쌍을 매개변수로 저장할 수 있습니다. 여기서 값은 단순한 문자열이거나 암호화된 암호와 같은 보다 복잡한 데이터 유형일 수 있습니다. 이러한 매개변수는 경로와 같은 구조로 계층적으로 구성할 수 있으므로 대규모 매개변수 세트를 구성하고 관리하는 것이 편리합니다.

Parameter Store 사용의 주요 이점 중 하나는 다른 AWS 서비스와의 통합입니다. Amazon EC2 인스턴스, Lambda 함수 또는 Elastic Beanstalk 환경과 같은 AWS 리소스에 저장된 파라미터를 참조할 수 있습니다. 이렇게 하면 애플리케이션 코드에서 직접 값을 하드코딩할 필요 없이 리소스를 동적으로 구성하고 업데이트할 수 있습니다.

Parameter Store는 안전한 저장 및 액세스 제어를 위한 기능도 제공합니다. AWS Key Management Service(KMS)를 사용하여 민감한 파라미터를 암호화하고 세분화된 액세스 정책을 정의하여 파라미터를 검색하거나 수정할 수 있는 사람을 제어할 수 있습니다.

전반적으로 AWS Systems Manager Parameter Store는 애플리케이션의 구성 데이터 및 암호 관리를 간소화하여 매개변수를 중앙 집중화하고 보호하는 동시에 다른 AWS 서비스와의 간편한 통합을 제공합니다.

사용 목적

1) 파라미터 스토어 설정을 통해서 prod, dev stage의 따른 상수값으로 사용

2) 파라미터 스토어 설정을 통해서 민감정보(노출되면 안되는 정보)을 상수값으로 사용

실서버에 배포했을때, 민감정보의 노출을 막을 수 있다.

규칙 및 주의사항

항상 강조하지만, 개발자는 혼자 일하는 직업이 아니기때문에, 컨벤션을 맞추는 것이 아주아주 중요합니다. 때문에 파라미터 스토어에서 사용할 이름 규칙은 필수 입니다.

1) 파라미터 스토어

(1) Repo 이름 /서비스 이름/stage(dev or prod) / 변수명(대문자로 표시)

  • 변수명 naming 규칙 → 변수의 역할과 목적이 한눈에 들어날 수 있게 naming을 합니다.
    • ex) CREATE_CRMCREATE_CRM_URL
  1. 예) /Sun/internal/dev/SQLALCHEMY_DATABASE_URI
  2. 예) /Neptune/CT/dev/ACCESS_KEY

2) 파라미터 스토어 값 변경시 배포 필요

  1. 변경전 배포 설정된 CDK의 값이 변경 필요
  2. 파라미터 스토어에서 값을 변경해도, 이미 배포된 상태에서는 적용이 안됩니다.
  3. 파라미터 스토어의 값을 변경하면, 재배포를 해야, 변경된 값이 적용 됩니다.

WorkProcess

[1] AWS Systems Manager / 파라미터 스토어 설정

(1) AWS 접속

(2) 파라미터 스토어 검색

(3) 파라미터 스토어 설정

  1. 규칙
    1. Repo 이름 /서비스 이름/ 개발서버 or 실서버 / 불러오는 값(대문자로 표시)
    2. 예) /Neptune/CT/dev/ACCESS_KEY
  2. 설정 :
    1. 유형
    2. 보안 문자열 : 노출되면 안되는 key, token 일때 사용 ( .yml 파일에서 해당 값을 가져오기 위한 설정이 따로 필요합니다. )
    3. 문자열 : 단순 API URL 사용

    [2] OS.environ.get(““)을 통해 파라미터 스토어 설정된 값 불러오기

(1) 실제 개발할 때 OS.environ.get 을 통해 파라미터 스토어에 설정된 값 불러오기

[3] 배포시 환경변수 설정

참고 : Serverless Environment Variables

1) serverless frmework

보안때문에 가리게 되니깐... 이상하네용 ㅠㅠ

2) enviroment 설정

  1. 주의 : Intent에 주의

    1. ssm : Service Systems Manager
  2. 파라미터 스토어에 설정 주소값 확인

    1. /Neptune/CT/dev/CREATE_CRM
    2. /Neptune/CT/prod/CREATE_CRM
  3. enviroment 불러올 변수 확인( 각 함수에서 필요한 상수값만 불러와 사용하면 됩니다.)

  4. stage의 따른 불러오는 주소값 설정

  5. 보안 문자열 설정을 불러오는 방법 → ~true를 붙여서, 보안문자열 읽기 허용

    1. /Neptune/CT/dev/ACCESS_KEY~true
    2. /Neptune/CT/prod/ACCESS_SECRET~true

    [4] dev서버 배포 및 TEST 진행 후 Prod 배포 진행

  6. 설정한 상수값을 사용해서, 이상없이 API가 작동하는지 확인

  7. CT open api를 사용하기 위한 상수로 설정한 액세스 키 값이 이상없이 작동하는 지 확인

profile
도전중

0개의 댓글