注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
プラットフォームリソースのアクセス要件は、マーキングによって制御されます。マーキングは、すべての条件を満たす場合にのみアクセスを許可する方式でアクセスを制限します。リソースにアクセスするには、そのリソースに適用されたすべてのマーキングのメンバーである必要があります。また、マーキングはファイル階層と直接の依存関係の両方に沿って継承されます。適切な権限があれば、リソースから直接マーキングを削除したり、直接の依存関係に沿ってマーキングを削除したりできます。
マーキングは、プラットフォーム全体で確認でき、直接の依存関係に沿って伝播して機密データを保護するため、よく使われます。状況によっては、パイプラインの初期段階でマーキングを適用し、後の段階で削除する必要があります。このページでは、パイプラインの構造に応じてマーキングを削除する方法を詳しく説明します。
Pipeline Builder でマーキングや組織を削除することもできます。
以下では、パイプラインの初期段階でマーキングを適用し、後の段階で削除することに関連する3つのシナリオを紹介します。
このシナリオは、パイプラインが次の条件に該当する場合を対象としています。
つまり、切断(非推奨の機能)の使用から、継承されたマーキングの削除に移行する場合です。
上の例に示す以前の状態では、マーキングの伝播を防ぐために切断が使われています。切断がマーキングの削除のためだけに使われている場合は、上の例の新しい状態のように、切断をマーキングの削除に置き換えることを強く推奨します。マーキングを削除する際は、マーキングを削除するトランスフォームを含むリポジトリの承認モード設定を検討するとよいでしょう。
閲覧要件の伝播が有効になっている場合は、以下のシナリオ2をお読みください。
このシナリオでは、プロジェクトレベルの閲覧要件の伝播設定を無効にするために、パイプライン内のデータセットにマーキングを適用します。
上に示すように、新しいプロジェクトでは、閲覧要件を伝播するオプションがデフォルトで無効になっています。これらの新しいプロジェクトでは、下流の派生データセットに閲覧要件は適用されません。具体的には、別のプロジェクトにある下流バージョンのデータにアクセスするユーザーは、この設定が無効になっているプロジェクト内の上流データへのアクセスも必要とするわけではありません。
マーキングは常に伝播します。新しいプロジェクト内のデータにマーキングが適用されている場合、そのマーキングは「閲覧要件を伝播する」設定にかかわらず、すべての下流データセットに伝播します。
上の画像のように閲覧要件を伝播するオプションが有効になっているプロジェクトでは、そのプロジェクト内のデータセットの閲覧要件が伝播しています。つまり、別のプロジェクトにある下流バージョンのデータにアクセスするユーザーは、この設定が有効になっている上流プロジェクトへのアクセスも必要になります。
閲覧要件の伝播を無効にして、代わりにマーキングを使うことを強く推奨します。
閲覧要件の伝播を無効にしてパイプラインにマーキングを導入する前に、閲覧要件の伝播を有効にした当初の目的を検討するとよいでしょう。
以下の例では、データソースプロジェクトの「閲覧要件を伝播する」を無効にすることが目標です。上記の手順に従った結果、このプロジェクトで「閲覧要件を伝播する」が有効になっている理由は、機密データを含む raw_dataset_1 データセットを保護するためだとわかりました。
以前の状態では、データセット A の内容を閲覧するには、データソースプロジェクトと下流プロジェクトの両方で、少なくとも「閲覧者」のアクセス権限が必要です。その後、データセット B の閲覧要件の伝播を解除するために切断が使われています。
新しい状態では、データセット A の内容を閲覧するには、下流プロジェクトで少なくとも「閲覧者」のアクセス権限と、マーキングへのアクセスが必要です。「閲覧要件を伝播する」が無効になっているため、データセット C と D にアクセスするには、下流プロジェクトで「閲覧者」のアクセス権限のみが必要です。
この変更により、セキュリティマーキングを使って「閲覧要件を伝播する」を無効にできます。以下で提案する解決策では、raw_dataset_1 にマーキングを適用すると、raw_dataset_1 の切断されていないトランザクションを入力として持つすべての下流データセットに、そのマーキングが即座に伝播します。ここでは、切断がすでに設定されていること、そして切断をマーキングの削除に置き換えるだけであることを前提としています。この前提が当てはまらない場合は、データセットへのマーキングの適用による影響を詳しく説明しているシナリオ3を参照してください。
データソースプロジェクトで「閲覧要件を伝播する」を無効にした後にマーキングを適用しても、ユーザーがデータセット B へのアクセスを失わないよう、この変更を導入する際には次の手順を推奨します。
raw_dataset_1 にマーキングを適用します。このシナリオは複雑になる可能性があり、既存のパイプラインの初期段階で新しいマーキングを導入しつつ、パイプラインの後続の段階でユーザーが誤ってアクセスできなくなることを防ぎます。
データセット A に導入したマーキングは、トランザクションリネージに沿って、そのデータセットの下流にあるすべてのリソースに即座に伝播します。マーキングがついたデータセットから派生したリソースにアクセスするには、ユーザーはそのマーキングを持っている必要があります。
これをよりよく理解するため、上記の例を次のパイプラインに拡張して考えます。データセット A → データセット B → 下流データセット:
この例の目標は、下流データセットがデータセット A のマーキングを一切継承しないようにすることです。
まず理解しておく必要があるのは、データセット A(またはデータセット A を含むフォルダー)にマーキングをつけると、実質的にデータセット A の全履歴にわたるすべてのトランザクションにマーキングがつくということです。その結果、データセット B と下流データセットは即座にマーキングを継承します。
次の手順を実行した場合:
...データセット B の最新の SNAPSHOT トランザクションにはマーキングがつかなくなりますが、データセット B の古いトランザクションにはすべてマーキングがついたままになります。
データセットにマーキングをつけるとすべてのトランザクションにマーキングがつきますが、トランスフォームでマーキングを削除しても、マーキングが削除されるのは新しい出力トランザクションのみです。既存のトランザクションからはマーキングは削除されません。この動作は対称ではありません。
つまり、インクリメンタルにビルドされる下流データセットなど、データセット B の古いトランザクションから派生した下流データセット内のデータは、引き続きマーキングを継承します。 ただし、Foundry はデータセットビューの権限を確認する際に、各入力の最新のトランザクションのみをチェックします。インクリメンタル(差分処理)データセットの場合、通常のビルドだけでマーキングを削除できます。
インクリメンタルな下流データセットのすべてからマーキングを削除するには、データセット B にマーキングを削除するトランスフォームを適用した後、そのトランスフォームからインクリメンタルな下流データセットまでの間にあるすべてを再ビルドする必要があります。これにより、各下流データセットは、データセット B の以前の(マーキングがついた)トランザクションではなく、最新の(マーキングのない)トランザクションのみに依存するようになります。
下流データセットの数が多く、手動で再ビルドをトリガーすることが現実的でない場合は、次の手順を推奨します。
この入れ替えによってデータセット B の SNAPSHOT ビルドがトリガーされる可能性があるため、パフォーマンスへの影響を考慮してください。
重要なパイプラインでこれらの変更を行う場合や、いずれかの手順について不明な点がある場合は、Palantir の担当者にお問い合わせください。
Copied!1 2 3 4 5 6# 列ベース df.select("salary","title","department") # 行ベース states_to_keep =["OH","CA","DE"] df.filter(df.state.isin(states_to_keep))
Copied!1 2 3 4 5 6# 列ベース df.drop("firstname","lastname") # 行ベース states_to_drop =["FL","TX","IL"] df.filter(~df.state.isin(states_to_drop))
マーキングの削除トランスフォームを含むリポジトリに、再承認を必須にする承認モードと再承認を必須にしない承認モードのどちらが設定されているかによって異なります。承認モードについて詳しくはこちら。
理想的には、マーキングの削除トランスフォームのロジックが変更されるたびに、セキュリティ承認を受けるべきです。承認プロセスの過度な負担と良好なセキュリティ状態を両立するため、可能であれば、マーキングの削除ロジック(データの難読化、列の削除など)を含むすべてのトランスフォームを別のリポジトリに移動し、そのリポジトリを「再承認を必須にする」に設定することを推奨します。
いいえ、これらは入力プロパティであり、出力には追加できません。特定の出力からマーキングを削除することが目的の場合は、マーキングを持つすべての入力を特定し、その各入力に stop_propagating ステートメントを追加する必要があります。詳細については、入力トランスフォームプロパティのドキュメントを参照してください。
次の言語でマーキングの削除がサポートされています。
機密区分の解除は慎重に行うべきであり、プロジェクトやリポジトリの各所に分散させるべきではありません。プラットフォームのマーキング削除機能では、権限の伝播に対する変更をきめ細かく制御でき、そのような変更が適切にレビューされることを保証します。
これまで切断が有効になったことのないデータセットに切断を追加できないようにするには、Palantir の担当者にお問い合わせください。