AWS에서 secret manager에 저장된 key/value를 획득하는 과정을 설명한다.
먼저 aws configure 되어 있지 않으면 먼저 설정한다.
$ aws configure
access key가 필요한데, 없으면 IAM > 새로운 Access key를 생성해서 사용한다.
aws secretmanager의 모든 명령을 확인해본다
$ aws secretsmanger help
get-secret-value 를 이용해서 secret value를 얻어 올 수 있다.
SYNOPSIS
get-secret-value
--secret-id <value>
[--version-id <value>]
[--version-stage <value>]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
[--debug]
[--endpoint-url <value>]
[--no-verify-ssl]
[--no-paginate]
[--output <value>]
[--query <value>]
[--profile <value>]
[--region <value>]
[--version <value>]
[--color <value>]
[--no-sign-request]
[--ca-bundle <value>]
[--cli-read-timeout <value>]
[--cli-connect-timeout <value>]
[--cli-binary-format <value>]
[--no-cli-pager]
[--cli-auto-prompt]
[--no-cli-auto-prompt]
secret value 목록 요청
$ aws secretsmanager get-secret-value --secret-id <ARN>
다음과 같은 에러가 발생하면 IAM에서 사용자에 SecretsManagerReadWrite permission을 추가한다.
n error occurred (AccessDeniedException) when calling the GetSecretValue operation: User:
대충 이런 응답을 확인 할 수 있다.
{
"ARN": "arn:aws:secretsmanager:ap-northeast-2:xxx",
"Name": "sxxxxx",
"VersionId": "xxxx",
"SecretString": "{\"DBSOURCE\":\"admin:vxxx\",\"ACCESS_TOKEN_DURATION\":\"5m\"}",
"VersionStages": [
"AWSCURRENT"
],
"CreatedDate": "2024-03-28T01:04:14.725000+09:00"
}
"SecretString" 만 필요하므로 filter 시킨다.
$ aws secretsmanager get-secret-value --secret-id xxxx --query SecretString --output text
{"DBSOURCE":"admin:vXXX", "ACCESS_TOKEN_DURATION":"5m"}