AWS Secrets Manager 개념 - AWS Secrets Manager

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

AWS Secrets Manager 개념

다음은 Secrets Manager 작동 방식을 이해하는 데 필요한 중요한 개념입니다.

Secret

Secrets Manager에서 보안 암호는 보안 암호 정보, 보안 암호 값 및 보안 암호에 대한 메타타데이터로 구성됩니다. 보안 암호 값은 문자열 또는 이진수일 수 있습니다. 여러 문자열 값을 한 보안 암호에 저장하려면 JSON 텍스트 문자열을 키/값 쌍으로 사용하는 것이 좋습니다. 예를 들면 다음과 같습니다.

{ "host" : "ProdServer-01.databases.example.com", "port" : "8888", "username" : "administrator", "password" : "EXAMPLE-PASSWORD", "dbname" : "MyDatabase", "engine" : "mysql" }

보안 암호의 메타데이터에는 다음이 포함됩니다.

  • 다음 형식의 Amazon 리소스 이름(ARN):

    arn:aws:secretsmanager:<Region>:<AccountId>:secret:SecretName-6RandomCharacters

    Secrets Manager는 보안 암호 ARN이 고유한지 확인하기 위해 보안 암호 이름의 끝에 임의의 문자 6개를 포함합니다. 원래 보안 암호를 삭제한 후 동일한 이름으로 새 보안 암호를 생성하면 해당 문자로 인해 두 보안 암호의 ARN이 달라집니다. ARN이 다르기 때문에 이전 보안 암호에 액세스할 수 있는 사용자는 새 보안 암호에 자동으로 액세스할 수 없습니다.

  • 보안 암호의 이름, 설명, 리소스 정책 및 태그입니다.

  • Secrets Manager가 값을 암호화하고 복호화하는 데 사용하는 AWS KMS key인 암호화 키 ARN입니다. Secrets Manager는 보안 암호 텍스트를 암호화된 형식으로 저장하고, 전송 중인 보안 암호를 암호화합니다. 의 비밀 암호화 및 복호화 AWS Secrets Manager 섹션을 참조하세요.

  • 교체를 설정한 경우의 보안 암호 교체 방법에 대한 정보입니다. 교체 섹션을 참조하세요.

Secrets Manager는 IAM 권한 정책을 사용하여 권한 있는 사용자만 보안 암호에 액세스하거나 보안 암호를 수정할 수 있도록 합니다. AWS Secrets Manager에 대한 인증 및 액세스 제어 섹션을 참조하세요.

보안 암호에는 암호화된 보안 암호 값의 사본을 보유하는 버전이 있습니다. 보안 암호 값을 변경하거나 보안 암호를 교체할 경우 Secrets Manager는 새 버전을 만듭니다. 버전 섹션을 참조하세요.

보안 암호를 복제하여 여러 AWS 리전에서 사용할 수 있습니다. 보안 암호를 복제할 때 원본 또는 기본 보안 암호의 사본(복제 보안 암호)을 생성합니다. 복제 보안 암호는 기본 보안 암호에 연결된 상태로 유지됩니다. AWS Secrets Manager 보안 암호를 다른 AWS 리전으로 복제합니다. 섹션을 참조하세요.

AWS Secrets Manager를 사용하여 보안 암호 생성 및 관리 섹션을 참조하세요.

버전

보안 암호에는 암호화된 보안 암호 값의 사본을 보유하는 버전이 있습니다. 보안 암호 값을 변경하거나 보안 암호를 교체할 경우 Secrets Manager는 새 버전을 만듭니다.

Secrets Manager는 보안 암호를 버전과 함께 저장하지 않습니다. 대신 다음과 같은 레이블을 지정하여 세 가지 특정 버전을 추적합니다.

  • 현재 버전 - AWSCURRENT

  • 이전 버전 - AWSPREVIOUS

  • 보류 버전(교체 중) - AWSPENDING

보안 암호에는 항상 라벨 AWSCURRENT이 붙은 버전이 있으며, Secrets Manager 사용자가 보안 암호 값을 검색할 때 기본적으로 해당 버전을 반환합니다.

AWS CLI에서 update-secret-version-stage를 호출하여 자체 레이블로 버전에 레이블을 지정할 수도 있습니다. 보안 암호에는 20개까지 레이블을 지정할 수 있습니다. 보안 암호의 두 버전에는 동일한 스테이징 레이블을 지정할 수 없습니다. 버전은 라벨이 복수일 수도 있습니다.

Secrets Manager는 레이블이 지정된 버전을 제거하지 않지만 레이블이 지정되지 않은 버전은 더 이상 사용되지 않는 것으로 간주됩니다. Secrets Manager는 더 이상 사용되지 않는 보안 암호 버전이 100개를 초과하면 제거합니다. Secrets Manager는 24 시간 이내에 만든 버전을 제거하지 않습니다.

