아마존 RDS, 아마존 Aurora, 아마존 Redshift 또는 아마존 DocumentDB 시크릿에 대한 자동 로테이션을 설정합니다. - AWS Secrets Manager

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

아마존 RDS, 아마존 Aurora, 아마존 Redshift 또는 아마존 DocumentDB 시크릿에 대한 자동 로테이션을 설정합니다.

이 자습서에서는 데이터베이스 Lambda 함수에 의한 회전 시크릿을 설정하는 방법을 설명합니다. 교체는 주기적으로 보안 암호를 업데이트하는 프로세스입니다. 보안 암호를 교체하면 보안 암호와 데이터베이스 모두에서 보안 인증 정보가 업데이트됩니다. Secrets Manager에서 데이터베이스 보안 암호에 대한 자동 교체를 설정할 수 있습니다.

콘솔을 사용하여 교체를 설정하려면 먼저 교체 전략을 선택해야 합니다. 그런 다음 교체에 대한 보안 암호를 구성하여 Lambda 교체 함수(아직 없는 경우)를 생성합니다. 콘솔은 Lambda 함수 실행 역할에 대한 권한도 설정합니다. 마지막 단계에서는 Lambda 교체 함수가 네트워크를 통해 Secrets Manager와 데이터베이스 모두에 액세스할 수 있는지 확인합니다.

주의

자동 순환을 활성화하려면 Lambda 순환 함수에 대한 IAM 실행 역할을 생성하고 권한 정책을 연결할 수 있는 권한이 있어야 합니다. iam:CreateRoleiam:AttachRolePolicy 권한이 모두 필요합니다. 이러한 권한을 부여하면 자격 증명이 자신에게 모든 권한을 부여할 수 있습니다.

1단계: 교체 전략 선택 및 (선택 사항) 슈퍼유저 보안 암호 생성

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

대체 사용자 전략을 선택하는 경우 데이터베이스 보안 암호 생성하고 데이터베이스 슈퍼유저 보안 인증을 저장해야 합니다. 교체에서는 첫 번째 사용자를 복제하므로 슈퍼유저 보안 인증을 가진 보안 암호가 필요하며, 대부분의 사용자는 해당 권한이 없습니다. Amazon RDS 프록시는 대체 사용자 전략을 지원하지 않는다는 점에 유의하십시오.

2단계: 교체 구성 및 교체 함수 생성

Amazon RDS, Amazon DocumentDB, Amazon Redshift 보안 암호 교체를 켜려면
  1. https://console.aws.amazon.com/secretsmanager/에서 Secrets Manager 콘솔을 엽니다.

  2. 보안 암호(Secrets) 페이지에서 보안 암호를 선택합니다.

  3. 보안 암호 세부 정보(Secret details) 페이지의 교체 구성(Rotation configuration) 섹션에서 교체 편집(Edit rotation)을 선택합니다.

  4. Edit rotation configuration(교체 구성 편집) 대화 상자에서 다음을 수행합니다.

    1. Automatic rotation(자동 교체)을 켭니다.

    2. Rotation schedule(교체 일정)에서 Schedule expression builder(예약 표현식 빌더) 또는 Schedule expression(예약 표현식)으로 일정(UTC 표준 시간대)을 입력합니다. Secrets Manager는 일정을 rate() 또는 cron() 표현식으로 저장합니다. 교체 기간은 Start time(시작 시간)을 지정하지 않는 한 자정에 자동으로 시작됩니다. 보안 암호를 4시간마다 교체할 수 있습니다. 자세한 정보는 로테이션 스케줄을 참조하세요.

    3. (선택 사항) Window duration(지속 시간)에서 Secrets Manager가 보안 암호를 교체할 기간의 길이를 입력합니다. 예를 들어 3h는 3시간입니다. 기간은 그 다음 교체 기간까지 연장되지 않아야 합니다. 시간 단위의 교체 일정에서 지속 시간을 지정하지 않으면 한 시간 후에 자동으로 종료됩니다. 일 단위의 교체 일정인 경우 해당 날짜의 하루가 끝나면 자동으로 종료됩니다.

    4. (선택 사항) 변경 사항을 저장할 때 보안 암호가 교체되게 하려면 보안 암호를 저장할 때 즉시 교체(Rotate immediately when the secret is stored)를 선택합니다. 확인란의 선택을 취소하는 경우에는 설정한 예약에 따라 첫 번째 교체가 시작됩니다.

      예를 들어 3단계와 4단계를 아직 완료하지 않아서 교체에 실패하는 경우 Secrets Manager는 교체 프로세스를 여러 번 재시도합니다.

    5. 교체 함수(Rotation function)에서 다음 중 하나를 수행합니다.

      • Create a new Lambda function(새 Lambda 함수 생성)을 선택하고 새 함수의 이름을 입력합니다. Secrets Manager에서 함수 이름의 시작 부분에 SecretsManager를 추가합니다. Secrets Manager는 적절한 템플릿을 기반으로 함수를 생성하고 Lambda 실행 역할에 필요한 권한을 설정합니다.

      • 다른 보안 암호에 사용한 교체 함수를 재사용하려면 Use an existing Lambda function(기존 Lambda 함수 사용)을 선택합니다. Recommended VPC configurations(권장 VPC 구성)에 나열된 교체 함수에는 데이터베이스와 동일한 VPC 및 보안 그룹이 있으므로, 함수가 데이터베이스에 액세스하는 데 도움이 됩니다.

    6. 교체 전략에서 단일 사용자 또는 대체 사용자 전략을 선택합니다. 자세한 정보는 1단계: 교체 전략 선택 및 (선택 사항) 슈퍼유저 보안 암호 생성을 참조하세요.

  5. 저장(Save)을 선택합니다.

