를 사용하여 자동 회전을 설정합니다. AWS CLI - AWS Secrets Manager

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

를 사용하여 자동 회전을 설정합니다. AWS CLI

이 자습서에서는 를 Lambda 함수에 의한 회전 사용하여 설정하는 방법을 설명합니다 AWS CLI. 보안 암호를 교체하면 보안 암호와 보안 암호가 사용되는 데이터베이스 또는 서비스 모두에서 보안 인증이 업데이트됩니다.

콘솔을 사용하여 회전을 설정할 수도 있습니다. 데이터베이스 보안 암호는 데이터베이스 보안 암호 자동 교체(콘솔) 섹션을 참조하세요. 다른 유형의 보안 암호에 대해서는 비데이터베이스 비밀번호의 자동 교체 (콘솔) 섹션을 참조하세요.

를 사용하여 순환을 설정하려면 데이터베이스 암호를 교체하는 경우 먼저 순환 전략을 선택해야 합니다. AWS CLI대체 사용자 전략을 선택하는 경우 별도의 보안 암호를 데이터베이스 슈퍼유저의 보안 인증과 함께 저장해야 합니다. 그런 다음 교체 함수 코드를 작성합니다. Secrets Manager는 함수의 기반이 될 수 있는 템플릿을 제공합니다. 그러면 코드를 사용하여 Lambda 함수를 생성하고 Lambda 함수와 Lambda 실행 역할 모두에 대한 권한을 설정합니다. 다음 단계는 Lambda 함수가 네트워크를 통해 Secrets Manager와 데이터베이스 또는 서비스 모두에 액세스할 수 있는지 확인하는 것입니다. 마지막으로 교체에 대한 보안 암호를 구성합니다.

데이터베이스 암호에 대한 사전 요구 사항: 순환 전략 선택

Secrets Manager에서 제공하는 전략에 대한 자세한 내용은 을 참조하십시오Lambda 함수 회전 전략.

옵션 1: 단일 사용자 전략

단일 사용자 전략을 선택한 경우 1단계를 계속할 수 있습니다.

옵션 2: 대체 사용자 전략

대체 사용자 전략을 선택하는 경우 다음을 수행해야 합니다.

Amazon RDS 프록시는 대체 사용자 전략을 지원하지 않는다는 점에 유의하십시오.

1단계: 회전 함수 코드 작성

보안 암호를 교체하려면 교체 함수가 필요합니다. 교체 함수는 Secrets Manager에서 보안 암호를 교체하기 위해 호출하는 Lambda 함수입니다. 자세한 정보는 Lambda 함수에 의한 회전을 참조하세요. 이 단계에서는 암호와 암호가 사용되는 서비스 또는 데이터베이스를 업데이트하는 코드를 작성합니다.

Secrets Manager는 아마존 RDS, 아마존 오로라, 아마존 레드시프트 및 아마존 DocumentDB 데이터베이스 시크릿을 위한 템플릿을 제공합니다. 교체 함수 템플릿

회전 함수 코드를 작성하려면
  1. 다음 중 하나를 수행하십시오.

    • 회전 함수 템플릿 목록을 확인하세요. 서비스 및 로테이션 전략과 일치하는 코드가 있으면 코드를 복사하세요.

    • 다른 유형의 비밀의 경우 로테이션 함수를 직접 작성합니다. 지침은 Lambda 회전 함수 섹션을 참조하세요.

  2. 파일을 필요한 종속 항목과 함께 ZIP 파일 my-function.zip 에 저장합니다.

2단계: Lambda 함수 만들기

이 단계에서는 1단계에서 생성한 ZIP 파일을 사용하여 Lambda 함수를 생성합니다. 또한 Lambda 실행 역할을 설정합니다. 이 역할은 함수가 호출될 때 Lambda가 맡는 역할입니다.

Lambda 교체 함수 및 실행 역할을 생성하려면
  1. Lambda 실행 역할에 대한 신뢰 정책을 생성한 후 JSON 파일로 저장합니다. 예제와 자세한 내용은 을 참조하십시오. 에 대한 Lambda 순환 함수 실행 역할 권한 AWS Secrets Manager 정책은 다음을 충족해야 합니다.

    • 역할이 보안 암호에 대해 Secrets Manager 작업을 호출할 수 있도록 허용합니다.

    • 예를 들어, 역할이 암호의 대상 서비스를 호출하도록 허용하여 새 암호를 만들 수 있습니다.

  2. Lambda 실행 역할을 생성하고 호출을 통해 이전 단계에서 생성한 신뢰 정책을 적용합니다. iam create-role

    aws iam create-role \ --role-name rotation-lambda-role \ --assume-role-policy-document file://trust-policy.json
  3. lambda create-function을 호출하여 ZIP 파일에서 Lambda 함수를 생성합니다.

    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
  4. 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-account 123456789012

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을 참조하세요.