AWS Secrets Manager 보안 암호 교체 - AWS Secrets Manager

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

AWS Secrets Manager 보안 암호 교체

교체는 주기적으로 보안 암호를 업데이트하는 프로세스입니다. 보안 암호를 교체하면 보안 암호 및 데이터베이스 또는 서비스 모두에서 자격 증명이 업데이트됩니다. Secrets Manager에서 보안 암호에 대한 자동 교체를 설정할 수 있습니다.

교체 작동 방식

작은 정보

일부 다른 서비스에서 관리하는 보안 암호의 경우 관리형 교체를 사용합니다. 관리형 교체을(를) 사용하려면 먼저 관리 서비스를 통해 보안 암호를 생성해야 합니다.

Secrets Manager 로테이션은 AWS Lambda 함수를 사용하여 비밀과 데이터베이스 또는 서비스를 업데이트합니다. Lambda 함수 사용 비용에 대한 자세한 내용은 요금 섹션을 참조하세요.

보안 암호를 교체하기 위해 Secrets Manager는 설정한 일정에 따라 Lambda 함수를 호출합니다. 일정 기간이 지나면(예: 30일마다) 교체하도록 일정을 설정하거나 cron 표현식을 만들 수 있습니다. 예약 표현식 섹션을 참조하세요. 자동 교체가 설정된 상태에서 암호 값을 수동으로도 업데이트하는 경우, Secrets Manager는 다음 교체 날짜를 계산할 때 이를 유효한 교체로 간주합니다.

보안을 위해 Secrets Manager는 Lambda 교체 함수에서 암호를 직접 교체하는 것만 허용합니다. 교체 함수는 두 번째 Lambda 함수를 호출하여 암호를 교체할 수 없습니다.

교체하는 동안 Secrets Manager는 스테이징 레이블을 사용하여 보안 암호의 버전을 지정합니다. 교체를 수행하는 동안 Secrets Manager에서는 파라미터가 다를 때마다 동일한 함수를 여러 번 호출합니다. Secrets Manager에서는 파라미터의 다음 JSON 요청 구조를 사용하여 함수를 호출합니다.

{ "Step" : "request.type", "SecretId" : "string", "ClientRequestToken" : "string" }

교체 함수는 보안 암호를 교체하는 작업을 수행합니다. 보안 암호 교체는 4단계로 이루어져 있으며 이는 Lambda 교체 함수의 다음 4단계와 일치합니다.

  1. 새로운 버전의 보안 암호 생성(createSecret)

    교체의 첫 번째 단계는 보안 암호의 새 버전을 생성하는 것입니다. Secrets Manager에서 제공하는 데이터베이스 교체 템플릿에서 Lambda 교체 함수는 새 버전에 대한 32자 암호를 생성합니다. 새 버전에는 새 암호, 새 사용자 이름 및 암호 또는 기타 보안 암호 정보가 포함될 수 있습니다. Lambda 교체 함수는 새 버전에 AWSPENDING 레이블을 지정합니다.

  2. 데이터베이스 또는 서비스의 보안 인증 변경(setSecret)

    다음으로 Lambda 교체 함수는 데이터베이스나 서비스의 보안 인증을 보안 암호의 AWSPENDING 버전에 있는 새 보안 인증과 일치하도록 변경합니다. 교체 전략에 따라 이 단계에서는 기존 사용자와 동일한 권한으로 새 사용자를 생성할 수 있습니다.

    Amazon RDS(Oracle 및 Db2 제외) 및 Amazon DocumentDB에 대한 교체 함수는 사용 가능한 보안 소켓 계층(SSL) 또는 전송 계층 보안(TLS)을 사용하여 데이터베이스에 연결합니다. 그렇지 않으면 암호화되지 않은 연결을 사용합니다.

    참고

    2021년 12월 20일 전에 자동 보안 암호 교체를 설정한 경우, 교체 함수는 SSL/TLS를 지원하지 않는 이전 템플릿을 기반으로 할 수 있습니다. 교체 함수가 언제 생성되었는지 확인을 참조하세요. 2021년 12월 20일 이전에 SSL/TLS를 사용하는 연결을 지원하기 위해 생성한 경우, 교체 함수를 재생성해야 합니다.

  3. 새 보안 암호 버전 테스트(testSecret)

    다음으로 Lambda 교체 함수는 데이터베이스나 서비스에 액세스하는 데 보안 암호의 AWSPENDING 버전을 사용하여 해당 버전을 테스트합니다. 교체 함수 템플릿 기반 교체 함수는 읽기 액세스를 사용하여 새 보안 암호를 테스트합니다. 애플리케이션에 필요한 액세스 유형에 따라 쓰기 액세스와 같은 다른 액세스를 포함하도록 함수를 업데이트할 수 있습니다.

  4. 교체 완료(finishSecret)

    마지막으로 Lambda 교체 함수는 AWSCURRENT 레이블을 이전 보안 암호 버전에서 이 버전으로 이동하며 동일한 API 호출에서 AWSPENDING 레이블도 제거합니다. 이 시점 이전에는 AWSPENDING 을 제거해서는 안 되며 별도의 API 호출을 사용하여 제거하면 교체가 성공적으로 완료되지 않았음을 Secrets Manager에 알릴 수 있으므로 별도의 API 호출을 사용하여 제거해서도 안 됩니다. Secrets Manager에서 AWSPREVIOUS 스테이징 레이블을 이전 버전으로 추가하여 보안 암호의 마지막으로 확인된 정상 버전을 유지할 수 있습니다.

교체하는 동안 Secrets Manager는 교체 상태를 나타내는 이벤트를 로그합니다. 자세한 설명은 AWS CloudTrail을(를) 사용하여 AWS Secrets Manager 이벤트 로깅 섹션을 참조하세요.

교체 단계가 실패하면 Secrets Manager는 전체 교체 프로세스를 여러 번 다시 시도합니다.

교체가 성공하면 AWSPENDING 스테이징 레이블은 AWSCURRENT 버전과 동일한 버전에 첨부되거나 어떤 버전에도 연결되지 않을 수 있습니다. AWSPENDING 스테이징 레이블이 있지만 AWSCURRENT와 동일한 버전에 연결되지 않은 경우 이후의 교체 호출은 이전 교체 요청이 아직 진행 중인 것으로 간주하여 오류를 반환합니다. 교체에 실패하면 AWSPENDING 스테이징 레이블은 빈 암호 버전에 연결될 수 있습니다. 자세한 설명은 교체 문제 해결 섹션을 참조하세요.

교체가 성공한 후 애플리케이션은 Secrets Manager의 AWS Secrets Manager에서 보안 암호 가져오기에서 자동으로 업데이트된 자격 증명을 가져옵니다. 교체의 각 단계가 작동하는 방식에 대한 자세한 정보는 AWS Secrets Manager 회전 함수 템플릿을 참조하세요.