AWS Lambda에서 AWS KMS 사용
액세스 키 및 암호, 메일 서버 도메인과 같은 Lambda 환경에서 자격 증명 정보 사용. 암호화해야 합니다.
여기서 해결책은 KMS를 사용하는 것입니다.
AWS KMS는 대칭 및 비대칭 CMK를 지원합니다.
대칭 CMK:
Represents a single 256-bit secret encryption key that never leaves AWS KMS unencrypted. To use your symmetric CMK, you must call AWS KMS.
비대칭 CMK:
Represents a mathematically related public key and private key pair that you can use for encryption and decryption or signing and verification, but not both. The private key never leaves AWS KMS unencrypted. You can use the public key within AWS KMS by calling the AWS KMS API operations, or download the public key and use it outside of AWS KMS.
1. 대칭 CMK(사용자 지정 마스터 키) 생성
2. 성배를 사용하여 Lambda 함수 생성
참조: Chalice Topics
2.1 새 성배 프로젝트 만들기
chalice new-project encrypt-test
2.2 app.py에서 함수 핸들러 만들기
import boto3
import os
from chalice import Chalice
from base64 import b64decode
app = Chalice(app_name='MyDecryptFunction')
app.debug = True
@app.lambda_function(name='MyDecryptFunction')
def lambda_handler(event, context):
encrypted = os.getenv('SES_ID')
decrypted = boto3.client('kms', region_name='ap-southeast-1').decrypt(
CiphertextBlob=b64decode(encrypted),
EncryptionContext={'LambdaFunctionName': os.getenv('AWS_LAMBDA_FUNCTION_NAME')}
)['Plaintext'].decode('utf-8')
app.log.debug(f"{decrypted}")
2.3 프로젝트 배포(현재 환경에서 기본 AWS 리전 사용)
chalice deploy
Creating deployment package.
Creating IAM role: encrypt-test-dev
Creating lambda function: encrypt-test-dev-MyDecryptFunction
Resources deployed:
- Lambda ARN: arn:aws:lambda:ap-southeast-1:1111111111111:function:encrypt-test-dev-MyDecryptFunction
3. 결과 확인
3.1. IAM 역할, 이를 업데이트하여 리소스를 제한할 수 있습니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:Decrypt"
],
"Resource": [
"*"
],
"Sid": "0f1ea010d9414ac08ac9f94a4e67bfa1"
},
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "arn:aws:logs:*:*:*"
}
]
}
3.2 람다 함수
4. 암호화 키 생성
5. 테스트 생성 및 실행
Reference
이 문제에 관하여(AWS Lambda에서 AWS KMS 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/vumdao/using-aws-kms-in-aws-lambda-2jm2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)