3단계: (선택 사항) 교체 함수에 대한 추가 권한 조건 설정

교체 함수에 대한 리소스 정책에서는 컨텍스트 키 aws:SourceAccount를 포함하여 Lambda가 혼동된 대리자로 사용되지 않도록 하는 것이 좋습니다. 일부 AWS 서비스의 경우 혼란스러운 대리자 시나리오를 피하려면 글로벌 조건 aws:SourceArn키와 aws:SourceAccount글로벌 조건 키를 모두 사용할 AWS 것을 권장합니다. 그러나 교체 함수 정책에 aws:SourceArn 조건을 포함하는 경우 교체 함수는 해당 ARN에서 지정한 보안 암호를 교체하는 데만 사용할 수 있습니다. 여러 보안 암호에 대해 교체 기능을 사용할 수 있도록 컨텍스트 키 aws:SourceAccount만 포함하는 것이 좋습니다.

교체 함수 리소스 정책을 업데이트하려면
  1. Secrets Manager 콘솔에서 보안 암호를 선택한 다음 세부 정보 페이지의 Rotation configuration(교체 구성)에서 Lambda 교체 함수를 선택합니다. Lambda 콘솔이 열립니다.

  2. Lambda에 리소스 기반 정책 사용의 지침에 따라 aws:sourceAccount 조건을 추가합니다.

    "Condition": { "StringEquals": { "AWS:SourceAccount": "123456789012" } },

AWS 관리형 키 aws/secretsmanager 이외의 KMS 키를 사용하여 보안 암호를 암호화할 경우 Secrets Manager가 Lambda 실행 역할에 키 사용 권한을 부여합니다. SecretARN 암호화 컨텍스트를 사용하여 암호 해독 기능의 사용을 제한할 수 있으므로 교체 함수 역할은 교체를 담당하는 암호의 암호 해독에만 액세스할 수 있습니다.

교체 함수의 실행 역할 업데이트
  1. Lambda 교체 함수에서 구성을 선택한 다음 실행 역할에서 역할 이름을 선택합니다.

  2. kms:EncryptionContext:SecretARN 조건을 추가하려면 역할 권한 정책 수정의 지침을 따르세요.

    "Condition": { "StringEquals": { "kms:EncryptionContext:SecretARN": "SecretARN" } },

4단계: 교체 함수에 대한 네트워크 액세스 설정

자세한 정보는 Lambda 로테이션 함수를 위한 네트워크 액세스을 참조하세요.

다음 단계

회전 문제 해결 AWS Secrets Manager을 참조하세요.