AWS Systems Manager パラメータストアから秘密情報を取得してLambdaで使用する方法
この記事からわかること
パラメータストアに保存されている秘密情報をLambdaから取得して使用する方法がわかります。
手順
手順の概要は以下の通りです。
- パラメータストアに秘密情報を追加
- Lambdaにパラメータストアのアクセス権限を付与
- Lambdaにパラメータストアを扱う関数を追加
以降ではそれぞれの手順について記載します。
パラメータストアに秘密情報を追加
パラメータストアにパラメータ「/sushi/like/rds」を追加します。
種類は「SecureString」を選択
※DBの接続情報を想定
{
"HOST": "host_sushi",
"DBNAME": "dbname_sushi",
"USER": "user_sushi",
"PASSWORD": "password_sushi"
}
Lambdaにパラメータストアのアクセス権限を付与
上記で作成したパラメータの値を取得するためのIAMポリシー「get_rds_param」を作成します
下の例では扱うことができるパラメータを「/sushi/like/rds」のみに制限しています。
作成したポリシーをLambdaのIAMロールに付与してあげます。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssm:GetParameter*"
],
"Resource": "arn:aws:ssm:ap-northeast-1:123456789012:parameter/sushi/like/rds"
}
]
}
Lambdaにパラメータストアを扱う関数を追加
Lambdaに関数get_parametersを追加します。
変数PARAM_PATHに使用したいパラメータ名を記載してください。
import json
import boto3
# SSM region
REGION = 'ap-northeast-1'
PARAM_PATH = '/sushi/like/rds'
def lambda_handler(event, context):
param_dict = get_parameters(PARAM_PATH)
print(param_dict)
# パラメータストアからパラメータを取得する関数
def get_parameters(param_path):
ssm = boto3.client('ssm', region_name=REGION)
response = ssm.get_parameters(
Names=[
param_path,
],
WithDecryption=True # SecureStringを復号する場合はTrue
)
return json.loads(response['Parameters'][0]['Value'])
手順は以上です
Lambda実行結果
パラメータが取得できていることが確認されました。
Author And Source
この問題について(AWS Systems Manager パラメータストアから秘密情報を取得してLambdaで使用する方法), 我々は、より多くの情報をここで見つけました https://qiita.com/sushilike86/items/f9b192bd614631661e75著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .