Heroku

KeeperシークレットマネージャーでHerokuアプリケーションの機密シークレットを保存

機能

  • シークレット認証情報をKeeperボルトに安全に保存し、Herokuで公開せずに利用

  • KeeperボルトからHerokuアプリへファイルをコピー

  • Herokuから他のシークレットマネージャーSDK機能 (レコード作成やTOTPコードなど) を利用

Keeperシークレットマネージャーの機能一覧については、概要をご参照ください。

概要

Herokuには、アプリケーションの設定変数を保存する機能があります。ただし、値は閲覧可能な形式で保存されます。Keeperシークレットマネージャーを使用すると、機密シークレットをゼロ知識環境のKeeperボルトに保存できます。

Herokuでは、以下のKeeperシークレットマネージャーSDKを使用できます。

以下の例では、KeeperシークレットマネージャーとHerokuの連携でできることを確認できます。

例 - Python SDKを使用したSlack通知

この例では、KeeperシークレットマネージャーSDKでWebhookトークンを取得し、HerokuウェブアプリケーションからSlackチャネルにメッセージを送信します。

Slackの設定

最初の手順は、SlackインスタンスからWebhookトークンを取得することです。SlackのWebサイトにログインし、Your Appsに移動します。

[Create New App] ボタンをクリックし、ダイアログで [From scratch] を選択して新しいアプリを作成します。App Nameを入力し、アプリを開発するワークスペースを選択します。

次に、Incoming Webhooksボタンをクリックします。

Incoming Webhooksをオンにします。Webhook URLs for Your Workspaceセクションが表示されたら、[Add New Webhook to Workspace] ボタンをクリックします。

ワークスペース内のチャネルを選択します。

Incoming Webhooksページの下部にWebhook URLが表示されます。この例では、URLをCopyしてKeeperボルトのレコードに保存します。

Keeperボルトの設定

Keeperボルトで、共有フォルダ内にSlackWebhook URLを保存するログインレコードを作成します。共有フォルダはアプリケーションに追加できます。詳細はクイックスタートガイドをご参照ください。

Webhook URLをログインレコードの**[Website Address]フィールドにコピーして保存します。保存後、レコードの情報アイコンをクリックしてレコードUIDを確認します。レコードUIDのURLをクリップボードにコピーすると、実際のレコードUID**を含められます。必要なのはURL内のUID部分のみです。

Heroku

この例では、HerokuアカウントとPython 3が必要です。次に、手順に従ってHeroku CLIをインストールします。

Heroku CLIをインストールしたら、アプリケーションを作成できます。

生成されるアプリケーション名は、この例とは異なります。

空のGitリポジトリが作成されます。リポジトリをクローンできます (空である旨の警告が表示されます)。その後、リポジトリディレクトリに移動します。

リポジトリをクローンしたら、設定変数を設定できます。設定が必要な変数は2つです。1つ目はRECORD_UIDで、Webhook URLを含むレコードのUIDです。2つ目はKSM_CONFIGで、Base64エンコードされたシークレットマネージャー構成を含みます。

Base64構成の作成方法については、構成ドキュメントをご参照ください。

設定変数の準備ができたら、アプリケーションを追加します。最初の手順は、Python 3アプリケーションの要件を定義することです。requirements.txtには、ウェブサイト用のFlask、Slack通信用のslack_sdk、シークレットマネージャー通信用のkeeper-secrets-manager-coreが含まれます。

任意のエディタで、以下の内容をapp.pyに保存します。

フォーム入力ボックスと送信ボタンを表示するシンプルなFlaskウェブアプリケーションです。入力したテキストはSlackチャネルに送信されます。

最後に、ProcfileでHerokuにアプリケーションの起動方法を指定します。

アプリケーションを実行する準備ができました。Gitリポジトリにファイルを追加し、mainブランチをプッシュすると、ビルドと起動が行われます。

URL (https://random-name-30564.herokuapp.com/) にアクセスするか、以下のコマンドでウェブサイトを開けます。

シンプルなウェブサイトが表示されます。メッセージを入力してSubmitをクリックします。

作成したWebhookのチャネルにメッセージが表示されます。

最終更新