Azure App Services

Azure App Servicesでデプロイ

概要

本ページでは、Azure App Services内でKeeperオートメーターをウェブアプリとしてインスタンス化する手順を解説します。GCC HighやDoDなどの環境では、オートメーターをホストするのにこのサービスを利用いただけます。

1. オートメーターConfigキーを作成

コマンドラインを開き、オペレーティングシステムに応じて次のいずれかの方法を使用してURLエンコード形式で256ビットAESキーを生成します。

キーの作成

openssl rand -base64 32

このコマンドによって生成される値を手順 6のために保存します。

Mac/Linuxで生成されたキー値の例
PowerShellで生成されたキー値の例

2. App Servicesウェブアプリを作成

Azureポータルから、検索バーで「App Services」を選択し、「+Create」から「+ Web App」を選択して新しいウェブアプリを作成します。

  • 新しい「Resource Group」を作成します。

  • 「Instance」に名前を付けます。

  • Publishに「Docker Container」を選択します。

  • Operating Systemに「Linux」を選択します。

  • サービスをホストする地域を選択します。

  • ご利用のLinux Planを選択するか新しいプランを作成します。最も低価格の料金プランは「Premium V3 P0V3」ですが、エンドユーザー環境にもよります。

  • Docker の箇所へ進みます。

3. Dockerコンテナの詳細をセットアップ

Dockerでは以下のように設定します。

  • Options: Single Container

  • Image Service: Docker Hub

  • Access Type: Public

  • Image and tag: keeper/automator:latest

  • Monitoringの箇所へ進みます。

4. WebAppモニタリングをセットアップ

  • 「Enable Application Insights」には「Yes」を選択します。

  • 「Application Insights」を選択するか、新規で作成します。

  • 「Review + create」の箇所へ進みます。

5. WebAppを作成

Review + Create」、「Create」の順にクリックします。

数分後、WebAppが作成され、自動的に起動します。

「Go to Resource」をクリックしてコンテナ環境へ移動します。

デフォルトのドメイン値をメモしておきます。これはオートメーターサービスのセットアップと初期化の際に必要になります。

6. WebAppを構成

Configurationへ移動し、「New application setting」を選択します。

環境変数の設定は、以下のように左側メニューの「Environment variables」の箇所で行う場合があります。

以下のアプリケーション設定を追加します。

  • 以下の環境変数を作成し、それぞれの値に設定します。

    • AUTOMATOR_CONFIG_KEY: 手順1からの値

    • AUTOMATOR_PORT: 8089

    • SSL_MODE: none

    • WEBSITES_PORT: 8089

  • [Apply]をクリックします。

7. Diagnosticsをセットアップ

[Diagnostic settings]を選択し、「+ Add diagnostic setting」をクリックします。

  • 診断設定に名前を付けます。

  • [App Service Console logs]を選択します。

  • [App Service Application logs]を選択します。

  • [Send to Log Analytics workspace]を選択します。

    • Log Analyticsを選択するか、新規で作成します。

8. ログをセットアップ

メイン メニューから[Logs]を選択します。[X]をクリックしてクエリウィンドウを閉じます。

以下は、Dockerデプロイメントと起動ログを見る手順となります。

AppServicePlatformLogs

project TimeGen=substring(TimeGenerated, 0, 19), Message
sort by TimeGen desc

以下は、アプリケーションエラーログを見る手順となります。

AppServiceConsoleLogs

project TimeGen=substring(TimeGenerated, 0, 19), ResultDescription
sort by TimeGen desc

9. App Serviceログのセットアップ

メインメニューの「Monitoring」の箇所から[App Service Logs]を選択します。次に、「Application logging」の[File System]を選択し、任意の保持期間を設定します。

[Save]をクリックします。

10. Log Streamを見る

メインメニューの「Overview」から[Log Stream]を選択し、オートメーターサービスが接続され、正しくログが記録されていることを確認します。

11. Health Checkの構成

メイン メニューの「Monitoring」から[Health check]を選択します。次に、ヘルス チェック機能を有効にし、パスの値を「/health」に設定します。[Save]をクリックして設定を保存し、もう一度[Save] をクリックして変更を確定します。

12. アクセス制限を構成

Networkingの箇所で簡単なアクセスルールを設定したり、Azure Front Doorを構成したりできます。 メインメニューか[Networking]を選択し、[Enable with no access restrictions] (アクセス制限なしで有効にする) をクリックします。

[Access Restrictions]で、[Enabled from select virtual networks and IP addresses] (選択した仮想ネットワークとIPアドレスを有効にする) を選択し、[Unmatched rule action] (一致しないルールアクション)を[Allow]にします。[+ Add]をクリックして、受信アクセスルールを追加します。

