AWS 매개변수 및 암호 Lambda Extension을 사용하는 방법
AWS 파라미터 및 비밀 Lambda 확장 프로그램이란 무엇입니까?
https://aws.amazon.com/jp/about-aws/whats-new/2022/10/aws-parameters-secrets-lambda-extension/
이 확장은 AWS Systems Manager Parameter Store에서 매개변수를 검색하고 AWS Secrets Manager에서 암호를 검색하는 데 사용할 수 있습니다.
당신을 행복하게 만드는 것은 무엇입니까?
지금까지는 AWS SDK 또는 기타 수단을 사용하여 Lambda 함수 프로세스에서 매개 변수와 암호를 얻었습니다.
이 확장을 사용하면 Lambda 함수의 수명 주기 동안 이러한 값을 캐시하고 재사용할 수 있습니다. 이렇게 하면 매개변수와 암호를 검색하는 대기 시간과 비용이 줄어듭니다.
기본 사용법
자세한 내용은 각 문서를 참조하십시오.
https://docs.aws.amazon.com/systems-manager/latest/userguide/ps-integration-lambda-extensions.html
https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieving-secrets_lambda.html
확장 레이어를 Lambda 함수로 설정
Lambda Extension은 Lambda Layers를 구성하여 사용할 수 있습니다. Managed Console에서 AWS 매개변수 및 Secrets Lambda Extension은 AWS 계층에서 선택할 수 있습니다.
CLI 또는 다른 방법에서 구성할 때 게시된 계층의 ARN을 지정합니다. 각 리전의 ARN 목록은 설명서에 나와 있습니다.
함수에 HTTP GET 코드 작성
이 확장을 사용하면 AWS SDK에서 처리가 제거되지만 HTTP GET 요청으로 값을 검색하는 코드는 여전히 필요합니다. 샘플 코드는 이 게시물의 후반부를 참조하세요.
실행 역할에 대한 IAM 정책 변경
확장 프로그램은 Lambda 함수 자체를 실행하는 데 사용되는 IAM 역할의 자격 증명을 사용합니다. 따라서 파라미터와 암호를 검색하려면 적절한 IAM 정책을 설정해야 합니다. 예를 들어 Parameter Store의 경우 ssm:GetParameter 및 kms:Decrypt(SecureString을 사용하는 경우)가 필요합니다.
(선택 사항) 함수에 대한 환경 변수 설정
캐시에 대한 TTL, 로그 수준 등은 Lambda 함수에 대한 환경 변수를 설정하여 제어할 수 있습니다.
샘플 코드
Amazon Linux 2 AMI 퍼블릭 파라미터를 참조하는 예입니다.
참고 사항은 다음과 같습니다.
매개변수 이름의
/
를 인코딩해야 함const https = require('http');
exports.handler = function(event, context, callback) {
const options = {
hostname: 'localhost',
port: 2773,
path: '/systemsmanager/parameters/get/?name=%2Faws%2Fservice%2Fami-amazon-linux-latest%2Famzn-ami-hvm-x86_64-gp2',
headers: {
'X-Aws-Parameters-Secrets-Token': process.env.AWS_SESSION_TOKEN
},
method: 'GET'
};
const req = https.request(options, res => {
res.on('data', d => {
console.log("Response from cache: "+d);
return d;
});
});
req.on('error', error => {
console.error(error);
});
req.end();
};
실행 결과의 로그는 다음과 같습니다. 매개변수 값을 얻었습니다!
[AWS Parameters and Secrets Lambda Extension] 2022/10/19 06:51:08 PARAMETERS_SECRETS_EXTENSION_LOG_LEVEL is not present. Log level set to info.
[AWS Parameters and Secrets Lambda Extension] 2022/10/19 06:51:08 INFO Systems Manager Parameter Store and Secrets Manager Lambda Extension 1.0.94
[AWS Parameters and Secrets Lambda Extension] 2022/10/19 06:51:08 INFO Serving on port 2773
EXTENSION Name: AWSParametersAndSecretsLambdaExtension State: Ready Events: [INVOKE,SHUTDOWN]
START RequestId: bb5bcc53-38cc-42d7-9dc5-xxxxxxxxxxxx Version: $LATEST
[AWS Parameters and Secrets Lambda Extension] 2022/10/19 06:51:08 INFO ready to serve traffic
2022-10-19T06:51:09.247Z bb5bcc53-38cc-42d7-9dc5-xxxxxxxxxxxx INFO Response from cache: {"Parameter":{"ARN":"arn:aws:ssm:ap-northeast-1::parameter/aws/service/ami-amazon-linux-latest/amzn-ami-hvm-x86_64-gp2","DataType":"text","LastModifiedDate":"2022-10-04T17:56:51.889Z","Name":"/aws/service/ami-amazon-linux-latest/amzn-ami-hvm-x86_64-gp2","Selector":null,"SourceResult":null,"Type":"String","Value":"ami-0fb16641312307fa9","Version":49},"ResultMetadata":{}}
END RequestId: bb5bcc53-38cc-42d7-9dc5-xxxxxxxxxxxx
REPORT RequestId: bb5bcc53-38cc-42d7-9dc5-xxxxxxxxxxxx Duration: 796.05 ms Billed Duration: 797 ms Memory Size: 128 MB Max Memory Used: 76 MB Init Duration: 324.74 ms
이것이 다른 사람에게 도움이 되기를 바랍니다.
Reference
이 문제에 관하여(AWS 매개변수 및 암호 Lambda Extension을 사용하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aws-builders/how-to-use-aws-parameters-and-secrets-lambda-extension-16eg텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)