AWS Secrets Manager 에 사용되는 주요 용어 및 개념 - AWS Secrets Manager

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

AWS Secrets Manager 에 사용되는 주요 용어 및 개념

다음은 AWS Secrets Manager와 그 작동 방식을 이해하는 데 중요한 용어 및 개념입니다.

Secret

SecreSecrets Manager 에서 보안 암호는 자격 증명 세트 (사용자 이름 암호) 와보안 서비스를 선택합니다. 보안 암호를 안전하게 저장하고 권한이 있는 사용자만 보안 암호에 액세스하도록 할 수 있습니다. Secrets Secrets Manager 는 항상 보안 암호 텍스트를 암호화된 형식으로 저장하고, 전송 중인 보안 암호를 암호화합니다.

Secrets Manager 는 IAM 권한 정책을 사용하여 권한 있는 사용자만 보안 암호에 액세스하거나 보안 암호를 수정할 수 있도록 합니다. 이 정책을 사용자 또는 역할에 연결하고 사용자가 액세스할 수 있는 보안 암호를 지정할 수 있습니다. 보안 암호에 대한 액세스 제어에 대한 자세한 정보는 AWS Secrets Manager 대한 인증 및 액세스 제어 단원을 참조하십시오.

자격 증명을 저장할 때 보안 서비스별로 다른 정보가 필요할 수 있습니다. SecreSecrets Manager 는 텍스트 문자열로 구성된 키-값 페어로 보안 암호를 저장하여 이러한 유연성을 제공합니다. SecreSecrets Manager 에서 지원되는 데이터베이스를 선택한 경우 Secrets Manager는 선택한 데이터베이스에 대한 교체 함수 요구 사항에 따라 키-값 페어를 정의합니다. Secrets Manager 쌍을 다음과 같이 포맷합니다.JSON텍스트. 에서 Lambda 함수를 제공하지 않는 일부 다른 서비스 또는 데이터베이스 Secrets Manager 를 선택한 경우 사용자가 정의한 JSON 키-값 페어로 보안 암호를 지정할 수 있습니다.

저장되어 있는 암호화된 보안 암호 텍스트는 다음 예와 유사한 형태일 수 있습니다.

{ "host" : "ProdServer-01.databases.example.com", "port" : "8888", "username" : "administrator", "password" : "My-P@ssw0rd!F0r+Th3_Acc0unt", "dbname" : "MyDatabase", "engine" : "mysql" }

명령줄 도구 또는 API를 사용할 경우 보안 암호에 이진 데이터를 저장할 수도 있습니다. Secrets Manager 콘솔에서는 이진 데이터를 지원하지 않습니다.

SecreSecrets Manager 는 지정된 일정에 따라 보안 암호를 자동으로 교체할 수 있습니다. 암호만 저장하지 않고 사용자 또는 계정에 대한 자격 증명 세트 전체를 저장하도록 선택하면 서비스 중단 없이 자격 증명을 교체할 수 있습니다. 암호만 변경하거나 교체하는 경우에는 이전 암호가 즉시 사용할 수 없게 되므로 고객이 바로 새 암호를 사용하기 시작하지 않으면 액세스에 실패합니다. 대신 새 암호가 지정된 새 사용자를 생성하거나 최소한 두 사용자 간에 번갈아 사용하면 이전 사용자 및 암호를 사용할 수 없다고 선택할 때까지 이전 정보가 새 정보와 함께 계속해서 작동할 수 있습니다. 이렇게 하면 새 자격 증명을 테스트하고 확인하는 동안 모든 클라이언트가 계속 작업할 수 있는 시간이 제공됩니다. 새 자격 증명이 테스트를 통과한 이후에는 모든 클라이언트가 새 자격 증명을 사용하도록 설정하고 이전 자격 증명을 제거합니다.

지원되는 데이터베이스

Secrets Manager 콘솔을 사용 하 고 암호를 지정 하는 경우Secrets Manager 기본적으로 지원하는 데이터베이스 중 하나이면 Secrets Manager 모든 구조 및 구문 분석을 관리합니다. 콘솔에서 특정 유형의 데이터베이스에 대한 세부 정보를 입력하라는 메시지가 표시됩니다. 보안 Secrets Manager 필요한 구조를 구성하고, 해당 정보를 저장한 다음 사용자가 이 정보를 검색할 때 이해하기 쉬운 텍스트 정보로 다시 구문 분석합니다.

기타 데이터베이스 또는 서비스