「Add rule」 (ルールの追加) で、受信ファイアウォールルールを追加します。以下のページをご参照の上、それぞれの地域で「Connection verification only」 (接続検証のみ) となっているKeeper公開IPアドレスへのトラフィックを制限する必要があります。

[Add rule]をクリックします。

[Save]をクリックして構成を保存します。

13. Keeperコマンダーへログイン

オートメーター構成の最終ステップを実行するには、Keeperコマンダーが必要です。これはどこからでも実行できます。サーバーにインストールする必要はありません。 ワークステーションまたはサーバーに、KeeperコマンダーCLI をインストールします。バイナリインストーラーを含むインストール手順については、こちらのページをご参照ください。

インストール後、Keeperコマンダーを起動するか、既存のターミナルからkeeper shellと入力してセッションを開き、loginコマンドを使用してログインします。オートメーターを設定するには、Keeper管理者またはSSOノードを管理できる管理者としてログインする必要があります。

$ keeper shell

My Vault> login admin@company.com

  _  __  
 | |/ /___ ___ _ __  ___ _ _ 
 | ' </ -_) -_) '_ \/ -_) '_|
 |_|\_\___\___| .__/\___|_|
 v16.x.xxx    |_|

 password manager & digital vault

Logging in to Keeper Commander
Enter password for admin@company.com
Password: ********************
Successfully authenticated with Master Password
Syncing...
Decrypted [58] record(s)

My Vault>

14. オートメーターを作成

automator createから始まる一連のコマンドを使用してオートメーターを作成します。

My Vault> automator create --name "My Automator" --node "Azure Cloud"

ノード名 (この場合は「Azure Cloud」) は、以下のように管理コンソールUIから取得します。

オートメーターの作成

コマンドを実行すると、IDプロバイダからのメタデータを含むオートメーター設定が表示されます。

                    Automator ID: 1477468749950
                            Name: My Automator
                             URL: 
                         Enabled: No
                     Initialized: No
                          Skills: Device Approval

「URL」はまだ入力されていないことにご留意ください。これは、手順5のDefault Domainの値です。

以下のように、「automator edit」コマンドを実行します。これにより、URL が設定され、スキル (teamteam_for_userdevice) も設定されます。

automator edit --url https://<Default domain> --skill=team --skill=team_for_user --skill=device "My Automator"

次に、キーを交換します。オートメーター公開キーで暗号化されたエンタープライズ秘密キーが オートメーターに提供されます。

automator setup "My Automator"

新しい構成でオートメーターを初期化します。

automator init "My Automator"

サービスを有効にします。

automator enable "My Automator"

この時点で構成は完了となります。

外部のヘルスチェックについては以下のURLをご使用ください。

https://<server>/health

以下は curl コマンドの例となります。

$ [rainer@iradar keeper]$ curl -vk https://keeperapprovalautomator.azurewebsites.net/health
* About to connect() to keeperapprovalautomator.azurewebsites.net port 443 (#0)
*   Trying 40.112.243.106...
* Connected to keeperapprovalautomator.azurewebsites.net (40.112.243.106) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* skipping SSL peer certificate verification
* SSL connection using TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
* Server certificate:
*       subject: CN=*.azurewebsites.net,O=Microsoft Corporation,L=Redmond,ST=WA,C=US
*       start date: Oct 31 23:08:36 2023 GMT
*       expire date: Jun 27 23:59:59 2024 GMT
*       common name: *.azurewebsites.net
*       issuer: CN=Microsoft Azure TLS Issuing CA 01,O=Microsoft Corporation,C=US
> GET /health HTTP/1.1
> User-Agent: curl/7.29.0
> Host: keeperapprovalautomator.azurewebsites.net
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Length: 2
< Content-Type: text/plain
< Date: Sat, 23 Mar 2024 05:08:13 GMT
< Server: Jetty(11.0.20)
< Strict-Transport-Security: max-age=31622400; includeSubDomains
<
* Connection #0 to host keeperapprovalautomator.azurewebsites.net left intact

ユーザー体験のテスト

Keeperオートメーターがデプロイされましたので、ユーザー体験をテストできます。ユーザーが SSO IDプロバイダで認証した後は、承認を求めるプロンプトが表示されなくなります。

最も簡単なテスト方法は、ブラウザでシークレットモードのウィンドウを開いてKeeperウェブボルトへアクセスし、SSOクラウドでログインすることとなります。デバイスの承認を求めるプロンプトは表示されません。

最終更新