AWS Secrets Manager란 무엇입니까? - AWS Secrets Manager

AWS Secrets Manager란 무엇입니까?

과거에는 데이터베이스에서 정보를 검색하는 사용자 지정 애플리케이션을 생성하면 일반적으로 데이터베이스에 액세스하기 위한 자격 증명(보안 암호)을 애플리케이션에 직접 포함시켰습니다. 자격 증명을 교체할 시기가 되면 새 자격 증명을 생성하는 것보다 더 많은 작업을 해야 했습니다. 시간을 들여 새 자격 증명을 사용하도록 애플리케이션을 업데이트해야 했습니다. 그런 다음 업데이트된 애플리케이션을 배포했습니다. 자격 증명을 공유하는 애플리케이션이 여러 개 있는데 이러한 애플리케이션 중 하나를 업데이트하지 못한 경우 해당 애플리케이션에 오류가 발생합니다. 이러한 위험 때문에 많은 고객들은 정기적으로 자격 증명을 교체하지 않기로 결정하며, 이 위험 대신 다른 위험에 직면하게 됩니다.

Secrets Manager는 코드의 암호를 포함해 하드 코딩된 자격 증명을 Secrets Manager에서 프로그래밍 방식으로 보안 암호를 검색하도록 하는 API 호출로 바꿀 수 있습니다. 이렇게 하면 보안 암호가 코드에 더 이상 존재하지 않기 때문에 코드를 검사하는 누군가에 의해 보안 암호가 손상되지 않도록 방지할 수 있습니다. 또한 사용자가 지정한 일정에 따라 Secrets Manager가 자동으로 보안 암호를 교체하도록 구성할 수 있습니다. 따라서 단기 보안 암호로 장기 보안 암호를 교체할 수 있어 손상 위험이 크게 줄어듭니다.

Secrets Manager를 최대한 활용하기 위해 여러분이 이해해야 하는 용어 및 개념 목록은 AWS Secrets Manager 시작하기 섹션을 참조하세요.

기본 AWS Secrets Manager 시나리오

다음은 이 기본 시나리오를 설명한 다이어그램입니다. 이 다이어그램은 Secrets Manager에 데이터베이스의 자격 증명을 저장한 후 이 데이터베이스에 액세스하기 위해 애플리케이션에서 자격 증명을 사용하는 방법을 보여줍니다.

  1. 데이터베이스 관리자가 MyCustomApp라는 애플리케이션에서 사용할 수 있도록 인력 데이터베이스에 대한 자격 증명 세트를 생성합니다. 또한 관리자는 이 애플리케이션에서 인력 데이터베이스에 액세스하는 데 필요한 권한을 사용하여 이러한 자격 증명을 구성합니다.

  2. 데이터베이스 관리자가 Secrets Manager에서 자격 증명을 MyCustomAppCreds라는 보안 암호로 저장합니다. 그런 다음 Secrets Manager는 자격 증명을 암호화하여 보안 암호 내에 보호되는 보안 암호 텍스트로 저장합니다.

  3. MyCustomApp에서 데이터베이스에 액세스하는 경우 이 애플리케이션은 Secrets Manager에 MyCustomAppCreds라는 보안 암호를 쿼리합니다.

  4. Secrets Manager는 이 보안 암호를 검색하고 보호되는 보안 암호 텍스트의 암호를 해독해 보안(TLS를 통한 HTTPS) 채널을 통해 클라이언트 앱에 보안 암호를 반환합니다.

  5. 이 클라이언트 애플리케이션은 응답에서 자격 증명, 연결 문자열 및 기타 필요한 정보를 구문 분석한 다음 이러한 정보를 사용해 데이터베이스 서버에 액세스합니다.

참고

Secrets Manager는 여러 유형의 보안 암호를 지원합니다. 그러나 Secrets Manager는 기본적으로 추가 프로그래밍 없이 지원되는 AWS 데이터베이스에 대한 자격 증명을 교체할 수 있습니다. 그러나 다른 데이터베이스 또는 서비스에 대한 보안 암호를 교체하려면 Secrets Manager가 데이터베이스 또는 서비스와 상호 작용하는 방식을 정의하는 사용자 지정 Lambda 함수를 생성해야 합니다. 이러한 함수를 생성하려면 몇 가지 프로그래밍 기술이 필요합니다. 자세한 내용은 AWS Secrets Manager 보안 암호 교체 섹션을 참조하세요.

