第32章 Security
次のセクションでは、Automation controller がファイルシステムのセキュリティーをどのように処理し、制御できるようにするかについて説明します。
すべての Playbook は、awx
ファイルシステムユーザーを通じて実行されます。ジョブを実行する場合、Automation controller は Linux コンテナーを使用してジョブを分離します。このように保護することで、ジョブは、ジョブテンプレートのプロジェクトディレクトリーにある Playbook、ロール、およびデータにのみアクセスできるようになります。
認証情報のセキュリティー上、ロックされた SSH 鍵をアップロードし、ロック解除パスワードを "ask" に設定できます。システムに SSH 認証情報または sudo パスワードをデータベースに保存させるのではなく、入力を求めるプロンプトを表示するように選択することもできます。
32.1. Playbook のアクセスおよび情報共有
Automation Controller は、自動化実行環境および Linux コンテナーを使用しているため、Playbook がプロジェクトディレクトリー外のファイルを読み取ることはできません。
デフォルトでは、コンテナー内の ansible-playbook プロセスに公開されるデータは、現在使用しているプロジェクトのみです。
これをジョブ設定でカスタマイズし、追加のディレクトリーをホストからコンテナーに公開できます。
32.1.1. 分離機能および変数
Automation Controller は、コンテナーテクノロジーを使用してジョブを相互に分離します。デフォルトでは、現在のプロジェクトのみがジョブテンプレートを実行するコンテナーに公開されます。
追加のディレクトリーを公開する必要がある場合は、Playbook の実行をカスタマイズする必要があります。ジョブの分離を設定するには、変数を設定します。
デフォルトでは、Automation controller はシステムの tmp
ディレクトリー (デフォルトでは /tmp
) をステージング領域として使用します。これは、Jobs settings ページの Job Execution Path フィールド、または /api/v2/settings/jobs
の REST API で変更できます。
AWX_ISOLATION_BASE_PATH = "/opt/tmp"
ホストから Playbook を実行するコンテナーに追加のディレクトリーを公開する場合は、Jobs settings ページの Paths to Expose to Isolated Jobs フィールド、または /api/v2/settings/jobs
の REST API で以下を使用することで指定できます。
AWX_ISOLATION_SHOW_PATHS = ['/list/of/', '/paths']
Playbook で AWX_ISOLATION_SHOW_PATHS
で定義されたキーまたは設定を使用する必要がある場合は、このファイルを /var/lib/awx/.ssh
に追加します。
ここで説明するフィールドは、Jobs settings ページにあります。