대신 "사용자 지정" 데이터베이스 또는 서비스에 대한 보안 암호를 지정한 경우 보안 암호 검색 후 보안 암호 텍스트와 관련해 수행할 작업과 보안 암호를 해석하는 방식은 사용자가 제어합니다. Secrets Manager 콘솔에서는 보안 암호를 키-값 문자열로 수용하고 저장하기 위해 JSON 구조로 자동으로 변환합니다. 콘솔에서 보안 암호를 검색하면 SecreSecrets Manager 에서 사용자가 볼 수 있도록 키-값 텍스트 문자열로 보안 암호를 자동으로 구문 분석합니다. 보안 암호를 프로그래밍 방식으로 검색하는 경우 적절한 JSON 구문 분석 라이브러리(대부분의 프로그래밍 언어에 사용 가능)를 사용하여 유용한 방식으로 보안 암호를 구문 분석할 수 있습니다. 보안 암호에 저장할 데이터의 크기가 암호당 크기 제한인 65,536바이트보다 클 경우 키-값 페어를 보안 암호 2개로 분할하고 검색할 때 다시 연결할 수 있습니다.

다중 리전 보안

Secrets Manager 및 다중 영역 비밀은 두 가지 유형의 비밀을 사용합니다.

  • 기본 보안- Secrets Manager 기본 암호를 사용하여 응용 프로그램에서 사용할 수있는 다른 지역에 연결된 메타 데이터를 복제합니다.

  • 복제본 보안- 기본 암호를 복제하여 다른 지역에서 동일한 암호를 만듭니다. 복제 암호는 쉽게 검색할 수 있도록 기본 암호와 공통 이름을 공유합니다. Secrets Manager AWS Key Management Service 및 KMS 관리 키뿐만 아니라 지역별 고객 관리 키 (CMK) 를 사용합니다.

보안 Secrets Manager