AWS Secrets Manager의 기능

암호화된 보안 암호 값을 런타임에 프로그래밍 방식으로 검색

Secrets Manager를 사용하면 애플리케이션 소스 코드에서 하드 코딩된 자격 증명을 제거하고 애플리케이션 자체에 자격 증명을 저장하지 않음으로써 보안 태세를 개선할 수 있습니다. 애플리케이션에 자격 증명을 저장하면 애플리케이션 또는 애플리케이션의 구성 요소를 조사할 수 있는 모든 사람으로 인해 자격 증명이 손상될 수 있습니다. 이전 자격 증명을 사용 중지하기 전에 애플리케이션을 업데이트하고 모든 클라이언트에 변경 사항을 배포해야 하기 때문에 자격 증명을 교체하는 것이 어려워집니다.

Secrets Manager를 통해 저장된 자격 증명을 Secrets Manager 웹 서비스에 대한 런타임 호출로 바꿀 수 있으며 필요할 때 자격 증명을 동적으로 검색할 수 있습니다.

대부분의 경우 고객은 암호화된 보안 암호 값의 최신 버전에 액세스하고자 합니다. 암호화된 보안 암호 값을 쿼리하는 경우 버전 정보를 전혀 지정하지 않고 보안 암호 이름 또는 Amazon 리소스 이름(ARN)만 제공하도록 선택할 수 있습니다. 이렇게 하면 Secrets Manager는 자동으로 보안 암호 값의 최신 버전을 반환합니다.

하지만 다른 버전도 동시에 존재할 수 있습니다. 대부분의 시스템에서는 연결 세부 정보, 사용자 ID 및 암호가 포함된 전체 자격 증명 세트와 같이 단순한 암호보다 복잡한 보안 암호를 지원합니다. Secrets Manager를 사용하면 이러한 자격 증명의 여러 세트를 동시에 저장할 수 있습니다. Secrets Manager는 각 세트를 다른 버전의 보안 암호에 저장합니다. 보안 암호 교체 프로세스 동안 Secrets Manager에서는 교체가 완료될 때까지 이전 자격 증명과, 사용을 시작할 새 자격 증명을 추적합니다.

다른 유형의 보안 암호 저장

Secrets Manager에서는 텍스트를 보안 암호의 암호화된 보안 암호 데이터로 저장할 수 있습니다. 일반적으로 여기에는 데이터베이스나 서비스의 연결 세부 정보가 포함됩니다. 세부 정보에는 서버 이름, IP 주소 및 포트 번호 등과 같이 서비스에 로그인하는 데 사용되는 사용자 이름 및 암호 등이 포함될 수 있습니다. 보안 암호에 대한 자세한 내용은 최대 및 최소값을 참조하세요. 다음은 보호되는 텍스트에 포함되지 않습니다.

  • 보안 암호 이름 및 설명

  • 교체 또는 만료 설정

  • 보안 암호와 연결된 KMS 키의 ARN

  • 연결된 모든 AWS 태그

보안 암호 데이터 암호화

Secrets Manager는 AWS Key Management Service(AWS KMS)를 사용하여 보안 암호의 보호되는 텍스트를 암호화합니다. 여러 AWS 서비스에서 키 저장 및 암호화에 AWS KMS를 사용합니다. AWS KMS는 유휴 시 보안 암호의 보안 암호화를 지원합니다. Secrets Manager는 모든 보안 암호를 KMS 키와 연결합니다. 계정(aws/secretsmanager)에 대한 Secrets Manager의 AWS 관리형 키일 수도 있고, 사용자가 AWS KMS에서 생성한 고객 관리형 키일 수도 있습니다.

Secrets Manager에서 보호된 보안 암호 데이터의 새 버전을 암호화할 때마다 Secrets Manager는 KMS 키에서 새 데이터 키를 생성하도록 AWS KMS에 요청합니다. Secrets Manager는 봉투 암호화(envelope encryption)에 이 데이터 키를 사용합니다. Secrets Manager는 암호화된 데이터 키를 보호되는 보안 암호 데이터와 함께 저장합니다. 보안 암호를 복호화해야 할 때마다 Secrets Manager는 데이터 키를 복호화하도록 AWS KMS에 요청하며 이에 따라 Secrets Manager는 보호되는 보안 암호 데이터를 복호화합니다. Secrets Manager는 데이터 키를 암호화하지 않은 형태로 저장하지 않으며 사용 후 데이터 키를 항상 즉시 폐기합니다.

