매개변수를 사용하여 AWS를 안전하게 체크 아웃하는 액세스 키 저장

4260 단어 SSMAWS

이마


최근 AWS의 액세스 키가 GiitHub로 잘못 올라간 경우도 있다고 한다.
이를 막기 위한 수단으로 환경 변수에 수치를 삽입하고 읽는 방법 등이 있다고 하는데 AWS의 SystemManager에 매개 변수 저장 기능이 있다는 것을 알고 있다.
이번에는 이 기능을 사용해서 파이톤에서 접근 키를 얻으려고 합니다.

추기


다음과 같은 의견을 받았습니다.
액세스 키를 사용하지 않고 IAM 스크롤 막대를 사용하는 것이 좋습니다.
맞습니다...이번에는 우리의 여러 가지 상황에 액세스 키가 필요하기 때문에 이 방법으로 액세스 키를 얻었다.
그러니 그런 경우가 없다면 IAM 캐릭터를 쓰세요.
또한 이 매개변수는 ECS 등을 통해 환경 변수를 설정할 때 유용한 기능으로 저장됩니다.예를 들어 DB의 비밀번호 등을 명문으로 환경 변수 등을 채우지 않아도 된다고 열거했다.
(참조: ECS에서 기밀 정보를 환경 변수로 간단히 확장할 수 있습니다!

환경 확인

Amazon Linux AMI release 2018.03

실현 방법


GUI를 사용한 작업(물론 CLI도 가능)
  • AWS SystemManager의 매개 변수 상점에 입장(도쿄 지역여기.)
  • 이런 화면이 나온다
  • 클릭 매개 변수의 생성
  • 다음 형식 채우기
  • 이름: "/project/keyname"처럼 기입(증가/즉 "/project/dev/keyname"같은 관리도 가능)
  • 설명: 값의 설명
  • 활용 프레임워크: 선택 기준(대규모 시스템에서 상한치 증가 필요)
  • 유형: 원하는 유형을 선택합니다.안전한 문자열을 선택하면 KMS는 데이터를 암호화합니다.
  • 값: 저장하려는 값을 입력합니다
  • .
    이번에는 아래의 설정으로 수치를 만들겠습니다.값을 입력한 후 パラメータの作成를 누릅니다.
    名前: /project/test
    説明: test param
    利用枠: 標準
    タイプ: 安全な文字列
    KMSの主要なソース(安全な文字列を選んだ場合選択): 現在のアカウント
    KMSキーID: alias/aws/ssm
    値: hello project
    タグ: 空
    
    잘 되면 이런 음반을 만들 수 있을 것 같아요.
    이상은 콘솔 쪽에서 진행됐습니다.
    다음은 EC2 인스턴스에서의 작업입니다.

  • aws-Pramtore-py 설치pip install aws-paramstore-py특별한 의존성 없이 설치해야 한다.

  • 다음 코드를 실행하면 값을 얻을 수 있습니다hello project
    from boto3.session import Session
    import aws_paramstore_py as paramstore
    
    ssm = Session(profile_name='default').client('ssm', region_name='ap-northeast-1')
    params = paramstore.get('/project', decryption=True, ssm_client=ssm)
    print(params['test'])
    
  • 가장 적합한 곳


    그러나 KMS로 암호화하면 aws_paramstore_py 되돌아오는 값이 암호화된 정보를 직접 전달하기 때문에 적합하지 않다.
    저자의 GitHub를 보니 decryption=False 옵션이 있었다.
    이걸 True로 만들면 디코딩이 돼요.대단히 기쁘다.

    참고 자료

  • 매개변수 스토어에서 EC2로 환경 변수 설정하기
  • 써요?매개 변수 저장소
  • akirakoyasu/aws-paramstore-py
  • 좋은 웹페이지 즐겨찾기