第11章 シークレット管理システム
ユーザーとシステム管理者は、マシンとクラウドの認証情報をアップロードして、代わりに自動化でマシンや外部サービスにアクセスできるようにします。デフォルトでは、SSH パスワード、SSH 秘密鍵、クラウドサービスの API トークンなどの機密認証情報の値は、暗号化された後にデータベースに保存されます。
認証情報プラグインによって裏付けられた外部認証情報を使用すると、認証情報フィールド (パスワードや SSH 秘密鍵など) を、Automation Controller に直接提供する代わりに、シークレット管理システム
に保存されている値にマップできます。
Automation Controller は、以下の統合を含むシークレット管理システムを提供します。
- AWS Secrets Manager Lookup
- Centrify Vault Credential Provider Lookup
- CyberArk Central Credential Provider Lookup (CCP)
- CyberArk Conjur Secrets Manager Lookup
- 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 を実行する前にフェッチされます。
関連情報
ユーザーインターフェイスでシークレット管理システムの認証情報を指定する方法の詳細は、ユーザー認証情報の管理 を参照してください。
11.1. シークレットルックアップの設定とリンク
サードパーティーシステムからシークレットを取得する場合、認証情報フィールドを外部システムにリンクすることになります。認証情報フィールドを外部システムに保存されている値にリンクするには、そのシステムに対応する外部認証情報を選択し、必要な値を検索するための メタデータ
を指定します。メタデータ入力フィールドは、ソース認証情報の外部認証情報タイプ定義の一部です。
Automation Controller は、開発者、インテグレーター、システム管理者、パワーユーザー向けの認証情報プラグインインターフェイスを備えています。このインターフェイスから、新しい外部認証情報タイプを追加して、他のシークレット管理システムをサポートするように拡張できます。
Automation Controller で、サポート対象の各サードパーティーのシークレット管理システムを設定して使用するには、次の手順を実行します。
手順
シークレット管理システムで認証するための外部認証情報を作成します。少なくとも、外部認証情報の名前を指定し、Credential Type フィールドで次のいずれかを選択します。
- 外部認証情報にリンクする Type Details エリアに続くフィールドについては、入力フィールドの鍵アイコン をクリックし、1 つ以上の入力フィールドを、外部認証情報と、外部システム内のシークレットを検索するためのメタデータにリンクします。
- シークレット情報を取得するために使用する入力ソースを選択します。
リンクする認証情報を選択し、Metadata タブが表示されます。この例は、HashiVault Secret Lookup のメタデータプロンプトを示しています。メタデータは、選択した入力ソースに固有です。
をクリックします。これにより、入力ソースの詳細は、認証情報入力ソースのメタデータ の表を参照してください。
- をクリックして、シークレット管理システムへの接続を確認します。検索が失敗した場合は、エラーメッセージが表示されます。
- Details 画面に戻ります。 をクリックします。対象の認証情報の
- ステップ 3 から始めてこれらのステップを繰り返し、ターゲット認証情報の残りの入力フィールドを完了します。この方法で情報をリンクすることで、Automation Controller はユーザー名、パスワード、キー、証明書、トークンなどの機密情報をサードパーティーの管理システムから取得し、ターゲットの認証情報フォームの残りのフィールドにそのデータを入力します。
- 必要に応じて、機密情報の取得方法としてリンクを使用しないフィールドには、情報を手動で入力します。各フィールドの詳細は、適切な [認証情報のタイプ] を参照してください。
- をクリックします。
関連情報
詳細は、Credential プラグイン の開発ドキュメントを参照してください。
11.1.1. 認証情報入力ソースのメタデータ
入力ソースの Metadata タブに必要な情報です。
AWS Secrets Manager Lookup
メタデータ | 説明 |
---|---|
AWS Secrets Manager Region (必須) | シークレットマネージャーが配置されているリージョン。 |
AWS Secret Name (必須) | AWS アクセスキーによって生成された AWS シークレット名を指定します。 |
Centrify Vault Credential Provider Lookup
メタデータ | 説明 |
---|---|
アカウント名 (必須) | Centrify Vault に関連付けられたシステムアカウントまたはドメインの名前。 |
システム名 | Centrify ポータルが使用する名前を指定します。 |
CyberArk Central Credential Provider Lookup
メタデータ | 説明 |
---|---|
オブジェクトクエリー (必須) | オブジェクトの検索クエリー |
オブジェクトクエリーフォーマット (必須) |
特定のシークレット名には |
オブジェクトのプロパティー |
返すプロパティーの名前を指定します。たとえば、デフォルトの |
理由 | オブジェクトのポリシーごとに必要な場合は、CyberArk は理由のログを記録するので、シークレットをチェックアウトする理由を指定します。 |
CyberArk Conjur Secrets Lookup
メタデータ | 説明 |
---|---|
シークレット識別子 | シークレットの識別子 |
シークレットのバージョン | 必要に応じてシークレットのバージョンを指定します。しない場合には、空白にしておくと、最新バージョンが使用されます。 |
HashiVault Secret Lookup
メタデータ | 説明 |
---|---|
シークレットバックエンドの名前 | 使用する KV バックエンドの名前を指定します。代わりに Path to Secret フィールドの最初のパスセグメントを使用するには、空白のままにします。 |
シークレットへのパス (必須) |
|
キー名 (必須) | シークレット情報を検索するキーの名前を指定します。 |
シークレットのバージョン (V2 のみ) | 必要に応じてバージョンを指定します。しない場合には、空白にしておくと、最新バージョンが使用されます。 |
HashiCorp Signed SSH
メタデータ | 説明 |
---|---|
未署名の公開鍵 (必須) | 署名する証明書の公開鍵を指定します。これは、ターゲットホストの認証キーファイルに存在する必要があります。 |
シークレットへのパス (必須) |
|
ロール名 (必須) | ロールは、Hashi vault に保存される SSH 設定とパラメーターのコレクションです。通常、たとえば、異なる特権やタイムアウトを持つロールを指定できます。したがって、たとえば、ルートに対して署名された証明書の取得を許可されたロールと、その他の権限の低いロールを指定できます。 |
有効なプリンシパル | 格納されているキーの証明書を承認するために Vault に要求する、デフォルト以外のユーザー (複数可) を指定します。Hashi Vault には、署名するデフォルトのユーザー (ec2-user など) があります。 |
Microsoft Azure KMS
メタデータ | 説明 |
---|---|
シークレット名 (必須) | Microsoft Azure の Key Vault アプリで参照されるシークレットの名前。 |
シークレットのバージョン | 必要に応じてシークレットのバージョンを指定します。しない場合には、空白にしておくと、最新バージョンが使用されます。 |
Thycotic DevOps Secrets Vault
メタデータ | 説明 |
---|---|
シークレットパス (必須) | 機密情報が保存されるパスを指定します (例:/path/username)。 |
Thycotic Secret Server
メタデータ | 説明 |
---|---|
シークレット ID (必須) | シークレットの識別子 |
シークレットフィールド | シークレットから使用するフィールドを指定します。 |
11.1.2. AWS Secrets Manager lookup
このプラグインにより、Amazon Web Services を認証情報入力ソースとして使用し、Amazon Web Services Secrets Manager からシークレットを取得できるようになります。AWS Secrets Manager は、Microsoft Azure Key Vault と同様のサービスを提供しており、AWS コレクションでそのためのルックアッププラグインが提供されています。
Credential type に AWS Secrets Manager lookup を選択した場合は、ルックアップを設定するために次のメタデータを指定します。
- AWS Access Key (必須): AWS キー管理システムとの通信に使用するアクセスキーを指定します。
- AWS Secret Key (必須): AWS IAM コンソールで取得したシークレットを指定します。
11.1.3. Centrify Vault Credential Provider Lookup
この統合が機能するには、Centrify Vault Web サービスを実行してシークレットを保存する必要があります。Credential Type に Centrify Vault Credential Provider Lookup を選択した場合は、次のメタデータを指定してルックアップを設定します。
- Centrify Tenant URL (必須): Centrify のシークレット管理システムとの通信に使用する URL を指定します。
- Centrify API User (必須): ユーザー名を指定します。
- Centrify API Password (必須): パスワードを指定します。
- OAuth2 Application ID: OAuth2 クライアントに関連付けられている特定の識別子を指定します。
- OAuth2 Scope: OAuth2 クライアントのスコープを指定します。
11.1.4. CyberArk Central Credential Provider (CCP) Lookup
この統合が機能するようするには、CyberArk Central Credential Provider Web サービスが稼働中で、シークレットを保存する必要があります。Credential Type に CyberArk Central Credential Provider Lookup を選択した場合は、次のメタデータを指定して検索を設定します。
- CyberArk CCP URL (必須): CyberArk CCP のシークレット管理システムとの通信に使用する URL を指定します。http や https などの URL スキームを含める必要があります。
- オプション: Web Service ID: Web サービスの識別子を指定します。これを空白のままにすると、デフォルトで AIMWebService になります。
- Application ID (必須): CyberArk AIM サービスで提供される識別子を指定します。
- Client Key: クライアントキーを貼り付けます (CyberArk から提供されている場合)。
-
Client Certificate: 証明書を貼り付けるときに
BEGIN CERTIFICATE
行とEND CERTIFICATE
行を含めます (CyberArk から提供されている場合)。 - Verify SSL Certificates: このオプションは、URL が HTTPS を使用している場合にのみ使用できます。サーバーの SSL/TLS 証明書が有効で信頼できるかどうかを検証するには、このオプションをオンにします。内部 CA またはプライベート CA を使用する環境では、このオプションをオフのままにして検証を無効にしてください。
11.1.5. CyberArk Conjur Secrets Manager Lookup
Conjur Cloud テナントをターゲットとして使用できる場合、CyberArk Conjur Secrets Lookup 外部管理システム認証情報プラグインを設定します。
Credential Type に CyberArk Conjur Secrets Manager Lookup を選択した場合は、次のメタデータを指定してルックアップを設定します。
- Conjur URL (必須): CyberArk Conjur のシークレット管理システムとの通信に使用する URL を指定します。これには、http や https などの URL スキームが含まれている必要があります。
- API キー (必須): Conjur の管理者から受け取ったキーを指定します。
- アカウント (必須): 組織のアカウント名
- ユーザー名 (必須): このサービス用に認証するユーザー
-
公開鍵鍵証明書: CyberArk から提供されている場合、公開鍵を貼り付けるときに
BEGIN CERTIFICATE
およびEND CERTIFICATE
の行を含めます。
11.1.6. HashiCorp Vault Secret Lookup
Credential Type に HashiCorp Vault Secret Lookup を選択した場合は、次のメタデータを指定してルックアップを設定します。
- Server URL (必須): HashiCorp Vault のシークレット管理システムとの通信に使用する URL を指定します。
- Token: HashiCorp のサーバーの認証に使用するアクセストークンを指定します。
- CA Certificate: HashiCorp のサーバーの検証に使用される CA 証明書を指定します。
- AppRole role_id: 認証に AppRole を使用している場合は、ID を指定します。
- AppRole secret_id: AppRole 認証に対応するシークレット ID を指定します。
- Client Certificate: Hashicorp Vault が必要とする中間証明書など、TLS 認証方法を使用する場合に、PEM でエンコードされたクライアント証明書を指定します。
- Client Certificate Key: TLS 認証方法を使用する場合に、PEM でエンコードされた証明書の秘密鍵を指定します。
- TLS Authentication Role: TLS 認証方法の使用時にクライアント証明書に対応する Hashicorp Vault でロールまたは証明書名を指定します。指定しないと、Hashicorp Vault は証明書を自動的に一致しようとします。
- Namespace name: namespace 名を指定します (Hashicorp Vault エンタープライズのみ)。
- Kubernetes role: Kubernetes 認証の使用時にロール名を指定します。
- Username: このサービスの認証に使用されるユーザーのユーザー名を入力します。
- Password: このサービスの認証に使用するユーザーに関連付けられたパスワードを入力します。
-
Path to Auth:
/approle
のデフォルトパス以外のパスを指定します。 - API Version (必須): 静的ルックアップの場合は v1 を選択し、バージョンを含むルックアップの場合は v2 を選択します。
LDAP 認証では、HashiCorp の Vault UI で LDAP を設定し、ユーザーに追加するポリシーを設定する必要があります。cubbyhole は、デフォルトのシークレットマウントの名前です。適切なパーミッションがある場合は、他のマウントを作成し、キー値をそれらに書き込むことができます。
ルックアップをテストするには、Hashicorp Vault ルックアップを使用する別の認証情報を作成します。
関連情報
LDAP 認証方式およびそのフィールドの詳細は、LDAP 認証メソッドの Vault ドキュメント を参照してください。
AppRole 認証メソッドおよびそのフィールドの詳細は、AppRole auth method の Vault のドキュメント を参照してください。
userpass 認証メソッドおよびそのフィールドの詳細は、userpass auth method の Vault のドキュメント を参照してください。
Kubernetes の auth メソッドおよびそのフィールドの詳細は、Kubernetes auth method の Vault のドキュメント を参照してください。
TLS 証明書認証メソッドおよびそのフィールドの詳細は、TLS certificates auth method の Vault のドキュメント を参照してください。
11.1.7. HashiCorp Vault Signed SSH
Credential Type に HashiCorp Vault Signed SSH を選択した場合は、次のメタデータを指定してルックアップを設定します。
- Server URL (必須): HashiCorp 署名の SSH のシークレット管理システムとの通信に使用する URL を指定します。
- Token: HashiCorp のサーバーの認証に使用するアクセストークンを指定します。
- CA Certificate: HashiCorp のサーバーの検証に使用される CA 証明書を指定します。
- AppRole role_id: AppRole 認証の ID を指定します。
- AppRole secret_id: AppRole 認証に対応するシークレット ID を指定します。
- Client Certificate: Hashicorp Vault が必要とする中間証明書など、TLS 認証方法を使用する場合に、PEM でエンコードされたクライアント証明書を指定します。
- Client Certificate Key: TLS 認証方法を使用する場合に、PEM でエンコードされた証明書の秘密鍵を指定します。
- TLS Authentication Role: TLS 認証方法の使用時にクライアント証明書に対応する Hashicorp Vault でロールまたは証明書名を指定します。指定しないと、Hashicorp Vault は証明書を自動的に一致しようとします。
- Namespace name: namespace 名を指定します (Hashicorp Vault エンタープライズのみ)。
- Kubernetes role: Kubernetes 認証の使用時にロール名を指定します。
- Username: このサービスの認証に使用されるユーザーのユーザー名を入力します。
- Password: このサービスの認証に使用するユーザーに関連付けられたパスワードを入力します。
-
Path to Auth:
/approle
のデフォルトパス以外のパスを指定します。
関連情報
AppRole 認証メソッドおよびそのフィールドの詳細は、AppRole auth method の Vault のドキュメント を参照してください。
Kubernetes の認証メソッドおよびそのフィールドの詳細は、Kubernetes auth method の Vault ドキュメント を参照してください。
TLS 証明書認証メソッドおよびそのフィールドの詳細は、TLS certificates auth method の Vault のドキュメント を参照してください。
11.1.8. Microsoft Azure Key Vault
Credential Type に Microsoft Azure Key Vault を選択した場合は、次のメタデータを指定してルックアップを設定します。
- Vault URL (DNS Name) (必須): Microsoft Azure の鍵管理システムとの通信に使用する URL を指定します。
- Client ID (必須): Microsoft Entra ID によって取得された識別子を指定します。
- Client Secret (必須): Microsoft Entra ID によって取得されたシークレットを指定します。
- Tenant ID (必須): Azure サブスクリプション内の Microsoft Entra ID インスタンスに関連付けられた一意の識別子を指定します。
- Cloud Environment: 適用するクラウド環境を選択します。
11.1.9. Thycotic DevOps Secrets Vault
Credential Type に Thycotic DevOps Secrets Vault を選択した場合は、次のメタデータを指定してルックアップを設定します。
- Tenant (必須): Thycotic のシークレット管理システムとの通信に使用する URL を指定します
- Top-level Domain (TLD): 統合するシークレット Vault に関連付けられたトップレベルドメインの指定 (com、edu、org など) を提供します。
- Client ID (必須): Thycotic のシークレット管理システムによって取得された識別子を指定します。
- Client Secret (必須): Thycotic のシークレット管理システムによって取得されたシークレットを指定します。
11.1.10. Thycotic Secret Server
Credential Type に Thycotic Secrets Server を選択した場合は、次のメタデータを指定してルックアップを設定します。
- Secret Server URL (必須): Thycotic Secrets Server 管理システムとの通信に使用する URL を指定します。
- Username (必須): このサービスの認証済みユーザーを指定します。
- Domain: (アプリケーション) ユーザードメインを指定します。
- Password (必須): ユーザーに関連付けられたパスワードを指定します。