비데이터베이스 AWS Secrets Manager 비밀번호에 대한 자동 교체 설정 - AWS Secrets Manager

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

비데이터베이스 AWS Secrets Manager 비밀번호에 대한 자동 교체 설정

이 자습서에서는 데이터베이스가 아닌 암호를 Lambda 함수에 의한 회전 설정하는 방법을 설명합니다. 교체는 주기적으로 보안 암호를 업데이트하는 프로세스입니다. 보안 암호를 교체하면 보안 암호와 보안 암호가 사용되는 데이터베이스 또는 서비스 모두에서 보안 인증이 업데이트됩니다.

데이터베이스 보안 암호는 데이터베이스 보안 암호 자동 교체(콘솔) 섹션을 참조하세요.

주의

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

1단계: 일반 순환 함수 만들기

시작하려면 Lambda 회전 함수를 생성하십시오. 시크릿을 교체하는 코드는 포함되어 있지 않으므로 이후 단계에서 작성해 보겠습니다. 회전 함수의 작동 방식에 대한 자세한 내용은 을 참조하십시오Lambda 회전 함수.

지원되는 지역에서는 를 AWS Serverless Application Repository 사용하여 템플릿에서 함수를 생성할 수 있습니다. 지원되는 지역 목록은 을 참조하십시오 AWS Serverless Application Repository FAQs. 다른 지역에서는 함수를 처음부터 만들고 템플릿 코드를 함수에 복사합니다.

일반 회전 함수를 만들려면
  1. 해당 지역에서 AWS Serverless Application Repository 지원되는지 확인하려면 일반 참조의 AWS Serverless Application RepositoryAWS 엔드포인트 및 할당량을 참조하십시오.

  2. 다음 중 하나를 수행하십시오.

    • AWS Serverless Application Repository 해당 지역에서 지원되는 경우:

      1. Lambda 콘솔에서 애플리케이션을 선택한 다음 애플리케이션 생성을 선택합니다.

      2. 애플리케이션 생성 페이지에서 서버리스 애플리케이션 탭을 선택합니다.

      3. 공용 애플리케이션 아래의 검색 상자에 를 입력합니다SecretsManagerRotationTemplate.

      4. 사용자 지정 IAM 역할 또는 리소스 정책을 생성하는 앱 보기를 선택합니다.

      5. SecretsManagerRotationTemplate타일을 선택합니다.

      6. 검토, 구성 및 배포 페이지의 애플리케이션 설정 타일에서 필수 필드를 채웁니다.

        • 엔드포인트에 다음을 포함하여 해당 지역의 엔드포인트를 입력합니다https://. 엔드포인트 목록은 AWS Secrets Manager 엔드포인트 섹션을 참조하세요.

        • Lambda 함수를 a에 넣으려면 Ids 및 VPC vpcSecurityGroup 를 포함하십시오. vpcSubnetIds

      7. 배포를 선택합니다.

    • 해당 지역에서 AWS Serverless Application Repository 지원되지 않는 경우:

      1. Lambda 콘솔에서 함수를 선택한 다음 함수 생성을 선택합니다.

      2. 함수 생성 페이지에서 다음을 수행합니다.

        1. 새로 작성을 선택합니다.

        2. Function name(함수 이름)에 교체 함수의 이름을 입력합니다.

        3. Runtime(런타임)에서 Python 3.9를 선택합니다.

        4. 함수 생성(Create function)을 선택합니다.

2단계: 교체 함수 코드 작성

이 단계에서는 암호와 암호가 사용되는 서비스 또는 데이터베이스를 업데이트하는 코드를 작성합니다. 회전 함수를 직접 작성하는 방법에 대한 팁을 포함하여 회전 함수의 기능에 대한 자세한 내용은 을 참조하십시오Lambda 회전 함수. 를 교체 함수 템플릿 참조로 사용할 수도 있습니다.

3단계: 로테이션을 위한 암호 구성

이 단계에서는 암호의 순환 일정을 설정하고 암호에 순환 기능을 연결합니다.

교체를 구성하고 교체 함수를 생성하려면
  1. 에서 Secrets Manager 콘솔을 엽니다 https://console.aws.amazon.com/secretsmanager/.

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

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

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

    2. 순환 일정에서 일정 표현식 작성기 또는 일정 표현식으로 UTC 시간대에 따라 일정을 입력합니다. Secrets Manager는 일정을 rate() 또는 cron() 표현식으로 저장합니다. 교체 기간은 Start time(시작 시간)을 지정하지 않는 한 자정에 자동으로 시작됩니다. 보안 암호를 4시간마다 교체할 수 있습니다. 자세한 내용은 로테이션 스케줄 단원을 참조하십시오.

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

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

    5. 회전 함수에서 1단계에서 생성한 Lambda 함수를 선택합니다.

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

4단계: 순환 함수가 Secrets Manager와 데이터베이스 또는 서비스에 액세스하도록 허용

Lambda 교체 함수에는 Secrets Manager의 보안 암호에 액세스할 수 있는 권한과, 데이터베이스 또는 서비스에 액세스할 수 있는 권한이 필요합니다. 이 단계에서는 Lambda 실행 역할에 이러한 권한을 부여합니다. 암호가 가 가 아닌 다른 KMS 키로 암호화된 경우 Lambda 실행 역할에 키를 사용할 권한을 부여해야 합니다. AWS 관리형 키 aws/secretsmanager 시크릿 ARN 암호화 컨텍스트를 사용하여 복호화 함수 사용을 제한할 수 있습니다. 그러면 로테이션 함수 역할은 회전을 담당하는 시크릿을 복호화할 수 있는 권한만 갖게 됩니다. 정책 예시는 교체 권한 섹션을 참조하세요.

지침은 AWS Lambda 개발자 안내서Lambda 실행 역할을 참조하세요.

5단계: Secrets Manager가 로테이션 함수를 호출하도록 허용

설정한 순환 일정에 따라 Secrets Manager가 순환 함수를 호출하도록 허용하려면 Lambda 함수의 리소스 정책에서 Secrets Manager 서비스 보안 주체에 lambda:InvokeFunction 권한을 부여해야 합니다.

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

리소스 정책을 Lambda 함수에 연결하려면 Lambda에 대한 리소스 기반 정책 사용을 참조하세요.

다음 정책은 Secrets Manager가 Lambda 함수를 호출하도록 허용합니다.

{ "Version": "2012-10-17", "Id": "default", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "secretsmanager.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Condition": { "StringEquals": { "AWS:SourceAccount": "123456789012" } }, "Resource": "LambdaRotationFunctionARN" } ] }

6단계: 로테이션 함수를 위한 네트워크 액세스를 설정합니다.

이 단계에서는 순환 함수가 Secrets Manager와 암호의 대상 서비스 또는 데이터베이스 모두에 연결되도록 허용합니다. 암호를 교체할 수 있으려면 순환 함수가 두 기능에 모두 액세스할 수 있어야 합니다. Lambda 로테이션 함수를 위한 네트워크 액세스을 참조하세요.

다음 단계

3단계에서 순환을 구성할 때 암호를 교체하기 위한 일정을 설정합니다. 예약된 로테이션이 실패하면 Secrets Manager는 로테이션을 여러 번 시도합니다. 에 나와 있는 지침에 따라 즉시 로테이션을 시작할 수도 보안 암호 즉시 교체 있습니다.

회전이 실패할 경우 을 참조하십시오 교체 문제 해결.