다음 그림은 레이블이 지정된 버전과 고객 AWS 레이블이 지정된 버전이 있는 암호를 보여줍니다. 레이블이 없는 버전은 더 이상 사용되지 않는 것으로 간주되며 미래에 Secrets Manager에서 제거될 예정입니다.

교체

교체는 공격자가 자격 증명에 액세스하는 것을 더욱 어렵게 만들기 위해 보안 암호를 주기적으로 업데이트하는 프로세스입니다. Secrets Manager에서 보안 암호에 대한 자동 교체를 설정할 수 있습니다. Secrets Manager가 보안 암호를 교체하면 보안 암호 및 데이터베이스 또는 서비스 모두에서 자격 증명이 업데이트됩니다. AWS Secrets Manager 보안 암호 교체 섹션을 참조하세요.

작은 정보

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

교체 전략

Secrets Manager에서는 두 가지 교체 전략이 제공됩니다.

교체 전략: 단일 사용자

이 전략은 한 보안 암호로 한 사용자에 대한 보안 인증을 업데이트합니다. Amazon RDS Db2 인스턴스의 경우 사용자가 자신의 암호를 변경할 수 없으므로 별도의 보안 암호로 관리자 자격 증명을 제공해야 합니다. 이 전략은 가장 간단한 교체 전략이며 대부분의 사용 사례에 적합합니다. 특히 일회성 (임시) 또는 대화형 사용자의 보안 인증에 이 전략을 사용하는 것이 좋습니다.

보안 암호가 교체될 때 열린 데이터베이스 연결은 삭제되지 않습니다. 교체가 진행되는 동안 데이터베이스의 암호가 변경되는 시점부터 보안 암호가 업데이트되는 시점까지 짧은 기간이 소요됩니다. 이 시간동안 데이터베이스가 교체된 보안 인증을 사용하는 호출을 거부할 위험은 적습니다. 적절한 재시도 전략을 사용하여 이 위험을 완화할 수 있습니다. 교체 후에는 새 연결에서 새 보안 인증이 사용됩니다.

교체 전략: 대체 사용자

이 전략은 한 보안 암호로 두 사용자에 대한 보안 인증을 업데이트합니다. 첫 번째 사용자를 생성하고 첫 번째 교체 중에 교체 함수가 해당 사용자를 복제하여 두 번째 사용자를 생성합니다. 보안 암호가 교체될 때마다 교체 함수는 업데이트하는 사용자의 암호를 교체합니다. 대부분의 사용자는 본인을 복제할 수 있는 권한이 없으므로 다른 보안 암호에서 superuser에 대한 보안 인증을 제공해야 합니다. 데이터베이스의 복제된 사용자가 원래 사용자와 동일한 권한을 가지고 있지 않은 경우(일회성(임시) 또는 대화형 사용자라고도 함), 단일 사용자 교체 전략을 사용하는 것이 좋습니다.

이 전략은 첫 번째 역할이 데이터베이스 테이블을 소유하고 두 번째 역할이 데이터베이스 테이블에 액세스할 수 있는 권한이 있는 권한 모델을 포함하는 데이터베이스에 적합합니다. 이 전력은 고가용성이 필요한 애플리케이션에도 적합합니다. 애플리케이션은 교체 중에 보안 암호가 검색되더라도 유효한 보안 인증 세트를 가져옵니다. 교체 후에는 useruser_clone 보안 인증이 모두 유효합니다. 이러한 유형의 교체 중에 애플리케이션이 거부될 가능성은 단일 사용자 교체보다 훨씬 적습니다. 암호 변경 사항이 모든 서버로 전파되는 데 시간이 걸리는 서버 팜에서 데이터베이스가 호스트되는 경우 데이터베이스가 새 보안 인증을 사용하는 호출을 거부할 위험이 있습니다. 적절한 재시도 전략을 사용하여 이 위험을 완화할 수 있습니다.

Secrets Manager는 원래 사용자와 동일한 권한이 있는 복제된 사용자를 생성합니다. 클론이 생성된 후 원래 사용자의 권한을 변경하는 경우 복제된 사용자의 권한도 변경해야 합니다.

예를 들어 데이터베이스 사용자의 보안 인증으로 암호를 만드는 경우 암호에는 해당 보안 인증이 있는 버전 하나가 포함됩니다.

첫 번째 교체 - 교체 기능은 생성된 암호로 사용자의 클론을 생성하고 해당 보안 인증은 현재 암호 버전이 됩니다.

두 번째 교체 - 교체 기능은 원래 사용자의 암호를 업데이트합니다.

세 번째 교체 - 교체 기능은 복제된 사용자의 암호를 업데이트합니다.