0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Lambdaからシークレットマネージャーにある認証情報を取得

Posted at

①SecretsManagerでシークレットを作成

RDSなどAWSリソースのシークレット情報を保存する場合はそのリソースを選択しますが、今回は軽い動作確認するだけなので「その他」を選択します。

保存したいシークレット情報を「key-value」で入力します。

image.png

シークレット名をtestにします。

image.png

動作確認するだけなので、今回はローテーションをしません。

image.png

設定のレビュー

image.png

レビュー画面の一番下にあるサンプルコードをコピーしておきます。

image.png

これで設定完了

image.png

②IAMの設定

IAMポリシーを作ります。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "secretsmanager:GetSecretValue",
            "Resource": "arn:aws:secretsmanager:your-region:your-account-id:secret:your-secret-id"
        }
    ]
}

image.png

このポリシーをLambda用のロールに付与します。

image.png

③Lambdaを作成(Python)

関数作成時に、②で作られたロールを選択します。

image.png

ソース例

import boto3
import json
from botocore.exceptions import ClientError

def get_secret():
    secret_name = "test"
    region_name = "ap-northeast-1"

    # Secrets Managerクライアントの作成
    client = boto3.client('secretsmanager', region_name=region_name)

    try:
        # シークレットを取得
        response = client.get_secret_value(SecretId=secret_name)

        print(response)

        # シークレットが文字列の場合
        if 'SecretString' in response:
            secret = response['SecretString']
        else:
            # バイナリデータの場合
            secret = response['SecretBinary']
            # 必要に応じてデコード処理を行う
        return json.loads(secret)
    
    except ClientError as e:
        # エラーハンドリング
        print(f"Error retrieving secret: {e}")
        return None

def lambda_handler(event, context):
    secret = get_secret()
    if secret:
        # 認証情報を使用する処理
        print("Secret retrieved successfully")
        print(secret)
    else:
        print("Failed to retrieve secret")

Lambda側でテストを押すと、Secrect Managerからシークレット情報を取れました!

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?