💻
AnsibleでSecretManagerから値を取得する
事前情報
AnsibleをAWSのEC2上で実行している
準備
ギャラクシーでcommunity.aws
を追加する
ansible-galaxy collection install community.aws
インスタンスのIAMロールにSecretManagerからの値取得を許可するインラインポリシーを追加
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "secretsmanager:GetSecretValue",
"Resource": "${secret_manager_arns}",
"Effect": "Allow"
}
]
}
実装
Lookupで先程追加したコレクションに含まれるaws_secret
を使用する
- ※lookupは外部をソースとするデータにAnsibleからアクセスできるようになるプラグイン
# 取得方法は様々あるため参考ページを参照
# 今回はSecretManagerのパスとregionを指定して、キーバリューJsonで取得
secrets: "{{lookup('aws_secret', '/path/to/secrets', region='ap-northeast-1')}}"
# キーにアクセスするとバリューが取得できる
hogehoge_secret: "{{secrets.HOGEHOGE}}"
fugafuga_secret: "{{secrets.FUGAFUGA}}"
参考
Discussion