ファイル・システムの使用によるシークレット管理
Docker SwarmやDocker Secretsなど、一部のオンプレミス・デプロイメント・システムでは、シークレット値を、環境変数によって直接設定するのではなく、ファイル・システムから読み取る必要があります。例えば、ご使用の環境でPOSTGRES_PASSWORD
を設定するかわりに、POSTGRES_PASSWORD_FILE
で、必要なパスワードを含むテキスト・ファイルを指す必要がある場合があります。そのような場合に、Retoolでは、ファイル・システムからの特定の環境変数の読み取りがサポートされています。
この機能にはRetoolバージョン2.66.10以上が必要です
シークレット以外の環境変数を設定できる必要もあります
Retoolの起動時に、構成されたシークレット・ファイルが検索され、それらがシステム全体ではなく実行中のコンテナー用の環境変数として設定されます。
この機能を使用するには、まず、環境変数RETOOL_LOAD_FILE_SECRETS
がtrue
に設定されていることを確認します。このように設定されていない場合は、Retoolでファイル・システムからシークレットがロードされません。
次に、構成する環境変数を選択します。それらのシークレットを環境に直接追加するのではなく、ファイル・システムに格納されているシークレットへのパスを追加し、環境変数名の末尾に_FILE
を付加します。例えば、ENCRYPTION_KEY
を設定したい場合は、ENCRYPTION_KEY_FILE
を、そのファイルが存在するファイル・システム上のパスに設定します。
# .envファイル
RETOOL_LOAD_FILE_SECRETS=true
ENCRYPTION_KEY_FILE=/path/to/key
Retoolの起動時に、以下のログ行が表示されます。
RETOOL-CONFIG: RETOOL_LOAD_FILE_SECRETS is true, reading the following secrets from the filesystem
RETOOL-CONFIG: Setting ENCRYPTION_KEY via /path/to/key
上記のログ・メッセージが表示された場合は、リストされた環境変数が正常に設定されたということです。別のメッセージが表示された場合は、次のステップについて「トラブルシューティング」を参照してください。
独自のシークレットの管理
Retoolでは、RETOOL_EXPOSED
という接頭辞が付いた環境変数の使用による独自のシークレットの管理がサポートされています。ファイル・システムを使用してこれらのシークレットを管理することもできます。RETOOL_EXPOSED
接頭辞を使用するかわりに、RETOOL_FILE_EXPOSED
を使用します。例えば、データベース・パスワードをリソースが使用できるようにする場合は、RETOOL_FILE_EXPOSED_DB_PASSWORD
を、ファイル・システム上のそのパスに設定します。
# .envファイル
RETOOL_LOAD_FILE_SECRETS=true
RETOOL_FILE_EXPOSED_DB_PASSWORD=/path/to/db/password
RETOOL-CONFIG: RETOOL_LOAD_FILE_SECRETS is true, reading the following secrets from the filesystem
RETOOL-CONFIG: Setting RETOOL_EXPOSED_DB_PASSWORD via /path/to/db/password
トラブルシューティング
この機能の使用時に、次のエラー・メッセージが表示される場合があります。
RETOOL-CONFIG: Error setting SECRET via SECRET_FILE: /path/to/secret_file does not exist
これは、SECRET_FILE環境変数で指定されたパスが存在しないということです。ビルド時に、Retoolを実行しているコンテナーが、指定されたパスにアクセスできるかどうかを再確認する必要があります。
RETOOL-CONFIG: Error setting SECRET via SECRET_FILE: /path/to/secret_file is a directory
これは、SECRET_FILE環境変数で指定されたパスは存在するが、ファイルではないため、SECRETの設定に使用できないということです。SECRET_FILE環境変数で指定したパスがディレクトリーではなく、実際のファイルを指していることを確認してください。
付録: サポートされている環境変数のリスト
この機能は、シークレット値を含む以下の環境変数でのみ動作します。
CLIENT_SECRET
CUSTOM_API_KEY
CUSTOM_OAUTH2_SSO_CLIENT_SECRET
CUSTOM_OAUTH2_SSO_JWT_EMAIL_KEY
CUSTOM_OAUTH2_SSO_JWT_FIRST_NAME_KEY
CUSTOM_OAUTH2_SSO_JWT_LAST_NAME_KEY
CUSTOM_OAUTH2_SSO_JWT_ROLES_KEY
DATABASE_API_BEARER_TOKEN
DB_API_PASSWORD
ENCRYPTION_KEY
GITHUB_APP_ID
GITHUB_APP_INSTALLATION_ID
GITHUB_APP_PRIVATE_KEY
GITHUB_SYNC_TOKEN
GOOGLE_API_KEY
GOOGLE_CLIENT_SECRET
INTEGRATIONS_BASECAMP_CLIENT_SECRET
INTEGRATIONS_BASECAMP_NEW_DOMAIN_CLIENT_SECRET
INTERCOM_IDENTITY_VERIFICATION_SECRET_KEY
JWT_SECRET
LICENSE_KEY
MAILGUN_API_KEY
OKTA_CLIENT_SECRET
PAGERDUTY_API_TOKEN
POSTGRES_PASSWORD
REDIS_PASSWORD
RETOOL_SALESFORCE_CONNECTED_APP_CLIENT_SECRET
RT_POSTGRES_PASSWORD
SANDBOX_LAMBDA_API_KEY
SCIM_AUTH_TOKEN
SLACK_API_TOKEN
STRIPE_SECRET_KEY
STRIPE_WEBHOOK_SECRET
Updated almost 4 years ago