ユーザーおよび管理者は、ユーザーや管理者に代わってマシンや外部サービスにアクセスできるように、マシンとクラウドの認証情報をアップロードします。デフォルトでは、機密認証情報の値 (SSH パスワード、SSH 秘密鍵、クラウドサービスの API トークン) は、暗号化後にデータベースに保存されます。認証情報プラグインによりサポートされる外部認証情報では、コントローラーに直接指定せずに、認証情報フィールド (パスワードまたは SSH 秘密鍵) を secret management system に保存されている値にマッピングできます。automation controller では、以下と統合できるシークレット管理システムが含まれています。
Centrify Vault Credential Provider Lookup
CyberArk の Application Identity Manager (AIM)
CyberArk Conjur
HashiCorp Vault Key-Value Store (KV)
HashiCorp Vault SSH Secrets Engine
Microsoft Azure Key Management System (KMS)
Thycotic DevOps Secrets Vault
Thycotic Secret Server
これらのシークレットの値は、Playbook で必要となるため、Playbook の実行前にフェッチされます。ユーザーインターフェースでのこれらの認証情報の指定に関する情報は、「認証情報」を参照してください。
automation controller がサードパーティーシステムからシークレットをプルするように設定されている場合は、認証情報フィールドと外部システムをリンクする必要があります。外部システムに保存している値に認証情報フィールドをリンクするには、対象のシステムに適した外部認証情報を選択し、metadata を指定して任意の値をルックアップします。メタデータの入力フィールドは、source credential の external credential type 定義に含まれます。
Automation controller は、開発者、インテグレーター、管理者、およびパワーユーザーに credential plugin インターフェースを提供して、外部の認証情報タイプを新たに追加することで拡張し、他のシークレット管理システムをサポートできるようにします。詳細は、「development docs for credential plugins」を参照してください。
サポートされているサードパーティーの各シークレット管理システムごとに設定して使用するには、automation controller ユーザーインターフェースを使用します。
まず、シークレット管理システムとの認証向けの外部認証情報を作成します。最低でも、外部認証情報の名前を指定し、認証情報タイプ で以下のいずれかを選択します。
ターゲット認証情報の認証情報フォームに移動して、1 つまたは複数の入力フィールドを、外部の認証情報および外部システムのシークレットの場所を特定するメタデータとリンクします。以下の例では、Demo Credential がターゲット認証情報です。
外部認証情報にリンクする タイプの詳細 エリアの下のフィールドについては、入力フィールドの ボタンをクリックします。使用する入力ソースを設定して、シークレット情報を取得するようにプロンプトが表示されます。
リンクする認証情報を選択して、次へ をクリックすると、入力ソースのメタデータタブに移動します。以下の例は、HashiVault Secret Lookup のメタデータのプロンプトです。
必要なメタデータは、選択した入力ソースにより異なります。
入力ソース |
メタデータ |
説明 |
---|---|---|
Centrify Vault Credential Provider Lookup |
Account Name (Required) |
Name of the system account or domain associated with Centrify Vault. |
System Name |
Specify the name used by the Centrify portal. |
|
** CyberArk AIM ** |
オブジェクトクエリー (必須) |
オブジェクトの検索クエリー |
オブジェクトクエリーフォーマット (必須) |
Select |
|
理由 |
オブジェクトのポリシーごとに必要な場合は、CyberArk は理由のログを記録するので、シークレットをチェックアウトする理由を指定します。 |
|
CyberArk Conjur |
シークレット識別子 |
シークレットの識別子 |
シークレットのバージョン |
必要に応じてシークレットのバージョンを指定します。しない場合には、空白にしておくと、最新バージョンが使用されます。 |
|
HashiVault Secret Lookup |
シークレットバックエンドの名前 |
使用する KV バックエンドの名前を指定します。Path to Secret フィールドの最初のパスセグメントを使用する場合は空白にします。 |
シークレットへのパス (必須) |
シークレット情報が保存されているパスを指定します (例: /path/username)。 |
|
キー名 (必須) |
シークレット情報を検索するキーの名前を指定します。 |
|
シークレットのバージョン (V2 のみ) |
必要に応じてバージョンを指定します。しない場合には、空白にしておくと、最新バージョンが使用されます。 |
|
HashiCorp が署名した SSH |
未署名の公開鍵 (必須) |
署名する証明書の公開鍵を指定します。ターゲットホストの認可キーファイルに存在させておく必要があります。 |
シークレットへのパス (必須) |
シークレット情報が保存されているパスを指定します (例: /path/username)。 |
|
ロール名 (必須) |
ロールは、Hashi Vault に保存されている、SSH 設定とパラメーターのコレクションです。通常、異なる特権、タイムアウトなどが指定されたロールを 2 つ指定できます。そのため、以下のように、Root と、権限が低いユーザー向けに署名された証明書を取得できるロールを指定できます。 |
|
有効なプリンシパル |
デフォルト以外に、Vault を要求するユーザー (単数または複数) を指定して、保存したキーの証明書を認可します。Hashi Vault には、署名済みのデフォルトユーザーが含まれます (例: ec2-user)。 |
|
Azure KMS |
シークレット名 (必須) |
Azure の Key Vault アプリで参照されるとおりの、実際のシークレット名 |
シークレットのバージョン |
必要に応じてシークレットのバージョンを指定します。しない場合には、空白にしておくと、最新バージョンが使用されます。 |
|
Thycotic DevOps Secrets Vault |
Secret Path (required) |
シークレット情報が保存されているパスを指定します (例: /path/username)。 |
Thycotic Secret Server |
Secret ID (required) |
シークレットの識別子 |
Secret Field |
Specify the field to be used from the secret. |
テスト をクリックして、シークレット管理システムへの接続を検証します。ルックアップに失敗した場合は、以下のようなエラーメッセージが表示されます。
完了したら OK をクリックします。OK をクリックすると、プロンプトウィンドウが閉じ、ターゲット認証情報の詳細画面に移動します。「step 3 above」以降の 手順を繰り返して ターゲット認証情報の残りの入力フィールドに値を投入します。この方法で情報をリンクすることで、automation controller はユーザー名、パスワード、キー、証明書、トークンなどの機密情報を、サードパーティーの管理システムから取得して、このデータをターゲット認証情報のフォームの残りのフィールドに投入します。
必要に応じて、機密情報を取得する方法でリンクを使用しないフィールドについては、手動で情報を指定します。フィールドごとの詳細は、「認証情報タイプ」を参照してください。
完了したら 保存 をクリックします。
You need the Centrify Vault web service running to store secrets in order for this integration to work. When Centrify Vault Credential Provider Lookup is selected for Credential Type, provide the following metadata to properly configure your lookup:
Centrify Tenant URL (required): provide the URL used for communicating with Centrify's secret management system
Centrify API User (required): provide the username
Centrify API Password (required): provide the password
OAuth2 Application ID : specify the identifier given associated with the OAuth2 client
OAuth2 Scope : specify the scope of the OAuth2 client
以下では、CyberArk AIM 認証情報の設定例を示します。
この統合を有効にするには、CyberArk Central Credential Provider の Web サービスを実行してシークレットを保存する必要があります。Credential Type で CyberArk AIM Credential Provider Lookup が選択されている場合は、以下のメタデータを指定して、ルックアップを正しく設定してください。
CyberArk AIM URL (必須): CyberArk AIM のシークレット管理システムとの通信に使用する URL を指定します。
アプリケーション ID (必須): CyberArk AIM サービスで提供される識別子を指定します。
クライアントキー: CyberArk から提供される場合はクライアントキーを貼り付けます。
クライアント証明書: CyberArkから提供される場合は、証明書を貼り付けるときに BEGIN CERTIFICATE
および END CERTIFICATE
を追加します。
SSL 証明書の検証: URL が HTTPS を使用する場合は、このオプションのみを使用できます。このオプションを選択して、サーバーの SSL 証明書が有効で信頼されていることを検証できるようにします。内部またはプライベートの CA を使用する環境では、このオプションの選択を解除して、検証を無効にします。
以下では、CyberArk AIM 認証情報の設定例を示します。
認証情報タイプ に CyberArk Conjur Secret Lookup が選択されている場合には、以下のメタデータを指定して、ルックアップを正しく設定します。
Conjur URL (必須): CyberArk Conjur のシークレット管理システムとの通信に使用する URL を指定します。
API キー (必須): Conjur の管理者から受け取ったキーを指定します。
アカウント (必須): 組織のアカウント名
ユーザー名 (必須): このサービス用に認証するユーザー
公開鍵証明書: CyberArkから提供される場合は、公開鍵を貼り付けるときに BEGIN CERTIFICATE
および END CERTIFICATE
を追加します。
以下では、CyberArk Conur 認証情報の設定例を示します。
認証情報タイプ に HashiCorp Vault Secret Lookup が選択されている場合には、以下のメタデータを指定して、ルックアップを正しく設定します。
サーバー URL (必須): HashiCorp Vault のシークレット管理システムとの通信に使用する URL を指定します。
トークン (必須): HashiCorp のサーバーの認証に使用するアクセストークンを指定します。
CA 証明書: HashiCorp のサーバーの検証に使用される CA 証明書を指定します。
Approle Role_ID: Approle 認証の ID を指定します。
Approle Secret_ID: Approle 認証に対応するシークレット ID を指定します。
Approle 認証へのパス: /approle
のデフォルトパス以外のパスを指定します。
API バージョン (必須): 静的なルックアップには v1 を、バージョン化されたルックアップには v2 を選択します。
Approle およびそのフィールドの詳細は、「Vault documentation for Approle Auth Method」を参照してください。以下に、設定した HashiCorp Vault Secret Lookup 認証情報の例を示しています。
認証情報タイプ に HashiCorp Vault 署名の SSH が選択されている場合には、以下のメタデータを指定して、ルックアップを正しく設定します。
サーバー URL (必須): HashiCorp 署名の SSH のシークレット管理システムとの通信に使用する URL を指定します。
トークン (必須): HashiCorp のサーバーの認証に使用するアクセストークンを指定します。
CA 証明書: HashiCorp のサーバーの検証に使用される CA 証明書を指定します。
Approle Role_ID: Approle 認証の ID を指定します。
Approle Secret_ID: Approle 認証に対応するシークレット ID を指定します。
Approle 認証へのパス: /approle
のデフォルトパス以外のパスを指定します。
Approle およびそのフィールドの詳細は、「Vault documentation for Approle Auth Method」を参照してください。
以下では、HashiCorp SSH Secrets Engine 認証情報の設定例を示します。
認証情報タイプ に Microsoft Azure Key Vault が選択されている場合には、以下のメタデータを指定して、ルックアップを正しく設定します。
Vault URL (DNS 名) (必須): HashiCorp Vault のシークレット管理システムとの通信に使用する URL を指定します。
クライアント ID (必須): Azure Active Directory が取得した通りの識別子を指定します。
クライアントシークレット (必須): Azure Active Directory が取得した通りのシークレットを指定します。
テナント ID (必須): Azure サブスクリプション内の Azure Active Directory インスタンスと関連する一意識別子を指定します。
クラウド環境: 適用するクラウド環境を選択します。
以下では、Microsoft Azure KMS 認証情報の設定例を示します。
When Thycotic DevOps Secrets Vault is selected for Credential Type, provide the following metadata to properly configure your lookup:
Tenant (required): provide the URL used for communicating with Thycotic's secret management system
Top-level Domain (TLD) : provide the top-level domain designation (e.g., com, edu, org) associated with the secret vault you want to integrate
Client ID (required): provide the identifier as obtained by the Thycotic secret management system
Client Secret (required): provide the secret as obtained by the Thycotic secret management system
Below shows an example of a configured Thycotic DevOps Secrets Vault credential.
When Thycotic Secrets Server is selected for Credential Type, provide the following metadata to properly configure your lookup:
Secret Server URL (required): provide the URL used for communicating with the Thycotic Secrets Server management system
Username (required): specify the authenticated user for this service
Password (required): provide the password associated with the user
Below shows an example of a configured Thycotic Secret Server credential.