기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
를 사용하여 자동 교체 설정 AWS CLI
이 자습서에서는를 사용하여 Lambda 함수로 교체를 설정하는 방법을 설명합니다 AWS CLI. 보안 암호를 교체하면 보안 암호와 보안 암호가 사용되는 데이터베이스 또는 서비스 모두에서 보안 인증이 업데이트됩니다.
콘솔을 사용하여 교체를 설정할 수도 있습니다. 데이터베이스 보안 암호는 데이터베이스 보안 암호 자동 교체(콘솔) 섹션을 참조하세요. 다른 유형의 보안 암호에 대해서는 비데이터베이스 보안 암호 자동 교체(콘솔) 섹션을 참조하세요.
를 사용하여 교체를 설정하려면 데이터베이스 보안 암호를 교체하는 AWS CLI경우 먼저 교체 전략을 선택해야 합니다. 대체 사용자 전략을 선택하는 경우 별도의 보안 암호를 데이터베이스 슈퍼유저의 보안 인증과 함께 저장해야 합니다. 그런 다음 교체 함수 코드를 작성합니다. Secrets Manager는 함수의 기반이 될 수 있는 템플릿을 제공합니다. 그러면 코드를 사용하여 Lambda 함수를 생성하고 Lambda 함수와 Lambda 실행 역할 모두에 대한 권한을 설정합니다. 다음 단계에서는 Lambda 함수가 네트워크를 통해 Secrets Manager와 데이터베이스 또는 서비스 모두에 액세스할 수 있는지 확인합니다. 마지막으로 교체에 대한 보안 암호를 구성합니다.
단계:
데이터베이스 보안 암호의 사전 조건: 교체 전략 선택
Secrets Manager에서 제공하는 전략에 대한 내용은 Lambda 함수 교체 전략 단원을 참조하세요.
옵션 1: 단일 사용자 전략
단일 사용자 전략을 선택할 경우 1단계를 계속 진행하면 됩니다.
옵션 2: 대체 사용자 전략
대체 사용자 전략을 선택할 경우 다음을 수행해야 합니다.
-
보안 암호를 생성하고 데이터베이스 슈퍼 사용자 자격 증명을 저장합니다. 대체 사용자 교체에서는 첫 번째 사용자를 복제하므로 슈퍼 사용자 보안 인증을 가진 보안 암호가 필요하며, 대부분의 사용자는 해당 권한이 없습니다.
-
수퍼유저 보안 암호ARN의를 원래 보안 암호에 추가합니다. 자세한 내용은 AWS Secrets Manager 보안 암호의 JSON 구조 단원을 참조하십시오.
Amazon RDS Proxy는 대체 사용자 전략을 지원하지 않습니다.
1단계: 교체 함수 코드 작성
보안 암호를 교체하려면 교체 함수가 필요합니다. 교체 함수는 Secrets Manager에서 보안 암호를 교체하기 위해 호출하는 Lambda 함수입니다. 자세한 내용은 Lambda 함수로 교체 단원을 참조하십시오. 이 단계에서는 보안 암호를 업데이트하고, 보안 암호가 사용되는 서비스 또는 데이터베이스를 업데이트하는 코드를 작성합니다.
Secrets Manager는에서 Amazon RDS, Amazon Aurora, Amazon Redshift 및 Amazon DocumentDB 데이터베이스 보안 암호에 대한 템플릿을 제공합니다교체 함수 템플릿.
교체 함수 코드를 작성하는 방법
-
다음 중 하나를 수행합니다.
교체 함수 템플릿 목록을 확인합니다. 서비스 및 교체 전략과 일치하는 항목이 있을 경우 해당 코드를 복사합니다.
다른 유형의 보안 암호의 경우 교체 함수를 직접 작성할 수 있습니다. 지침은 Lambda 교체 함수 단원을 참조하십시오.
파일을 필요한 종속성과
my-function.zip
함께 ZIP 파일에 저장합니다.
2단계: Lambda 함수 만들기
이 단계에서는 1단계에서 생성한 ZIP 파일을 사용하여 Lambda 함수를 생성합니다. Lambda 실행 역할은 함수가 호출될 때 Lambda가 맡는 역할입니다.
Lambda 교체 함수 및 실행 역할을 생성하려면
Lambda 실행 역할에 대한 신뢰 정책을 생성하고 JSON 파일로 저장합니다. 예제와 추가 정보는 AWS Secrets Manager에 대한 Lambda 교체 함수 실행 역할 권한 섹션을 참조하세요. 정책은 다음을 충족해야 합니다.
역할이 보안 암호에 대해 Secrets Manager 작업을 호출할 수 있도록 허용합니다.
역할이 보안 암호가 사용되는 서비스를 직접적으로 호출하여 새 암호를 생성하도록 허용합니다.
-
iam create-role
을 호출하여 Lambda 실행 역할을 생성하고 이전 단계에서 생성한 신뢰 정책을 적용합니다.aws iam create-role \ --role-name
rotation-lambda-role
\ --assume-role-policy-document file://trust-policy.json
-
를 호출하여 ZIP 파일에서 Lambda 함수를 생성합니다
lambda create-function
.aws lambda create-function \ --function-name my-rotation-function \ --runtime python3.7 \ --zip-file fileb://
my-function.zip
\ --handler .handler \ --role arn:aws:iam::123456789012
:role/service-role/rotation-lambda-role
-
Secrets Manager가
lambda add-permission
을 호출하여 호출할 수 있도록 Lambda 함수에 대한 리소스 정책을 설정합니다.aws lambda add-permission \ --function-name
my-rotation-function
\ --action lambda:InvokeFunction \ --statement-id SecretsManager \ --principal secretsmanager.amazonaws.com \ --source-account123456789012
3단계: 네트워크 액세스 설정
자세한 내용은 Lambda 교체 함수에 대한 네트워크 액세스 단원을 참조하십시오.
4단계: 보안 암호에 대한 교체 구성
보안 암호에 대한 자동 교체를 켜려면 rotate-secret
을 호출합니다. cron()
또는 rate()
일정 표현식을 사용하여 교체 일정을 설정하고 교체 기간을 설정할 수 있습니다. 자세한 내용은 교체 일정 단원을 참조하십시오.
aws secretsmanager rotate-secret \ --secret-id MySecret \ --rotation-lambda-arn arn:aws:lambda:
Region
:123456789012
:function:my-rotation-function
\ --rotation-rules "{\"ScheduleExpression\": \"cron(0 16 1,15 * ? *)
\", \"Duration\": \"2h
\"}"
다음 단계
AWS Secrets Manager 교체 문제 해결을(를) 참조하세요.