AWS Secrets Manager
- AWS에 암호를 저장하도록 돕는 또 다른 서비스로 SSM 파라미터 스토어 이후에 나왔으면 유일한 서비스 목적은 암호의 저장
- Secrets Manager는 파라미터 스토어와 달리 암호에 더 집중되어 있고 며칠에 한 번씩 강제로 암호를 순환시킬 수 있음
- Secrets Manager와 AWS Lambda를 통합하여 순환되는 암호 생성을 자동화하는 능력도 존재
- Secrets Manager와 RDS를 통합하여 데이터베이스와 Secrets Manager 간의 암호를 동기화할 수 있음
- KMS를 사용해 암호화할 수 있음
<AWS Secrets Manager 실습>
- AWS Secrets Manager 콘솔
SecureString과 같이 암호화된 값이 있는 파라미터 스토어와 달리
Secrets Manager는 암호 순환을 설정하고 AWS Lambda에 연결하여 자격 증명을 순환시킬 수 있음
또한 RDS, Aurora, Postgre 등에 단단히 통합되어 조금 더 사용하기 쉽고 조금 더 안전할 수 있음
이를 위해 스토어에 암호를 저장하고 런타임 동안 검색하며 요금은 매달 암호당 40센트이며 API 호출 10000회에 5센트
암호에 대한 액세스는 모두 IAM에서 관리함 - AWS Secrets Manager 다른 유형의 암호 생성
다양한 유형의 암호화가 있고 다른 AWS 서비스와 통합할 수 있음
RDS 데이터베이스의 자격 증명, RedShift 클러스터, DocumentsDB 데이터베이스, 다른 데이터베이스를 위한 자격 증명,
그리고 API 키와 같은 다른 유형의 암호를 선택할 수 있음
만약 데이터베이스가 있으면 사용자 이름과 비밀번호를 요청하게 되고 다른 유형의 암호 옵션을 선택하면 키-값 쌍을 입력함
키-값 쌍은 여러 쌍을 가질 수 있고 API 키도 하나가 아니라 원하는 만큼 가질 수 있으며 수동 입력 대신 JSON 입력도 가능
암호화 키를 선택할 때는 기본 암호화 키를 사용하거나 기존 KMS 키를 사용해서 암호화를 할 수 있음
이후 암호에 대한 이름을 /prod/my-secret-api로 설정하고 설명과 태그를 넣을 수 있음
자동 순환을 구성하거나 수동을 선택할 수 있으며 자동 순환이 이루어지면 자동적으로 암호가 순환되며
최소 30일부터 1년까지 마다 암호 순환 역할이 있는 Lambda를 생성하여 호출해 암호를 순환시키라고 지정할 수 있음
람다 함수가 60일 후에 자동으로 Secrets Manager에서 호출을 받게 되고 저장한 암호를 순환해 강력한 암호 관리 솔루션 역할
이번 실습에서는 비활성화를 선택
다음으로는 흔히 쓰이는 Python과 같은 언어로 간단한 코드로 암호를 검색할 수 있음
get_secret() 함수를 실행하고 secret_name, region_name 그리고 boto 클라이언트를 시작하여 API를 호출
그리고 client.get_secret_value를 실행해서 값을 가져온 다음 Secret name인 SeretId를 전달하면 응답을 받으며
거기에서 필요한 키를 얻으며 키-값 쌍으로 SecretString이 검색하려는 키 값이 됨
- AWS Secret Manager 데이터베이스 암호 생성
RDS 데이터베이스로 실행을 해본 후 이름은 admin, 비밀번호는 supersecret으로 하여 암호화
또한 암호가 액세스할 때 RDS 데이터베이스에 연결할 수 있어 통합할 데이터베이스를 선택하면
Secret Manager가 사용자 이름 및 비밀번호를 갖기 때문에 기능이 더욱 강력해짐
게다가 연결된 RDS 데이터베이스에 이 값들이 자동으로 설정되며 순환을 활성화해서 암호를 자주 순환할 수 있음
'Cloud > AWS' 카테고리의 다른 글
[SAA] WAF 및 실드 (0) | 2022.04.22 |
---|---|
[SAA] CloudHSM (0) | 2022.04.22 |
[SAA] SSM 매개변수 저장소 개요 (0) | 2022.04.22 |
[SAA] KMS 키 순환 (0) | 2022.04.22 |
[SAA] KMS 개요 (0) | 2022.04.21 |