Azure App Gateway (高度な設定)
Azure App Gatewayサービスを使用してKeeper AutomatorをAzure Container Instancesにデプロイ
最終更新
Azure App Gatewayサービスを使用してKeeper AutomatorをAzure Container Instancesにデプロイ
最終更新
本ガイドでは、Azure Application Gatewayを使用して安全なVNetでKeeper Automatorを公開するための手順を解説します。この方式は、Azureコンテナーアプリの設定よりも高度となりますので、Azure App Gatewayや暗号化されたSAMLリクエストを使用する必要がない場合は、Azureコンテナーアプリ方式をご使用ください。
この方式では、すでにSSL証明書をお持ちであることを確かにしてください。お持ちでない場合は、カスタムSSL証明書ページの手順をご参照ください。
(1) Azureクラウドシェルを開く
portal.azure.comにログインし、クラウドシェルのアイコンをクリックします。
(2) ご希望の地域でリソースグループを作成
Azureにリソースグループがまだ存在しない場合は作成します。こちらの例ではeastusの地域を使用していますが、必ずお客様の地域をご使用ください。
ストレージアカウントがまだ存在しない場合は作成します。正しい地域(useeast)と上のリソースグループ名を使用するようにします。注: keeperautomatotorstorageを置き換えるのに選択する名前は、azureではグローバルで他に存在しないものである必要があります。
ファイルシェアが存在しない場合は作成します。
現在のシェアを表示します。
(5) コンテナー用にバーチャルネットワーク(VNet)と1件のSubnetを作成
(6) バーチャルネットワークをサービスエンドポイントで更新
アカウントのストレージキーを見つけるには以下のコマンドを使用します。 ストレージアカウント名は実際の名前に置き換えます。
以下のようなkey1の値をコピーします。
(8) サブネットIDの取得
サブネットIDを見つけるには以下のコマンドを実行します。
サブネットIDのパスを _subnetで終わるところまで全部コピーします。以下はその例です。
ローカルで、automator
などの名前でフォルダを作成します。
任意のエディタを使用して、そのフォルダー内に以下の内容を含むautomator.ymlというファイルを作成します。
前の手順の設定に基づいて文字列の値を変更する必要がある箇所が複数あります。
サブネットID は、手順8で取得したIDのフルパスと一致する必要があります。
storageAccountNameは手順3の値と一致する必要があります。
storageAccountKeyは手順7の値と一致する必要があります。
(10) SSL証明書とSSLパスワードファイルのアップロード
Azureインターフェイスから、[リソース グループ] > [ストレージ アカウント] > [ファイルシェア]に移動し、作成したAutomatorファイルシェアに移動します。ここから、automator.ymlファイル、SSL証明書ファイル、SSL証明書パスワードファイルをアップロードします。
ファイルの名前が automator.yml ssl-certificate.pfx および ssl-certificate-password.txt であることを確認してください。
(11) 3つのファイルをローカルのCLIワークスペースにコピーします
(12) コンテナーインスタンスの作成
automator.ymlの設定を使用してコンテナーを作成します。
応答でコンテナの内部IPを取得します。
後で使用するために、このIPの変数を設定します。以下はその例となります。
(13) アプリケーションゲートウェイサブネットの作成
(14) アプリケーションゲートウェイの作成
XXXXXXの箇所でSSL証明書のパスワードが置き換えられていることを確かにします。
(15) パブリックIPを見つける
Azure portalのインターフェイスで、[リソースグループ] > [アプリゲートウェイ]に移動し、パブリックIP アドレスをメモします。
(16) DNSのルーティング
AutomatorサービスのDNS(例: automator.company.com)が、Azureコンテナーサービスが手順 15で生成したIPアドレスを指していることを確かにします。
DNS名は SSL 証明書のサブジェクト名と一致する必要があります。一致しない場合、リクエストは失敗します。
(17) 正常性プローブの作成
正常性プローブは、Automatorサービスが実行されていることをApp Gatewayに通知します。Azure portalのインターフェイスからAutomator App Gatewayを開き、左側のメニューから[正常性プローブ]をクリックします。
次に、以下のスクリーンショットに見られる設定で新しい正常性プローブを作成します。必ずホストを手順 6で設定したFQDNに置き換えます。
[テスト]をクリックしてプローブを追加します。コンテナIPがホスト名に適切にアドレス指定されていれば、テストは成功します。
(18) ウェブアプリケーションファイアウォールの設定
Azure portalのインターフェイスからAutomator App Gatewayを開き、左側の[ウェブアプリケーションファイアウォール] をクリックします。 WAF V2を有効にして以下の画面のように設定します。
[ルール]タブをクリックし、[OWASP 3.2]に設定されたルールを選択して、[有効]および[保存]をクリックします(重要な手順となります)。
最後にKeeper Commenderを使ってAutomatorの設定を行います。
(19) Keeper Commanderのインストール
この時点では、サービスは実行されていますがまだKeeperとは通信ができません。
ワークステーション、サーバー、コンピューターのどれかにKeeper Commander CLIをインストールします。初期設定にのみ使用します。バイナリインストーラーを含むインストール手順についてはこちらをご覧ください。 Commanderを開いた後、loginコマンドでログインします。AutomatorをセットアップするにはKeeper 管理者、またはSSOノードを管理する権限を持つ管理者としてログインする必要があります。
(20) Commanderでの初期設定
Keeper Commanderにログインし、automator createで始まる一連のコマンドを使用してAutomatorを有効にします。
ノード名 (この場合はAzure Cloud) は、以下のように管理コンソールのUIから取得します。
コマンドの出力には、IDプロバイダからのメタデータを含むAutomator設定が表示されます。
URLはまだ入力されていません。選択したFQDNを使用してURLを編集します。
次に、キーを交換します。Automator公開キーで暗号化されたエンタープライズ秘密キーがAutomator に提供されます。
新しい設定でAutomatorを初期化します。
サービスを有効にします。
この時点で設定は完了です。
自動ヘルスチェックには以下のURLをご使用になれます。
https://<server>/health
以下はcurl
コマンドを使用した例です。
当URLはWebブラウザでは開きません。
IDプロバイダとしてAD FSを使用してKeeper Automatorを有効にする場合、以下の手順に従ってKeeper 証明書を更新するまでログインできません。
Keeper管理コンソールへログインします。
[管理] > [SSOノード] > [プロビジョニング]に移動し、SSOクラウド設定を見ます。
[Export SP Cert]をクリックします。
AD FS管理コンソールで、Keeper Cloud SSO証明書利用者信頼プロパティを選択します。
[暗号化]タブで、古い証明書をこの新しい証明書に置き換えます。
[署名]タブで、新しいSP証明書をこの新しい証明書に置き換えます。
これでAutomatorサービスが実行された状態になりました。
Azure Portalの「コンテナーインスタンス」システムで、コンテナーが実行されているのを確認できます。 /bin/shを使用してコンテナーに接続し、実行ログを表示することもできます。
この設定に基づいてコンテナーを再起動すると、/24サブネットから新しい IP アドレスが割り当てられることがあります。新しいIPをすばやく見つけて、正しいIPでApplication Gatewayバックエンドプールを更新するには、Azure CLIから以下のスクリプトを実行します。
Keeper Automatorがデプロイされましたので、エンドユーザー体験のテストが可能です。ユーザーが SSO IDプロバイダーで認証した後は、承認を求めるプロンプトは必要ありません。
最も簡単なテスト方法は、ブラウザでシークレットモードのウィンドウを開いてKeeperウェブボルトへアクセスし、SSOクラウドでログインすることとなります。デバイスの承認を求めるプロンプトが表示されない場合、Automatorが正常に機能しています。
Azure内でのインストールは完了です。