Lakeflowジョブの ID、アクセス許可、特権を管理する
この記事には、 Lakeflow ジョブの ID、アクセス許可、特権を管理するための推奨事項と手順が含まれています。
シークレット は、クラスターの Spark ドライバーのログ stdout
と stderr
ストリームから編集されません。 機密データを保護するために、by Default では、 Spark ドライバー ログは、ジョブ、専用アクセス モード、および標準アクセス モード クラスターに対する CAN MANAGE 権限を持つユーザーのみが表示できます。 Can Attach To または Can Restart の権限を持つユーザーがこれらのクラスターのログを表示できるようにするには、クラスター構成で Spark 構成プロパティ (spark.databricks.acl.needAdminPermissionToViewLogs false
) を設定します。
分離なしの共有アクセス モード クラスターでは、Spark Can Attach Toまたは アクセス許可を持つユーザーが ドライバーCAN MANAGE ログを表示できます。ログを読み取ることができるユーザーを CAN MANAGE 権限を持つユーザーのみに制限するには、 spark.databricks.acl.needAdminPermissionToViewLogs
を true
に設定します。
SparkSparkクラスター構成に プロパティを追加する方法については、 構成 を参照してください。
ジョブのデフォルト権限
ジョブには、デフォルトで次の権限が設定されています。
- ジョブの作成者には、IS OWNER アクセス許可が付与されます。
- ワークスペース管理者には、CAN MANAGE 権限が付与されます。
- ジョブの作成者が 別のユーザーとして実行 に設定されている。
ジョブの管理者権限
デフォルトにより、ワークスペースの管理者は、ジョブの所有者を変更したり、ワークスペース内の任意のユーザーまたはサービスプリンシパルを 実行者として 設定したりできます。 アカウント管理者は、 RestrictWorkspaceAdmins
設定を構成してこの動作を変更できます。 「ワークスペース管理者を制限する」を参照してください。
ジョブは Unity Catalog の権限とどのように相互作用しますか?
ジョブは、 実行者 設定でユーザーの ID として実行されます。 この ID は、次のアクセス許可の付与に対して評価されます。
- Unity Catalog で管理されるアセット (テーブル、ボリューム、モデル、ビューなど)。
- レガシー Hive metastoreに登録された資産に対するレガシーなテーブルアクセスコントロール リスト (ACL)。
- コンピュート、ノートブック、クエリ、およびその他のワークスペースアセットの ACL。
- Databricks のシークレット。 シークレット管理を参照してください。
Unity Catalog グラントとレガシーテーブル ACL には、互換性のあるコンピュートアクセスモードが必要です。 ジョブのコンピュートの設定を参照してください。
ジョブ実行の ID を構成する
別のユーザーとして実行 設定を変更するには、ジョブに対する CAN MANAGE または IS OWNER のアクセス許可が必要です。
実行名 の設定は、自分自身に設定することも、 サービスプリンシパル User 権限があるワークスペース内の任意のサービスプリンシパルに設定することもできます。
ワークスペース UI でジョブの 実行者 設定を構成するには、次の手順を使用して既存のジョブを選択します。
- Databricks ワークスペースのサイドバーで、[ ジョブとパイプライン] をクリックします。
- 必要に応じて、[ ジョブ] と [自分が所有] フィルターを選択します。
- ジョブ の [名前 ] リンクをクリックします。
- 「ジョブの詳細」 サイドパネルで、 「実行」 フィールドの横にある鉛筆アイコンをクリックします。
- ユーザーまたはサービスプリンシパルを検索して選択します。
- [ 保存 ]をクリックします。
サービスプリンシパルの操作の詳細については、以下を参照してください。
ジョブガバナンスのベストプラクティス
Databricks では、すべての本番運用ジョブについて、次のことを推奨しています。
-
ジョブ所有権をサービスプリンシパルに割り当てる
ジョブを所有するユーザーが組織を離れると、ジョブが失敗する可能性があります。 サービスプリンシパルを使用して、ジョブを従業員の離職に対して堅牢にします。
デフォルトでは、ワークスペース管理者はジョブの権限を管理し、必要に応じて所有権を再割り当てできます。
-
サービスプリンシパルを用いた本番運用 ジョブの実行
ジョブは、デフォルトではジョブ所有者の権限を使用して実行されます。 サービスプリンシパルに所有権を割り当てる場合、ジョブ実行ではサービスプリンシパルの権限が使用されます。
サービスプリンシパル for 本番運用 ジョブを使用すると、本番運用データに対する書き込み権限を制限できます。 ユーザーの権限を使用してジョブを実行する場合、そのユーザーがジョブに必要な本番運用データを編集するには、同じ権限が必要です。
-
常にUnity Catalog互換のコンピュート設定を使用する
Unity Catalog データガバナンスでは、サポートされているコンピュート構成を使用する必要があります。
クラシック コンピュートを使用するジョブの場合、 Databricks では、サポートされているワークロードに対して標準アクセス モードをお勧めします。 必要に応じて、専用のアクセスモードを使用します。
Lakeflow で構成された宣言型パイプライン Unity Catalog には、いくつかの制限があります。 制限事項を参照してください。
-
本番運用 ジョブの権限を制限する
ジョブの実行をトリガー、停止、または再開するユーザーには、「 Can Manage Run 」権限が必要です。
ジョブ構成を表示したり、実行を監視したりするユーザーには、 表示可能 アクセス許可が必要です。
Can Manage または Is Owner の権限は、本番運用コードの変更を許可されたユーザーにのみ付与します。
ジョブへのアクセスの制御
ジョブのアクセス制御により、ジョブの所有者と管理者は、ジョブに対するきめ細かな権限を付与できます。 次の権限を使用できます。
各アクセス許可には、次の表の下位にあるアクセス許可の付与が含まれています。
権限 | 権限 |
---|---|
IS OWNER | デフォルトの 実行者 に使用される ID。 |
CAN MANAGE | ユーザーは、権限を含むジョブ定義を編集できます。 ユーザーはスケジュールを停止したり、再開したりできます。 |
CAN MANAGE RUN | ユーザーは、ジョブの実行をトリガーおよびキャンセルできます。 |
CAN VIEW | ユーザーはジョブの実行結果を表示できます。 |
-
ジョブの作成者には、デフォルトで IS OWNER 権限があります。
-
1つのジョブに複数の所有者を設定することはできません。
-
グループに所有者として Is Owner 権限を割り当てることはできません。
-
[今すぐ実行 ] を通じてトリガーされたジョブは、[ 今すぐ実行 ] を発行したユーザーではなく、ジョブ所有者のアクセス許可を引き継ぎます。
-
ジョブのアクセス制御は、 Lakeflow ジョブUIに表示されるジョブとその実行に適用されます。 以下には適用されません。
-
モジュール化されたコードまたはリンクされたコードを実行するノートブック ワークフロー。これらは、ノートブック自体のアクセス許可を使用します。ノートブックが Git から取得された場合、新しいコピーが作成され、そのファイルは実行をトリガーしたユーザーのアクセス許可を継承します。
-
API によって送信されたジョブ。これらは、API リクエストで
access_control_list
を明示的に設定しない限り、ノートブックのデフォルトのアクセス許可を使用します。
-
ジョブのアクセス許可レベルについては、「 ジョブ ACL」を参照してください。
ジョブのアクセス許可を構成する
ワークスペース UI でジョブのアクセス許可を構成するには、次の手順を使用して既存のジョブを選択します。
- Databricks ワークスペースのサイドバーで、[ ジョブとパイプライン] をクリックします。
- 必要に応じて、[ ジョブ ] と [自分が所有] フィルターを選択します。
- ジョブ の [名前 ] リンクをクリックします。
- ジョブの詳細 パネルで、 アクセス許可の編集 をクリックします。 権限設定 ダイアログが表示されます。
- ユーザー、グループ、サービスプリンシパルの選択 フィールドをクリックし、ユーザー、グループ、またはサービスプリンシパルの入力を開始します。このフィールドでは、ワークスペースで使用可能なすべての ID が検索されます。
- [ 追加 ] をクリックします。
- [ 保存 ]をクリックします。
ジョブの所有者を管理する
ジョブのオーナーを編集できるのは、ワークスペースの管理者のみです。 ジョブ所有者は 1 つだけ割り当てる必要があります。 ジョブの所有者は、ユーザーまたはサービスプリンシパルです。