Lambda 환경 변수를 KMS로 암호화하고 파이썬으로 해독

이번 주제



IAM의 암호화 키를 생성하고 암호화 키를 사용하여 Lambda의 환경 변수를 암호화합니다.
암호화한 것을 Python으로 복합화해, 표시해 본다.

암호화 키 만들기



IAM > 암호화 키를 선택합니다.


지역을 도쿄로 변경





화면 상단의 키 만들기를 누르십시오.





별칭을 입력하고 KMS를 선택합니다.



이번은 테스트이므로 「test/key」라고 했습니다.
입력·선택을 마치면 화면 하단의 “다음 단계”


태그 키 입력



입력하면 화면 하단의 "다음 단계"를 누르십시오.


키 관리자 설정



본래는, 제대로 설정하는 것입니다만, 이번은 lambda의 디폴트로 준비되어 있는 「lambda_basic_execution」를 설정했습니다.
그런 다음 자신의 AWS 로그인 ID도 설정합니다 (변경하거나 가능하도록)


키 사용자 설정



이쪽도 마찬가지로 「lambda_basic_execution」과 AWS의 자신의 ID를 설정해 둡니다.


완료



작성이 끝나면 키 목록에 표시됩니다.


Lambda 환경 변수 설정 및 암호화



서비스 > lambda를 선택하고 소스 인라인 아래의 환경 변수에 값을 넣고 암호화를 설정합니다.

환경 변수에 값을 넣기





암호화 설정 열기



전송 중 암호화를 위한 도우미 활성화 확인란을 선택하면 전송 중에 암호화할 KMS 키가 표시됩니다.


이전 단계에서 만든 KMS 키를 선택합니다.



목록 식이므로 클릭하면 설정된 목록이 표시됩니다.
방금 만든 KMS 키를 선택합니다.


환경 변수 암호화를 누르십시오.



KMS 키를 설정하면 환경 변수에 암호화 버튼이 표시되므로 누르십시오.






파이썬에서 환경 변수를 읽어보십시오.



Lambda에서 다음과 같은 소스를 나열합니다.
# coding: UTF-8

import os

def lambda_handler(event, context):
    print('~~~~~環境変数表示~~~~~')
    print(os.environ['test'])

저장하고 실행합니다.
로그에는 다음과 같이 표시되었습니다.
무사히 암호화되어있는 것 같습니다.


해독해보자



복호화는 간단했습니다.
아래와 같은 소스를 기재해, 실행해 봅니다.
# coding: UTF-8
from base64 import b64decode
import boto3
import os

def lambda_handler(event, context):
    kms = boto3.client('kms')
    decrypt_text = kms.decrypt(CiphertextBlob=b64decode(os.environ['test']))['Plaintext']

    print("~~~~~~~~~~~~~~復号化確認~~~~~~~~~~~~~~~~")
    print(os.environ['test'])
    print(decrypt_text)

실행 결과



요약.



환경 변수에 대한 암호화·복호화를 매우 간단하게 할 수 있었습니다.
굉장히 편리하네요 이거. 롤을 제대로 생각하면, 보안적으로도 괜찮은 생각이 듭니다.

좋은 웹페이지 즐겨찾기