또한 Secrets Manager는 기본적으로 개방형 표준 전송 계층 보안(TLS)완벽한 전송 보안을 사용하는 호스트에서 보낸 요청만 수락합니다. 따라서 Secrets Manager는 AWS와 보안 암호를 검색하는 데 사용하는 컴퓨터 간에 보안 암호를 전송할 때에도 암호화되도록 보장합니다.

자동으로 보안 암호 교체

사용자의 개입 없이 지정한 일정에 따라 자동으로 보안 암호를 교체하도록 Secrets Manager를 구성할 수 있습니다.

교체는 AWS Lambda 함수를 사용하여 정하고 실행합니다. 이 함수는 다음과 같이 Secrets Manager에서 다음 작업을 수행하는 방법을 정의합니다.

  • 새로운 버전의 보안 암호를 생성합니다.

  • 보안 암호를 Secrets Manager에 저장합니다.

  • 새 버전을 사용하도록 보호된 서비스를 구성합니다.

  • 새 버전을 확인합니다.

  • 새 버전을 프로덕션용으로 표시합니다.

스테이징 레이블을 사용하면 보안 암호의 여러 버전을 추적할 수 있습니다. 각 버전에는 스테이징 레이블이 여러 개 연결될 수 있지만, 각 스테이징 레이블은 한 가지 버전에만 연결할 수 있습니다. 예를 들어 Secrets Manager는 현재 사용 중인 보안 암호의 활성 버전에 AWSCURRENT 레이블을 지정합니다. 항상 최신 보안 암호 버전을 쿼리하도록 애플리케이션을 구성해야 합니다. 교체 프로세스에서 보안 암호의 새 버전을 생성하는 경우 테스트 및 검증이 완료될 때까지 Secrets Manager는 AWSPENDING 스테이징 레이블을 새 버전에 자동으로 추가합니다. 그런 다음에만 Secrets Manager는 새 버전에 AWSCURRENT 스테이징 레이블을 추가합니다. 애플리케이션에서 다음에 AWSCURRENT 버전을 쿼리하면 바로 새 보안 암호를 사용하기 시작합니다.

완전 구성되고 바로 사용할 수 있는 교체 지원 기능을 갖춘 데이터베이스

교체를 활성화하도록 선택하면 Secrets Manager에서는 다음 Amazon Relational Database Service(Amazon RDS) 데이터베이스에서 AWS가 작성하고 테스트한 Lambda 교체 함수 템플릿 및 교체 프로세스의 전체 구성을 지원합니다.

  • Amazon RDS의 Amazon Aurora

  • Amazon RDS의 MySQL

  • Amazon RDS의 PostgreSQL

  • Amazon RDS의 Oracle

  • Amazon RDS MariaDB

  • Amazon RDS의 Microsoft SQL Server

완전 구성되고 바로 사용할 수 있는 교체 지원 기능을 갖춘 다른 서비스

AWS가 작성하고 테스트한 Lambda 교체 함수 템플릿 및 교체 프로세스의 전체 구성을 완전히 지원하는 다음 서비스에서 교체를 활성화하도록 선택할 수 있습니다.

  • Amazon DocumentDB

  • Amazon Redshift

대부분의 다른 유형 데이터베이스 또는 서비스에 대한 보안 암호를 저장할 수도 있습니다. 하지만 보안 암호를 자동으로 교체하기 위해서는 사용자 지정 Lambda 교체 함수를 생성하고 구성해야 합니다. 데이터베이스 또는 서비스에 대한 사용자 지정 Lambda 함수 작성 방법에 대한 자세한 정보는 교체 작동 방식 섹션을 참조하세요.

보안 암호에 대한 액세스 제어

특정 보안 암호에 대한 액세스 권한을 부여하거나 거부하려는 사용자, 그룹 및 역할에 AWS Identity and Access Management(IAM) 권한 정책을 연결해 해당 보안 암호의 관리를 제한할 수 있습니다. 예를 들어, 보안 암호를 완전히 관리 및 구성하는 권한이 필요한 구성원이 있는 그룹에 정책 하나를 연결할 수 있습니다. 애플리케이션에서 사용하는 역할에 연결된 다른 정책은 애플리케이션이 실행되는 데 필요한 보안 암호에 대한 읽기 권한만 부여할 수 있습니다.

