SaltStack Config で、ロールを定義してロールベースのアクセス コントロール (RBAC) を行うには、許可されたタスクを定義するとともにリソース アクセスを割り当てる必要があります。ここで、タスクとは、ユーザー インターフェイスで実行できる特定の操作のことで、ジョブの作成、編集、実行などがあります。リソースとは、特定のマスター、ミニオン、ターゲット、ファイル データなど、環境の要素です。

タスク

SaltStack Config では、タスクは一般的な使用事例を表します。タスクを有効にすると、そのタスクを完了するために必要なすべての権限がロールに付与されます。

[タスク] タブには次のオプションが含まれます。

タスク

説明

新しいターゲットの作成および削除

ロールは、新しいターゲットを作成できます。このロールに割り当てられたユーザーは、自らが作成したターゲット、または [リソース アクセス] で定義された他のターゲットの編集および削除を実行できます。

ターゲットは 1 つ以上の Salt マスター上に構成されるミニオンのグループで、これに対してジョブの Salt コマンドが適用されます。Salt マスターもミニオンのように管理でき、ミニオン サービスを実行している場合はターゲットにすることができます。ミニオンを参照してください。

ピラー データの変更

ロールは、ピラーに保存されている機密情報を表示、編集、削除できます。ロールに属するユーザーは、自らが作成したピラーを編集、削除できます。リソース アクセスが許可されている場合には、他のピラーの編集、削除もできます(API (RaaS) を介してのみ可能)。

ピラーは、Salt マスターで定義されるデータの構造であり、ターゲットを使用して 1 台以上のミニオンに渡されます。これにより、機密のターゲット データを関連するミニオンにのみ安全に送信できます。ピラーを参照してください。

ファイル サーバの変更

ロールは、ファイル サーバを表示できます。また、ファイルを作成、編集、削除できます。ロールに属するユーザーは、自らが作成したファイルを編集、削除できます。リソース アクセスが許可されている場合には、他のファイルの編集、削除もできます(API (RaaS) を介してのみ可能)。

ファイル サーバは、上位のファイルや状態ファイルなどの Salt 固有のファイルと、システム構成ファイルなどのミニオンに配布できるファイルの両方を格納するための場所です。ファイル サーバを参照してください。

ミニオンで任意のコマンドを実行

ロールは、ジョブの外部でコマンドをトリガして Salt マスターに検出させることができます。ロールは、特定のジョブの定義に含まれるコマンドのみを実行するよう制限されているわけではありません。

ミニオンは minion サービスが実行されるノードであり、Salt マスターからのコマンドをリッスンして、要求されたタスクを実行できます。ミニオンを参照してください。

キーの受け入れ、削除、拒否

ロールは、初期構成に必要なミニオン キーの受け入れ、削除、拒否ができます。

ミニオン キーを使用すると、Salt マスターと Salt ミニオンの間で暗号化された通信が可能になります。ミニオン キーを参照してください。

ユーザー、ロール、権限の読み取りおよび変更

ロールは、ユーザーおよび関連データを表示できます。また、ロールおよび権限の設定の編集もできます。

[注]:このタスクは、組み込みの管理者ロールと スーパー ユーザー ロールにのみ適用されます。

ロールは、共通のニーズのセットを共有する複数のユーザーの権限を定義するために使用されます。

Salt マスター上でのコマンドの実行

ロールは、オーケストレーションの実行など、Salt マスターに対してコマンドを実行できます。

Salt マスターに対して実行されるコマンドは、Salt ランナーとも呼ばれます。Salt ランナーは、Salt マスターで便利な関数を実行するために使用されるモジュールです。ジョブを参照してください。この権限を追加することによって、ロールは、[ミニオン] タブの [コマンドを実行] 機能から salt-run オプションを使用できます。

コンプライアンス - 作成、編集、削除、評価

ロールは、SaltStack SecOps Compliance のポリシーを作成、編集、削除、評価できます。このタスクの権限を付与するだけでなく、ロールがアクションを実行するターゲットのリソース アクセスも定義する必要があります。たとえば、OracleLinuxAdmin ロールに OracleLinux ターゲットのポリシーを定義させる場合には、このタスクを完了する権限と OracleLinux ターゲットへの読み取りアクセス権の両方をロールに割り当てます。

このタスクは、ロールに SaltStack SecOps Compliance のポリシーを修正させることはできません。

SaltStack SecOps Compliance は、環境内のすべてのシステムのセキュリティ コンプライアンス体制を管理するための SaltStack Config のアドオンです。詳細については、SaltStack SecOps の使用と管理を参照してください。

