내용으로 건너뛰기

지원되지 않는 데이터베이스에 대해 Secrets Manager 보안 암호를 사용하여 교체 함수를 생성하려면 어떻게 해야 합니까?

3분 분량
0

AWS Secrets Manager 보안 암호에 대한 AWS Lambda 함수를 생성하려고 합니다. 데이터베이스 또는 서비스에서 자동 교체 함수를 지원하지 않습니다.

해결 방법

전제 조건: AWS Command Line Interface(AWS CLI)를 설치하고 구성합니다.

참고: AWS CLI 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 문제 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.

Lambda 교체 함수를 위한 코드 생성

지침은 비-데이터베이스 AWS Secrets Manager 보안 암호에 대한 자동 교체 설정을 참조하십시오.

일반 교체 함수 템플릿을 기반으로 AWS CloudFormation 변경 세트 생성

  1. create-cloud-formation-change-set AWS CLI 명령을 실행합니다.
  2. --stack-name을 CloudFormation 스택의 이름으로 바꿉니다.
  3. --parameter-overrides를 AWS 리전에 대한 Secrets Manager 리전 엔드포인트 및 템플릿이 생성하는 Lambda 교체 함수의 이름으로 바꿉니다.

create-cloud-formation-change-set AWS CLI 명령의 예:

aws serverlessrepo create-cloud-formation-change-set --application-id arn:aws:serverlessrepo:us-east-1:297356227824:applications/SecretsManagerRotationTemplate --stack-name MyLambdaCreationStack --parameter-overrides Name=endpoint,Value=https://secretsmanager.REGION.amazonaws.com Name=functionName,Value=MySecretsManagerRotationFunction --capabilities CAPABILITY_IAM CAPABILITY_RESOURCE_POLICY

참고: arn:aws:serverlessrepo:us-east-1:297356227824:applications/SecretsManagerRotationTemplate의 ARN을 표시된 대로 정확히 사용해야 합니다.

CloudFormation 변경 세트를 사용하여 스택 업데이트

create-cloud-formation-change-set 명령은 ApplicationId, ChangeSetId, SemanticVersionStackId 값을 반환합니다.

다음 단계를 완료하십시오.

  1. execute-change-set 명령을 실행할 때 change-set-nameChangeSetId 값으로 바꿉니다.
  2. execute-change-set AWS CLI 명령을 실행합니다.
    aws cloudformation execute-change-set --change-set-name arn:aws:cloudformation:region:123456789012:changeSet/EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE/EXAMPLE2-90ab-cdef-fedc-ba987EXAMPLE

CloudFormation 스택은 Lambda 함수와 AWS Identity and Access Management(IAM) 역할을 생성합니다. IAM 역할에는 Lambda 함수에 필요한 권한이 있습니다.

Lambda 함수 생성 확인

list-functions AWS CLI 명령을 실행합니다.

aws lambda list-functions

Output
{
    ...
    "FunctionName": "MySecretsManagerRotationFunction",
    ...
    "FunctionArn": "arn:aws:lambda:region:123456789012:function:MySecretsManagerRotationFunction",
    ...
}

참고: FunctionName 값은 --parameter-overrides 옵션에 지정된 함수 이름과 일치합니다.

Amazon Virtual Private Cloud에 대한 Lambda 함수 액세스 구성

데이터베이스 또는 서비스가 Amazon Virtual Private Cloud(Amazon VPC)에 있는 경우 update-function-configuration 명령을 실행하여 Amazon VPC에서 실행되도록 Lambda 교체 함수를 구성합니다. VPC 서브넷 ID와 보안 그룹 ID를 제공해야 합니다. 자세한 내용은 Lambda 함수에 Amazon VPC의 리소스에 대한 액세스 권한 부여를 참조하십시오.

참고: 데이터베이스 또는 서비스가 Amazon VPC에 있지 않은 경우에는 이 단계를 건너뛰십시오.

update-function-configuration AWS CLI 명령의 예:

$ aws lambda update-function-configuration --function-name your-lambda-function \
--vpc-config SubnetIds=subnet-076c28105d486f3bd,subnet-0af00c796ccdc725f,SecurityGroupIds=sg-0aed64f81acc4c037

Secrets Manager에 대한 Amazon VPC 엔드포인트 생성

데이터베이스 또는 서비스 및 Lambda 교체 함수가 있는 Amazon VPC에서 인터넷에 액세스할 수 없는 경우 Amazon VPC 엔드포인트를 생성하십시오. Amazon VPC의 프라이빗 서비스 엔드포인트를 구성하여 Secrets Manager에 액세스하고 VPC 내 엔드포인트에서 교체 함수를 활성화합니다. create-vpc-endpoint AWS CLI 명령을 실행합니다.

참고: 데이터베이스 또는 서비스가 Amazon VPC에 있지 않은 경우에는 이 단계를 건너뛰십시오.

$ aws ec2 create-vpc-endpoint --vpc-id  vpc-0abb11f5a28a8abe7 --vpc-endpoint-type Interface \
--service-name com.amazonaws.your-region.secretsmanager  --subnet-ids subnet-076c28105d486f3bd subnet-0af00c796ccdc725f \
--security-group-ids sg-0bacf4bbed67e4df5

Lambda 함수와 데이터베이스 또는 서비스 간의 네트워크 연결 설정

Lambda 함수가 필요한 네트워크 포트를 통해 데이터베이스 또는 서비스로 라우팅할 수 있는지 확인합니다. 포트 및 라우팅 요구 사항은 데이터베이스 또는 서비스 및 관련 VPC 구성에 따라 다릅니다.

참고: 데이터베이스 또는 서비스가 Amazon VPC에 있지 않은 경우에는 이 단계를 건너뛰십시오.

사용 사례에 맞게 교체 함수 사용자 지정

교체 템플릿은 createSecretfinishSecret 단계를 자동으로 구현합니다. 사용 사례 및 데이터베이스에 대해 setSecrettestSecret 단계를 구현하려면 Lambda 함수를 수정해야 합니다. 자세한 내용은 교체 함수의 4단계를 참조하십시오.

보안 암호에 대한 교체 켜기

--rotation-rulesAutomaticallyAfterDays 파라미터를 사용하여 교체 간의 일수를 지정합니다.

aws secretsmanager rotate-secret --secret-id production/MyAwesomeAppSecret --rotation-lambda-arn arn:aws:lambda:region:123456789012:function:MySecretsManagerRotationFunction --rotation-rules AutomaticallyAfterDays=7

자세한 내용은 AWS Secrets Manager 보안 암호 교체를 참조하십시오.

관련 정보

AWS Secrets Manager 교체 함수 템플릿

Virtual Private Cloud 내에서 AWS Secrets Manager 서비스에 연결하는 방법

AWS Secrets Manager 보안 암호를 사용하는 AWS 서비스

AWS 공식업데이트됨 9달 전
댓글 없음