또는 보안 암호에 직접 리소스 기반 정책을 연결해 보안 암호 및 해당 버전을 읽거나 수정할 수 있는 사용자를 지정하는 권한을 부여할 수 있습니다. 사용자, 그룹 또는 역할에 자동으로 적용되는 자격 증명 기반 정책과 달리 보안 암호에 연결된 리소스 기반 정책은 Principal 요소를 사용하여 정책의 대상을 식별합니다. Principal 요소는 다른 계정의 보안 암호나 보안 주체와 동일한 계정의 사용자 및 역할을 포함할 수 있습니다.

AWS Secrets Manager를 위한 표준 준수

AWS Secrets Manager는 다음 표준에 대한 감사를 거쳤기 때문에 규정 준수 인증을 획득해야 할 때 솔루션의 일부로 사용할 수 있습니다.

AWS는 AWS Secrets Manager를 HIPAA 적격 서비스로 포함시켜 HIPAA(건강 보험 이전 및 책임법) 규정 준수 프로그램의 폭을 넓혔습니다. AWS와 비즈니스 제휴 계약(BAA)을 체결한 경우 Secrets Manager를 사용하여 HIPAA 준수 애플리케이션을 개발할 수 있습니다. AWS는 건강 정보의 처리 및 저장에 AWS를 활용할 수 있는 방법에 대해 자세히 알고 싶어 하는 고객에게 HIPAA 중심의 백서를 제공합니다. 자세한 내용은 HIPAA 규정 준수를 참조하세요.

AWS Secrets Manager은 서비스 공급자 레벨 1에서 PCI DSS(지불 결제 산업 데이터 보안 표준) 버전 3.2의 규정 준수 증명을 보유하고 있습니다. AWS 제품 및 서비스를 사용하여 카드 소지자 데이터를 저장, 처리 또는 전송하는 고객은 자체 PCI DSS 규정 준수 인증을 관리할 때 AWS Secrets Manager를 사용할 수 있습니다. AWS PCI 규정 준수 패키지의 사본을 요청하는 방법 등 PCI DSS에 대해 자세히 알아보려면 PCI DSS 레벨 1을 참조하세요.

AWS Secrets Manager는 ISO/IEC 27001, ISO/IEC 27017, ISO/IEC 27018 및 ISO 9001에 대한 규정 준수 인증을 성공적으로 획득했습니다. 자세한 정보는 ISO 27001, ISO 27017, ISO 27018, ISO 9001을 참조하세요.

시스템 및 조직 제어(SOC) 보고서는 Secrets Manager가 주요 규정 준수 제어 기능을 어떻게 확보하고 목표를 어떻게 달성하고 있는지 입증하는 독립적 서드 파티 검사 기관의 심사 보고서입니다. 이러한 보고서의 목적은 운영 및 규정 준수를 뒷받침하는 AWS 제어 기능을 고객과 고객 측 감사 기관이 이해하도록 도움을 주는 데 있습니다. 자세한 내용은 SOC 규정 준수를 참조하세요.

FedRAMP(연방정부 위험 및 권한 부여 관리 프로그램)는 클라우드 제품 및 서비스의 보안 평가, 권한 부여 및 지속적인 모니터링에 대한 표준화된 접근 방식을 제공하는 정부 차원의 프로그램입니다. 또한 FedRAMP 프로그램은 동부/서부 및 GovCloud에서 정부 또는 규제 데이터를 사용할 수 있도록 서비스 및 리전에 대한 잠정 권한을 제공합니다. 자세한 내용은 FedRAMP 규정 준수를 참조하세요.

국방부(DoD) 클라우드 컴퓨팅 보안 요구 사항 안내서(SRG)에서는 DoD 고객에게 서비스를 제공하기 위해 클라우드 서비스 제공업체(CSP)가 DoD 임시 인증을 획득할 수 있도록 표준화된 평가 및 인증 프로세스를 제공합니다. 자세한 내용은 DoD SRG 리소스를 참조하세요.

IRAP(Information Security Registered Assessors Program)를 통해 호주 정부 고객은 적절한 제어가 되는지 검증하고 호주 사이버 보안 센터(ACSC)에서 제작한 호주 정부 ISM(Information Security Manual)의 요구 사항을 해결하기 위한 적절한 책임 모델을 결정할 수 있습니다. 자세한 내용은 IRAP 리소스를 참조하세요.