注:

SaltStack SecOps のライセンスが必要です。

コンプライアンス - 修正

SaltStack SecOps Compliance の評価によって要件に準拠していないミニオンが検出された場合、ロールはこのミニオンを修正できます。

SaltStack SecOps Compliance は、環境内のすべてのシステムのセキュリティ コンプライアンス体制を管理するための SaltStack Config のアドオンです。SaltStack SecOps の使用と管理を参照してください。

注:

SaltStack SecOps のライセンスが必要です。

コンプライアンス - SaltStack コンテンツの更新

ロールは、SaltStack SecOps Compliance のセキュリティ ライブラリの更新をダウンロードできます。

脆弱性 - 作成、編集、削除、評価

ロールは、SaltStack SecOps Vulnerability のポリシーを作成、編集、削除、評価できます。このタスクの権限を付与するだけでなく、ロールが評価を実行するターゲットのリソース アクセスも定義する必要があります。

このタスクは、ロールに SaltStack SecOps Vulnerability のポリシーを修正させることはできません。

SaltStack SecOps Vulnerability は、環境内のすべてのシステムの脆弱性を管理するための SaltStack Config のアドオンです。SaltStack SecOps の使用と管理を参照してください。

注:

SaltStack SecOps のライセンスが必要です。

脆弱性 - 修正

ロールは、SaltStack SecOps Vulnerability の評価で検出された脆弱性を修正できます。

SaltStack SecOps Vulnerability は、環境内のすべてのシステムの脆弱性を管理するための SaltStack Config のアドオンです。SaltStack SecOps の使用と管理を参照してください。

注:

SaltStack SecOps のライセンスが必要です。

リソース アクセス

[リソース アクセス] タブでは、ターゲットおよびジョブのリソース アクセスを定義できます。ターゲットは 1 つ以上の Salt マスター上に構成されるミニオンのグループで、これに対してジョブの Salt コマンドが適用されます。Salt マスターもミニオンのように管理でき、ミニオン サービスを実行している場合はターゲットにすることができます。ジョブは、リモート実行タスクの実行、状態の適用、Salt ランナーの起動に使用されます。

次のように、さまざまなレベルのリソース アクセスがあります。

  • [ターゲット]
    • [読み取り専用] - ロールは、指定されたターゲットとその詳細を表示できますが、編集および削除はできません。
    • [読み取り/書き込み] - ロールは、指定されたターゲットの表示および編集ができます。
    • [読み取り/書き込み/削除] - ロールは、指定されたターゲットの表示、編集、削除ができます。
  • [ジョブ]
    • [読み取り専用] - ロールは、指定されたジョブおよびジョブの詳細を表示できます。ジョブの編集、削除、実行はできません。
    • [読み取り/実行] - ロールは、指定されたジョブの表示および実行ができます。
    • [読み取り/実行/書き込み] - ロールは、指定されたジョブの表示、編集に加え、実行が可能です。
    • [読み取り/実行/書き込み/削除]- ロールは、表示されたジョブの表示、編集、削除に加え、実行ができます。
  • [その他のリソース タイプ] - 次のリソース タイプへのアクセスは、API (RaaS) を使用して定義する必要があります。API 権限の設定を参照してください。サポートが必要な場合は、管理者に確認してください。
    • ファイル サーバ内のファイル
    • ピラー データ
    • 認証構成

その他のすべてのリソース タイプ(ジョブ、ターゲット、および上に示したものを除く)には、特定のリソース アクセス設定は不要です。

許可されたタスクとリソース アクセスとの違い

許可されたタスクは、実行できるアクションが範囲の広いカテゴリで設定されるのに対し、リソース アクセスは、より狭いカテゴリで設定され、特定のリソース(ジョブやターゲットなど)を指定できます。アクションは、この特定のリソースに対して実行できます。次の図を参照してください。


許可、リソースの概念

次の例では、ロールは Linux ターゲット グループ上で test.ping を実行できます。このロールには、次の権限設定があります。

  • Linux ターゲットへの読み取りアクセス権
  • test.ping コマンドを含むジョブへの読み取り/実行アクセス

許可、リソースの例

クローン作成されたロールは、デフォルトで元のロールから許可されたタスクを継承します。クローン作成されたロールはリソース アクセスを継承しません。リソース アクセスは別途定義する必要があります。ジョブまたはターゲットへのアクセスの割り当てを参照してください。