보안 Secrets Manager 에는 암호화된 보안 암호 텍스트뿐만 아니라 보안 암호를 설명하고 에서 보안 암호를 처리해야 하는 방식을 정의하는 여러 메타데이터 요소가 포함되어 있습니다.

  • 메타데이터 — 보안 암호에 대한 세부 정보

    • 보안 암호의 이름, 설명과 고유한 식별자로 사용되는 Amazon 리소스 이름(ARN)을 포함한 기본 정보

    • AWS Key Management Service (AWS KMS ey SecreSecrets Manager 의 ARN 에서는 보안 암호의 보호되는 텍스트를 암호화 및 암호 해독하는 데 사용합니다. 이 정보를 제공하지 않으면 보안 Secrets Manager 계정에 기본 AWS KMS 키를 사용합니다.

    • 얼마나 빈도에 대한 정보를 회전하려면키와 교체를 수행하는 데 사용하는 Lambda 함수입니다.

    • 사용자가 제공한 태그 세트. 태그를 키-값 페어로 AWS 구성, 논리적 그룹화 및비용 할당를 선택합니다.

  • 버전 — 버전 한 개 이상으로 구성된 모음버전암호화 된 비밀 텍스트

    • 일반적으로 보안 암호 버전은 한 번에 한 개만 활성 상태일 수 있지만 데이터베이스 또는 서비스에 대한 보안 암호를 교체하는 동안에는 여러 버전이 존재할 수 있습니다. 보안 암호를 변경할 때마다 에서 새 버전을 생성합니다.

    • 각 버전에는 암호화된 보안 암호 값의 사본이 들어 있습니다.

    • 각 버전에는 보안 암호의 교체 주기의 스테이지를 식별하는 하나 이상의 스테이징 레이블이 연결될 수 있습니다.

보안 서비스

Secrets Manager는 보안 서비스를 데이터베이스 또는 네트워크 서버에서 실행되는 다른 서비스로 정의하며, 보안 암호에 저장된 자격 증명으로 액세스를 제어합니다. 보안 서비스는 동일한 액세스 방법을 공유하는 단일 서버 또는 대규모 서버 그룹을 나타낼 수 있습니다. 보안 서비스에 성공적으로 액세스하기 위해서는 보안 암호가 필요합니다. 보안 암호에는 고객이 보안 서비스에 액세스하는 데 필요한 정보가 모두 들어 있습니다. 이 설명서에서는 “보안 서비스”라는 일반적인 용어를 사용하여 AWS Secrets Manager 보안 암호를 보호할 수 있는 여러 유형의 데이터베이스 및 서비스를 모두 나타냅니다.

Rotation

SecreSecrets Manager 에서는 교체를 공격자가 보안 서비스에 액세스하는 것을 더욱 어렵게 만들기 위해 보안 암호를 주기적으로 변경하는 프로세스로 정의합니다. Secrets Manager를 사용하면 모든 클라이언트에서 보안 암호를 수동으로 변경하여 보안 암호를 업데이트할 필요가 없습니다. 대신 Secrets Manager 는 AWS Lambda 함수를 사용하여 정기적으로 교체되는 모든 단계를 자동으로 수행합니다.

데이터베이스(보안 서비스)에 액세스하는 애플리케이션을 실행하는 많은 클라이언트가 있다고 상상해 보십시오. 자격 증명을 애플리케이션에 하드 코딩하는 대신 애플리케이션은 필요할 때마다 SecreSecrets Manager 에 요청을 보내 보안 암호 세부 정보를 수신합니다. 보안 암호를 교체할 경우 Lambda Rotation 함수가 다음 단계를 자동으로 수행합니다.

  1. 교체 함수는 보안 서비스의 인증 시스템에 접속해 데이터베이스에 액세스하기 위한 새 자격 증명 세트를 생성합니다. 자격 증명은 일반적으로 사용자 이름, 암호 및 연결 세부 정보로 구성되지만 시스템마다 다를 수 있습니다. Secrets Manager 이러한 새 자격 증명을 보안 텍스트로 새version와 보안 암호의AWSPENDING스테이징 레이블이 첨부되었습니다.

  2. 그런 다음 교체 함수가 보안 암호의 AWSPENDING 버전을 테스트하여 자격 증명이 작동하는지 확인하고 보안 서비스에 필요한 액세스 권한 수준을 부여합니다.

  3. 테스트에 성공하면 교체 함수는 AWSCURRENT 레이블을 새 버전으로 옮겨 지정해 새 버전을 기본 버전으로 표시합니다. 이렇게 하면 모든 클라이언트가 이전 버전 대신 이 버전의 보안 암호를 사용하게 됩니다. 또한 교체 함수는 이전 버전에 AWSPREVIOUS 레이블을 할당하여 "마지막으로 확인된 정상" 버전으로 표시합니다. AWSPREVIOUS 스테이징 레이블이 있었던 버전에 이제 스테이징 레이블이 없으므로 더 이상 사용되지 않습니다.

선택한 경우 Lambda 회전 함수를 수동으로 트리거할 수 있습니다.보안 암호 교체를 실행할 수도 있고, 자동으로 모든n일 수를 지정하여 순환 예약을 지정할 수 있습니다. 당신이 사용하는 경우Secrets Manager 기본적으로 지원하는 AWS 데이터베이스 중 하나에서 데이터베이스 자격 증명을 교체하는 Lambda 함수를 제공합니다. 이 함수는 기본 교체를 자동으로 수행합니다. 아니면 고급 사용자 지정 교체 전략을 지원하도록 이 함수를 사용자 지정할 수 있습니다.

사용자 지정 서비스에 대한 보안 암호를 생성하도록 선택한 경우 Lambda 함수를 생성해야 합니다. 이 함수의 코드에서 JSON 구조를 작성하고 구문 분석하는 방법을 결정합니다.

보안 암호에서 사용하는 서비스 또는 데이터베이스의 경우 보안 암호에 대한 Lambda 교체 함수는 데이터베이스 또는 서비스와 보안 Secrets Manager 서비스 엔드포인트에 모두 액세스할 수 있어야 합니다. Lambda 교체 함수 및 데이터베이스 또는 서비스가 Amazon VPC에서 제공한 VPC에 있는 경우보안 Secrets Manager 용 VPC 서비스 엔드포인트또는NAT 게이트웨이를 사용하여 직접 인터넷 연결를 사용하여 공용 Secrets Manager 서비스 끝점에 대한 액세스를 허용할 수 있습니다.

교체에 대한 자세한 정보는 AWS Secrets Manager 보안 암호 교체 단원을 참조하십시오.

스테이징 레이블

Secrets Manager 에서는 간단한 텍스트 문자열인 스테이징 레이블을 사용하여 다른버전동안 보안 암호의교체를 선택합니다. 암호화된 보안 암호 값을 쿼리할 때마다 검색할 보안 암호 버전을 지정할 수 있습니다. 버전 ID 또는 스테이징 레이블을 사용해 버전을 지정하지 않으면 에서는 기본적으로 스테이징 레이블이 있는 버전에 Secrets Manager.AWSCURRENT에 연결됩니다. Secrets Manager 항상 준비 레이블을 첨부합니다.AWSCURRENT를 보안 암호 버전 중 하나에 추가합니다. 작동 방식에 대한 예는 교체에 대한 간단한 소개를 참조하십시오.

보안 암호 버전에는 0~20개의 스테이징 레이블을 연결할 수 있습니다. 예를 들어,SecretAVersion1에는 20 개의 스태이징 레이블이 있고 스테이징 레이블을SecretBVersion1에서 스테이징 레이블을 제거해야 합니다.SecretAVersion1에 스테이징 레이블을 추가하십시오.SecretBVersion1를 선택합니다.

스테이징 레이블은 한 번에 보안 암호의 버전 하나에만 연결할 수 있습니다. 보안 암호의 버전 2개에 같은 스테이징 레이블을 지정할 수 없습니다. 스테이징 레이블을 버전에 연결할 때 동일한 스테이징 레이블을 가진 다른 버전이 있는 경우 레이블을 제거할 버전도 지정해야 합니다. 그렇지 않으면 에서 오류가 반환됩니다.

보안 암호의 한 버전에는 항상 스테이징 레이블 AWSCURRENT가 있어야 하며 API 작업이 이 동작을 시행합니다. Secrets Manager 제공하는 Lambda 회전 함수는 자동으로AWSPENDING,AWSCURRENT, 및AWSPREVIOUS레이블을 해당 버전에 추가합니다.

Versioning

보안 암호의 여러 버전은 보안 암호 교체를 지원합니다. Secrets Manager 서로 다른 버전을 구별하는스테이징 레이블를 선택합니다. 대부분의 시나리오에서는 및 암호 버전에 대해 걱정할 필요가 없습니다. Secrets Manager 와 제공된 Lambda 교체 함수에서 자동으로 세부 정보를 관리하기 때문에 하지만 Lambda 교체 함수를 생성하는 경우 코드가 여러 버전의 보안 암호를 관리하고 각 버전 간에 스테이징 레이블을 적절하게 이동해야 합니다. 또한 각 버전에는 버전 간에 이동할 수 있는 스테이징 레이블과는 달리, 항상 동일한 버전과 함께 유지되는 고유한 식별자(일반적으로 UUID 값)가 있습니다. 이UUID에 해당합니다.ClientRequestToken전달된PutSecretValue,CreateSecret, 및UpdateSecretAPI.

항상 AWSCURRENT 레이블이 연결된 보안 암호의 기본 버전을 요청하도록 클라이언트를 구성합니다. 다른 버전이 존재할 수 있지만 특정 버전 ID 또는 스테이징 레이블을 요청해야만 다른 버전에 액세스할 수 있습니다. 보안 암호 값을 요청하고 버전 ID 또는 스테이징 레이블을 지정하지 않은 경우, 기본적으로 AWSCURRENT 스테이징 레이블이 있는 버전이 표시됩니다.

교체 중 SecreSecrets Manager 는 보안 암호의 새 버전을 생성하고 스테이징 레이블을 연결합니다.AWSPENDING를 선택합니다. 교체 함수는 AWSPENDING 버전을 사용하여 버전이 테스트를 통과할 때까지 해당 버전을 식별합니다. 순환 함수가 새 자격 증명이 작동하는지 확인한 후 Secrets Manager 레이블을 이동합니다.AWSPREVIOUS를 사용하여 이전 버전으로AWSCURRENT를 선택하고 레이블을 이동합니다.AWSCURRENT에서 새로운AWSPENDING버전입니다.

교체 지원을 위해 스테이징 레이블이 작동하는 방법에 대한 자세한 정보는 AWS Secrets Manager 보안 암호 교체 단원을 참조하십시오.

보안 암호에 대해 유지되는 각 버전에는 다음 요소가 포함되어 있습니다.

  • 버전의 고유 ID

  • 버전을 식별하는 데 사용하는 스테이징 레이블 모음으로, 보안 암호 내에서 고유합니다. Secrets Manager는 스테이징 레이블이 없는 버전을 더 이상 사용하지 않으며 이러한 버전은 삭제될 수 있습니다.

  • 암호화되어 저장된 보안 암호 텍스트

암호화된 보안 암호 값을 쿼리할 때마다 보안 암호 버전을 지정할 수 있습니다. 버전 ID 또는 스테이징 레이블을 사용해 버전을 지정하지 않으면 에서는 기본적으로 스테이징 레이블이 있는 버전에 Secrets Manager.AWSCURRENT에 연결됩니다. Secrets Manager 항상 준비 레이블을 첨부합니다.AWSCURRENT를 보안 암호 버전 중 하나에 추가합니다.