KSM SDKを使用した汎用Pythonスクリプト

#!/usr/bin/env python3

import sys
import base64
import json

# Keeper Secrets Manager Python SDKのインストールと初期化が必要です
# ボルトの記録にアクセス可能なデバイスの設定を使用します
# pip install keeper-secrets-manager-core
from keeper_secrets_manager_core import SecretsManager
from keeper_secrets_manager_core.storage import FileKeyValueStorage

# sys.stdinは配列ではありませんので、サブスクリプトでアクセスできません (sys.stdin [0])
for base64_params in sys.stdin:
    params = json.loads(base64.b64decode(base64_params).decode())

    print(f"providerRecordUid={params.get('providerRecordUid')}")
    print(f"resourceRecordUid={params.get('resourceRecordUid')}")
    print(f"userRecordUid={params.get('userRecordUid')}")
    print(f"newPassword={params.get('newPassword')}")
    print(f"oldPassword={params.get('oldPassword')}")
    print(f"user={params.get('user')}")

    records = json.loads(base64.b64decode(params.get('records')).decode())
    print("Provider Title="
          f"{next((x for x in records if x['uid'] == params.get('providerRecordUid')), None).get('title')}")

    record_keys = ('providerRecordUid', 'resourceRecordUid', 'userRecordUid')
    record_uids = [params.get(x) for x in record_keys if x in params]

    ksm = SecretsManager(config=FileKeyValueStorage(r'/path/ksm-config.json'))
    resource_records = ksm.get_secrets(record_uids)
    for record in resource_records:
        print(f"Record UID: {record.uid}, Title: {record.title}")

    break

最終更新