第14章 シークレットの処理と接続セキュリティー
Automation Controller はシークレットと接続をセキュアに処理します。
14.1. シークレットの処理 リンクのコピーリンクがクリップボードにコピーされました!
Automation Controller は 3 つのシークレットのセットを管理します。
- ローカル Automation Controller ユーザーのユーザーパスワード。
- データベースのパスワードやメッセージバスのパスワードなど、Automation Controller の運用に使用するシークレット。
- SSH キー、クラウド認証情報、外部パスワード vault 認証情報など、自動化で使用するシークレット。
次のユーザーに対しては 'ローカル' のユーザーアクセス権が必要です。
- postgres
- awx
- redis
- receptor
- nginx
14.1.1. ローカルユーザー用のユーザーパスワード リンクのコピーリンクがクリップボードにコピーされました!
Automation Controller は、SHA256 ハッシュを使用して、PBKDF2 アルゴリズムでローカル Automation Controller ユーザーのパスワードをハッシュします。LDAP、SAML、OAuth などの外部アカウントメカニズムで認証を行うユーザーの場合は、パスワードやシークレットが保存されません。
14.1.2. 運用に使用するシークレットの処理 リンクのコピーリンクがクリップボードにコピーされました!
Automation Controller が、サービスを適切に実行するために必要な運用シークレットを処理する方法を学習します。
Automation Controller には、運用に使用する以下のシークレットが存在します。
-
/etc/tower/SECRET_KEY: データベース内の自動化シークレットを暗号化するために使用するシークレットキー。SECRET_KEYが変更された場合や不明な場合は、データベース内の暗号化されたフィールドにアクセスできません。 -
/etc/tower/tower.{cert,key}: Automation Controller Web サービスの SSL/TLS 証明書とキー。システムは、デフォルトで自己署名の証明書または鍵をインストールします。ローカルに適切な証明書およびキーを指定できます。 -
/etc/tower/conf.d/postgres.pyにあるデータベースのパスワード、および/etc/tower/conf.d/channels.pyにあるメッセージバスのパスワード
システムは、起動時に Automation Controller サービスが自動化された方法で読み取る必要があるため、これらのシークレットを Automation Controller サーバーに暗号化せずに保存します。UNIX パーミッションは、すべてのシークレットを保護し、それらを root および Automation Controller の awx サービスユーザーに制限します。
これらのシークレットを非表示にする必要がある場合、当該シークレットの読み取り元となるファイルは Python によって解釈されます。これらのファイルは、サービスが再起動するたびに、他のメカニズムでこれらのシークレットを取得するように調整できます。この変更はお客様により指定されるものであり、アップグレードのたびに再適用が必要な場合があります。Red Hat サポートと Red Hat コンサルティングは、そのような変更の例を有しています。
シークレットシステムがダウンしていると、Automation Controller が情報を取得できず、サービスが復元されれば回復できるような障害が発生する可能性があります。システムで冗長性を使用することを強く推奨します。
Automation Controller が生成した SECRET_KEY が侵害され、再生成する必要があると思われる場合は、Automation Controller のバックアップおよび復元ツールと同様に動作するインストールプログラムからツールを実行できます。
新しいシークレットキーを生成する前に、Automation Controller データベースを必ずバックアップしてください。
新しいシークレットキーを生成するには、以下を実行します。
- バックアップおよび復元 セクションで説明されている手順に従います。
インストールのインベントリー (バックアップと復元の実行に使用したのと同じインベントリー) を使用して、次のコマンドを実行します。
setup.sh -k.
setup.sh -k.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
以前のキーのバックアップコピーは /etc/tower/ に保存されます。
14.1.3. 自動化で使用するシークレットの処理 リンクのコピーリンクがクリップボードにコピーされました!
Automation Controller は、自動化に使用するシークレットや、自動化の結果であるさまざまなシークレットをデータベースに保存します。
これらのシークレットには以下が含まれます。
- すべての認証情報タイプの全シークレットフィールド (パスワード、シークレットキー、認証トークン、シークレットクラウド認証情報)。
- Automation Controller 設定で定義された外部サービスのシークレットトークンとパスワード。
- “password” タイプのサーベイフィールドのエントリー。
シークレットフィールドを暗号化するために、Automation Controller は、認証に SHA256 を使用して、暗号化用の 256 ビットキー、PKCS7 パディング、および HMAC を使用した CBC モードの AES を使用します。
暗号化や復号化のプロセスでは、SECRET_KEY、モデルフィールドのフィールド名、およびデータベースによって割り当てられた自動増分レコード ID から AES-256 ビット暗号化キーが導出されます。したがって、キー生成プロセスで使用される属性が変更された場合、Automation Controller はシークレットを正しく復号化できません。
Automation Controller は次のように設計されています。
-
Automation Controller が起動する Playbook では、
SECRET_KEYを読み取ることはできません。 - Automation Controller ユーザーは、これらのシークレットを読み取ることはできません。
- Automation Controller REST API によって、シークレットフィールド値が利用可能になることはありません。
Playbook でシークレット値が使用されている場合は、誤ってログに記録されないように、タスクで no_log を使用することを推奨します。
14.1.4. 接続セキュリティー リンクのコピーリンクがクリップボードにコピーされました!
Automation Controller を使用すると、内部サービス、外部アクセス、および管理対象ノードへの接続が可能になります。
次のユーザーに対しては 'ローカル' のユーザーアクセス権が必要です。
- postgres
- awx
- redis
- receptor
- nginx
14.1.5. 内部サービス リンクのコピーリンクがクリップボードにコピーされました!
Automation Controller は、内部操作の一環として次のサービスに接続します。
- PostgreSQL データベース
- PostgreSQL データベースへの接続は、ローカルホスト経由またはリモート (外部データベース経由) で、TCP を介したパスワード認証によって行われます。この接続では、インストールプログラムサポートによってネイティブに設定されている、PostgreSQL の組み込み SSL/TLS サポートを使用できます。SSL/TLS プロトコルは、デフォルトの OpenSSL 設定によって設定されます。
- Redis キーまたは値のストア
- Redis への接続は、ローカルの UNIX ソケットを介して行われ、awx サービスユーザーに制限されます。
14.1.6. 外部アクセス リンクのコピーリンクがクリップボードにコピーされました!
Automation Controller が HTTP および HTTPS 経由で外部アクセスを処理する方法を学習します。Automation Controller は、Nginx をリバースプロキシーとして使用し、外部アクセスを処理します。主な機能は次のとおりです。
- Automation Controller には、Nginx によって提供される標準ポートで標準の HTTP または HTTPS を使用してアクセスします。
- システムは、デフォルトで自己署名の証明書または鍵をインストールします。ローカルに適切な証明書およびキーを指定できます。
-
システムは、
/etc/nginx/nginx.conf設定ファイルで SSL/TLS アルゴリズムのサポートを設定します。 - システムはデフォルトで intermediate プロファイルを使用します。これは設定できます。更新するたびに変更を再適用する必要があります。
14.1.7. 管理対象ノード リンクのコピーリンクがクリップボードにコピーされました!
Automation Controller は、自動化の一環として管理対象マシンおよびサービスに接続します。管理対象マシンへの接続はすべて、SSH、WinRM、SSL/TLS など、標準のセキュアなメカニズムによって行われます。
各メカニズムは、対象となる機能のシステム設定 (システム OpenSSL 設定など) から設定を継承します。