AWS(Amazon Web Services)는 아웃소싱 서비스 공급자의 감사 보고서(OSPAR) 인증을 획득했습니다. 아웃소싱 서비스 공급자를 위한 제어 목표 및 절차에 대한 싱가포르 은행 협회(ABS) 지침(ABS 가이드라인)에 대한 AWS의 준수는 고객에게 싱가포르의 금융 서비스 업계에서 설정한 클라우드 서비스 공급자에 대한 높은 기대치를 충족하려는 AWS의 의지를 보여줍니다. 자세한 내용은 OSPAR 리소스를 참조하세요.

AWS Secrets Manager 요금

Secrets Manager를 사용할 경우 사용하는 내역에 대해서만 지불하며 최소 또는 설정 요금이 없습니다. 삭제하도록 표시한 보안 암호에 대해서는 요금이 부과되지 않습니다. 현재 기준의 전체적인 요금 목록은 AWS Secrets Manager 요금을 참조하세요.

Secret Manager가 생성하는 AWS 관리형 키(aws/secretsmanager)를 사용하여 무료로 보안 암호를 암호화할 수 있습니다. 자체 KMS 키를 생성하고 보안 암호를 암호화하는 경우 AWS에서 현재 AWS KMS 요금이 청구됩니다. 자세한 내용은 AWS Key Management Service요금을 참조하세요.

계정에 대해 AWS CloudTrail을 활성화하면 Secrets Manager에서 전송한 API 호출에 대한 로그를 얻을 수 있습니다. Secrets Manager는 모든 이벤트를 관리 이벤트로 기록합니다. AWS CloudTrail에서는 모든 관리 이벤트의 첫 사본이 무료로 저장됩니다. 하지만 알림을 활성화한 경우 로그 스토리지용 Amazon S3 및 Amazon SNS에 대한 비용이 발생할 수 있습니다. 또한 추적을 추가로 설정한 경우 관리 이벤트의 추가 사본으로 인해 비용이 발생할 수 있습니다. 자세한 내용은 AWS CloudTrail요금을 참조하세요.

AWS Secrets Manager에 대한 지원 및 의견

우리는 여러분의 의견을 환영합니다. awssecretsmanager-feedback@amazon.com으로 의견을 보낼 수 있습니다. 또한 AWS Secrets Manager 지원 포럼에 의견과 질문을 올리셔도 됩니다. AWS 지원 포럼에 대한 자세한 정보는 포럼 도움말을 참조하세요.

AWS Secrets Manager 콘솔 또는 명령줄 도구에 대한 새로운 기능을 요청하려면 awssecretsmanager-feedback@amazon.com에 이메일로 요청을 제출하는 것이 좋습니다.

아마존 문서에 대한 의견을 제출하기 위해 각 웹페이지 하단에 있는 의견 링크를 사용할 수 있습니다. 발생한 문제와 문서가 어떤 점에서 도움이 되지 않았는지에 대해 구체적으로 기술해 주세요. 표시된 내용과 생각했던 것과 어떤 차이가 있었는지 알려 주세요. 그러면 문서를 개선하기 위해 무엇을 해야 할지 파악하는 데 도움이 됩니다.

여기 몇 가지 사용 가능한 추가 리소스를 소개합니다.

  • AWS 교육 카탈로그 - 역할 기반 및 특수 과정과 자습형 실습으로 구성되어, AWS 기술을 연마하고 실용적인 경험을 얻는 데 도움을 드립니다.

  • AWS 개발자 도구 - AWS로 혁신적인 애플리케이션을 구축하는 데 도움이 될 수 있는 문서, 코드 예제, 릴리스 정보 및 기타 정보를 제공하는 개발자 도구 및 리소스 링크입니다.

  • AWS Support Center - AWS Support 사례를 생성하고 관리할 수 있는 허브입니다. 포럼, 기술 FAQ, 서비스 상태 및 AWS Trusted Advisor 등의 기타 유용한 자료에 대한 링크가 있습니다.

  • AWS Support - 클라우드에서 애플리케이션을 구축 및 실행하도록 지원하기 위해 신속한 응답을 제공하는 1:1 지원 채널입니다.

  • 문의처 - AWS 결제, 계정, 이벤트 및 기타 문제에 대해 문의할 수 있는 중앙 연락 창구입니다.

  • AWS 사이트 약관 - 저작권 및 상표, 사용자 계정, 라이선스 및 사이트 액세스와 기타 주제에 대한 상세한 정보입니다.