コンテンツにスキップ

Parameters

ここではRISKENの各サービスのパラメータについて説明します

Service Parameters

AWS Parameter Storeをサポートしています

RISKENではアプリケーション実行時に安全にパラメータを渡すためにAWSのParameter Storeをサポートしています

Parameter Storeを利用することで以下のメリットがあります

  • ソースコードにクレデンシャルを保存しなくて済む
  • KMSによる暗号化/利用時に復号化(Envelope Encryption)
    • クレデンシャルの「保存(暗号化)」と「利用(復号化)」の権限分離
    • クレデンシャル操作の監査ログが残せる
    • クレデンシャルを保存する場合は、Secret String を指定してください
    • 詳細は公式ドキュメント をご確認ください

仕組み・利用方法

各コンテナ実行時のエントリポイントでenv-injector を実行しています

  • env-injectorにParameter Storeの保存先を指定する(ENV_INJECTOR_PATHENV_INJECTOR_META_CONFIGで指定)ことで、登録済みの値を環境変数としてコンテナにロードできます
  • Parameter Storeではなく、SecretsManagerを利用する場合は ENV_INJECTOR_SECRET_NAMEを指定してください
  • 詳細はenv-injector のREADME.mdをご確認ください

Parameter Store 設定例

  1. 例えば、findingサービスに以下の環境変数(ENV_INJECTOR_META_CONFIG)を指定します
    - ENV_INJECTOR_META_CONFIG: /prd/meta/core/finding
    
    • Pathは/{env}/meta/{name_space}/{service_name}のフォーマットで指定しています
      • {env} 部分はシステム環境の識別子を想定しています
      • {name_space} 部分はRISKENの各NameSpaceです
      • {service_name} 部分はRISKENのサービス名です
  2. コンテナ実行時に上記1で指定されたParameter Storeが読み込まれます
  3. /prd/meta/core/findingには以下の値がyaml形式で保存されているとします
    - parameter_store_path: /prd/common
    - parameter_store_path: /prd/core/finding
    
  4. 上記3で指定したparameter_store_path が順番に読み込まれます
    • 最初に/prd/common/のParameter Storeのパスが参照されます
      • /prd/common/配下のパスに以下のパラメータが登録されているとします
        - /prd/common/DB_HOST
        - /prd/common/DB_USER
        - /prd/common/DB_PASSWORD
        
      • 環境変数としてコンテナに以下の値がロードされます
        - DB_HOST: localhost
        - DB_USER: hoge
        - DB_PASSWORD: moge
        
    • 次に/prd/core/findingのParameter Storeのパスが参照されます
      • /prd/core/finding/配下のパスに以下のパラメータが登録されているとします
        - /prd/core/finding/SERVICE_ADDRESS
        - /prd/core/finding/ENABLE_DEBUG_LOG
        
      • 環境変数としてコンテナに以下の値がロードされます
        - SERVICE_ADDRESS: localhost
        - ENABLE_DEBUG_LOG: true
        
  5. 最終的にコンテナにロードされる環境変数は以下になります
    - DB_HOST: localhost
    - DB_USER: hoge
    - DB_PASSWORD: moge
    - SERVICE_ADDRESS: localhost
    - ENABLE_DEBUG_LOG: true