HashiCorp Vault 統合
- 最終更新日2024/10/31
HashiCorp Vault 統合
Automation 360 を統合して、HashiCorp Vault から資格情報を取得できます。資格情報は、HashiCorp Vault に存在し、マネージ、ローテーション、同期を行うことができます。
注: HashiCorp のマークとロゴは、HashiCorp, Inc. の商標または登録商標であり、識別のみを目的として使用されています。
Control Room は、HashiCorp HTTP API を通して HashiCorp Vault と接続することで統合されます。
次の表は、様々なデプロイ タイプ別のサポートされる機能のリストです。
機能 | クラウド | オンプレミス |
---|---|---|
エージェント オートメーション資格情報 | サポート対象 | サポート対象 |
エージェント自動ログイン資格情報 | サポート対象 | サポート対象 |
ブートストラップ資格情報とシステム資格情報 | サポート対象外 | サポート対象 |
これらのデプロイのいずれかを使用して、Control Room と HashiCorp Vault を統合できます。
-
クラウド
次の図は、クラウドのデプロイを示しています。この場合、Control Room は AAI Cloud 上でホストされています。
-
オンプレミス
オンプレミスのデプロイの場合、次をデプロイします。
- お客様の環境内のソフトウェアとしての Control Room。
- お客様の環境内の Bot エージェント (この場合、オートメーションが実行され、お客様のアプリケーションにアクセスできる環境)。
注: また、インターネット経由で On-Premises Control Room を HashiCorp クラウドに接続することもできます。
HashiCorp Vault の統合要件
- HashiCorp サービスは、 Control Roomからアクセスできるようにする必要があります。
- HashiCorp 外部キー Vault は、Cloud Control Room からネットワーク境界ファイアウォールのルールで到達可能である必要があります。外部ファイアウォール ルール構成の詳細については、「外部統合の Control Room IP アドレス」を参照してください。
- 次を使用していることを確認します。
- HashiCorp Vault 1.13.x または 1.14.x および HashiCorp KV シークレット エンジン - バージョン 2。
- デフォルトのシークレット エンジン パスは /secret です。すべてのシークレットは、シークレット エンジン (/secret) のルートの下に作成する必要があります。HashiCorp Vault API にアクセスするために、Control Room は自動的にデフォルトのシークレット エンジン パス v1/secret/data を、入力した Vault の URL に追加します (例: https://<hostname1:port_num>/v1/secret/data)。指定された RoleID を持つロールがこのパスへの最低限の読み取り権限を持っており、すべてのシークレットがシークレット エンジンで作成されていることを確認してください。
- HashiCorp Vault REST API
- API エンジン パスは /v1/secret/data です。
-
X-Vault-Namespace
ヘッダーを絶対または相対の名前空間パスに設定することにより、特定の名前空間で API 操作を実行します。 - デフォルトのパス名を「approle」として AppRole を使用する認証方式。カスタム AppRole パス名はサポートされていません。
HashiCorp Vault のインストール
HashiCorp Vault をインストールし、設定する必要があります。「HCP Vault Quick Start」を参照してください。
HashiCorp Vault で AppRole を使用する
AppRole は、HashiCorp Vault でアプリケーションが Vault とやり取りするために使用する認証方法です。AppRole では、認証に次の値を使用します。
- RoleID: AppRole の一意な識別子です。ロール ID は、アプリケーションの任意の数のインスタンスで使用できます。
- SecretID: AppRole の認証に使用されるランダムに生成された値です。シークレット ID は、アプリケーションの単一インスタンスを対象とし、短期的に使用され、承認されたアプリケーションでのみ使用できます。重要: この値を共有することはお勧めしません。
- ロール名: ロールは、ロール名で表示されます。
- 名前空間: シークレットのグループを作成し、それらの名前空間にポリシーを適用することで、権限を持つシークレットにのみ各テナントがアクセスできるようにします。
AppRole の設定方法については、「AppRole Auth Method」を参照してください。
サーバー証明書のインポート
オンプレミス デプロイでは、個々のサーバー証明書をトラストストアにインポートすることができます。ただし、発行元の認証局 (CA) 証明書をインポートすることを推奨します。詳細については、「HTTPS SSL 証明書、中間証明書、および CA 証明書のインポート」を参照してください。
- クライアント (Automation 360 Control Room) は、HashiCorp Vault (保護されたリソース) にリクエストを送信します。
- 次に、サーバーはクライアントに証明書を返送することで応答します。
- Control Room は、HashiCorp サーバーから送信された証明書を、Control Room トラストストアの公開部分に格納されている信頼済みのサーバー証明書情報と照合して検証することで確認します。
- クライアントとサーバーは、証明書が検証され次の要件を満たせば、保護されたリソースにアクセスできるようになります。
- Control Room が HashiCorp サーバーで証明書を信頼している
- 証明書の件名フィールドが呼び出しシステムの完全修飾ドメイン名 (DNS 名) と一致している
- 証明書の有効期限が切れていない
HashiCorp HTTP API の構成要件
Control Room と HashiCorp サーバーの間でネットワークが接続されている必要があります。Control Room は、オンプレミスまたは クラウド のいずれのデプロイでも HashiCorp HTTP API を介して HashiCorp Vault と接続されます。
HashiCorp API を使用するは、次の必須パラメーターを設定する必要があります。
- Vault の URL
- ロール ID
- ロール名
- シークレット ID
- 秘密エンジン パス
- 名前空間 (任意):
- 任意の認証
HashiCorp 資格情報の用語と識別子を確認する
HashiCorp と Automation Anywhere は、資格情報を説明し、識別するために異なる用語を使用しています。
説明 | HashiCorp | Automation Anywhere |
---|---|---|
資格情報が保存される場所 | シークレット | 資格情報 |
- HashiCorp の資格情報は、シークレットとして保存されます。
- Automation Anywhere の資格情報はロッカーに格納され、各ロッカーは Control Room ユーザーに対してアクセス制御を行うことができます。
- ユーザー名: john
- パスワード: 2zR%#sX#g
- E メール: john@email.com
- パスコード: my-long-passcode
HashiCorp シークレット ID のローテーション
Control Room は、テナントの HashiCorp シークレット ID を積極的にローテーションするために、スケジュール設定済みジョブを実行します。このプロセスにより、キー Vault 資格情報を含むオートメーションが途切れることなく実行されるようになります。デフォルトでは、シークレット ID は 1 時間ごとにローテーションされます。シークレット ID は、シークレット ID の有効期限に基づいて変更されます。シークレット ID の 3 分の 2 の有効期限が切れた時点で、シークレット ID を変更することができます。
HashiCorp シークレット ID のローテーションに失敗した場合は、以下のクラウドまたはオンプレミスの手順を使用して、シークレット ID を手動で変更できます。
- クラウド: HashiCorp Vault を使用するクラウド統合
- オンプレミス: HashiCorp Vault を使用するオンプレミスのポストインストール。