注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
プラットフォーム上のリソースへのアクセス要件は、マーキング によって制御されています。マーキングは、リソースにアクセスするために、ユーザーが適用されたすべてのマーキングのメンバーである必要があるという 全てまたは無し の方法でアクセスを制限します。さらに、マーキングはファイル階層と直接依存関係の両方で 継承 されます。適切な権限がある場合、リソースから直接マーキングを削除し、直接依存関係に沿ってマーキングを削除することができます。
マーキングは、プラットフォーム全体で読みやすく、直接依存関係に沿って伝播するため、頻繁に使用されます。これにより、機密データが保護されます。いくつかの状況では、パイプラインの早い段階でマーキングが適用され、後の段階で削除する必要がある場合があります。このページでは、パイプラインの構造に応じてマーキングを削除する方法について詳しく説明します。
以下に、パイプラインの早い段階でマーキングを適用し、後の段階でそれを削除することに関連する3つのシナリオを示します。
このシナリオは、パイプラインが以下の条件を満たしている場合に適用されます。
したがって、継承されたマーキングを削除することで、切断(非推奨の機能)から移行しています。
上記の例で示すように、古い状態では、切断がマーキングの伝播を防ぐために使用されています。切断がマーキングを削除するためだけに使用されている場合、マーキング削除 に切断を置き換えることを強くお勧めします。上記の例の新しい状態のように、マーキングを削除する際には、マーキング削除トランスフォームを含むリポジトリの 承認モード 設定について考えることが役立ちます。
伝播ビュー要件が有効になっている場合は、以下のシナリオ2を読んでください。
このシナリオでは、パイプライン内のデータセットにマーキングを適用し、プロジェクトレベルの伝播ビュー要件の設定を無効にすることが含まれています。
上記のように、新しいプロジェクトでは、伝播ビュー要件 オプションがデフォルトで無効になっています。これらの新しいプロジェクトでは、ビュー要件は下流の派生データセットに対して強制されません。具体的には、この設定が無効になっているプロジェクトで上流データにアクセスする必要がある別のプロジェクトの下流バージョンのデータにアクセスするユーザーには影響しません。
マーキングは常に伝播します。新しいプロジェクトのデータにマーキングがある場合、そのマーキングは下流のすべてのデータセットに伝播します。「伝播ビュー要件」の設定に関係なく。
上記の画像のように、伝播ビュー要件 オプションが有効になっているプロジェクトがある場合、これらのプロジェクトのデータセットに対してビュー要件が伝播しています。つまり、別のプロジェクトの下流バージョンのデータにアクセスするユーザーは、この設定が有効になっている上流プロジェクトにもアクセスする必要があります。
マーキング を使用することをお勧めしますので、ビュー要件の伝播 を 無効 にすることを強くお勧めします。
ビュー要件の伝播を無効にし、パイプラインにマーキングを導入する前に、ビュー要件の伝播を有効にすることの元々の目的について考慮することが価値があります。
下の例では、Datasource プロジェクトで "ビュー要件を伝播する" を無効にすることが目標です。上記の手順を経て、プロジェクトで "ビュー要件を伝播する" が有効になっている理由は、raw_dataset_1
データセットがセンシティブなデータを持っているためであることが分かりました。
古い状態では、データセット A の内容を表示するには、少なくとも Datasource プロジェクトと Downstream プロジェクトの両方に "viewer" アクセスが必要でした。その後、データセット B のビュー要件伝播を削除するために切断が使用されました。
新しい状態では、データセット A の内容を表示するには、少なくとも Downstream プロジェクトに "viewer" アクセスが必要であり、マーキングにアクセスする必要があります。"ビュー要件を伝播する" が無効になっていることに注意してください。データセット C と D へのアクセスを必要とするだけで、Downstream プロジェクトに "viewer" アクセスが必要です。
この変更により、セキュリティマーキングを使用して "ビュー要件を伝播する" を無効にすることが可能になります。以下の提案された解決策では、raw_dataset_1
にマーキングを適用し、そのマーキングを 直ちに raw_dataset_1
の非切断トランザクションを入力として持つすべての下流のデータセットに伝播します。ここでは、切断がすでに行われていたという前提があり、切断はマーキングの削除によって置き換えられるだけです。あなたの状況でこれが真でない場合は、シナリオ 3を参照してください。ここでは、データセットにマーキングを適用する際の影響について詳しく説明しています。
この変更を導入するための以下の手順が推奨されています。これにより、Datasource プロジェクトで "ビュー要件を伝播する" を無効にした後、マーキングが追加されたときにユーザーがデータセット B へのアクセスを失うことを防ぎます。
raw_dataset_1
にマーキングを適用します。この潜在的に複雑なシナリオでは、既存のパイプラインの早い段階で新しいマーキングを導入し、パイプラインの後のユーザーを誤ってロックアウトすることなく、新しいマーキングを導入します。
データセット A で導入されたマーキングは、すぐにそのデータセットの下流にあるすべてのリソースに伝播します。ユーザーは、マークされたデータセットから派生したものにアクセスするために、マーキングが必要になります。
これをより良く理解するために、上記の例を次のようなパイプラインで拡張しましょう:データセット A → データセット B → Downstream データセット:
この例での目標は、Downstream データセットがデータセット A のマーキングを継承しないようにすることです。
まず理解する必要があるのは、データセット A をマーキングする(またはデータセット A を囲むフォルダーをマーキングする)ことは、データセット A のすべての歴史の中でのすべてのトランザクションを効果的にマーキングすることです。その結果、データセット B と Downstream データセットはすぐにマーキングを継承します。
以下の手順を実行すると:
... すると、データセット B の最新のスナップショットトランザクションはマーキングがなくなりますが、データセット B の古いトランザクションはすべてマーキングが残ります。
データセットをマーキングすると、そのすべてのトランザクションがマーキングされますが、トランスフォームでマーキングを削除すると、その出力トランザクションのマーキングだけが削除されます。この挙動は、対称的ではありません。
これは、データセット B の古いトランザクションから派生したデータを含む Downstream データセット、たとえば増分的にビルドされる Downstream データセットは、まだマーキングを継承するということを意味します。
各増分 Downstream データセットがマーキングされないようにするためには、データセット B 上のマーキングを削除するトランスフォームと増分 Downstream データセットの間のすべてが、データセット B にマーキングを削除するトランスフォームが適用された後に再スナップショットされる必要があります。これにより、各 Downstream データセットは、以前の(マークされた)トランザクションではなく、データセット B の最新の(マーキングされていない)トランザクションにのみ依存することを保証します。単純な再ビルドは 十分ではありません。
Downstream データセットの数が手動で再スナップショットをトリガするのに不可能な場合、以下の手順を提案します:
この交換を行う際のパフォーマンスの影響を考慮してください。なぜなら、これによりデータセット B の SNAPSHOT
ビルドがトリガされる可能性があるからです。
重要なパイプラインでこれらの変更を行っている場合や、これらの手順について不確かな点がある場合は、Palantirの担当者に連絡して支援を求めてください。
Copied!1 2 3 4 5 6
# column-based df.select("salary","title","department") # row-based states_to_keep =["OH","CA","DE"] df.filter(df.state.isin(states_to_keep))
Copied!1 2 3 4 5 6
# column-based df.drop("firstname","lastname") # row-based states_to_drop =["FL","TX","IL"] df.filter(~df.state.isin(states_to_drop))
これは、マーキング除去トランスフォームを持つリポジトリに 再承認を必要とする か 再承認を必要としない 承認モードが設定されているかによります。承認モードについてもっと学ぶ。
理想的には、マーキング除去トランスフォームの ロジック が変更されるたびに、それはセキュリティの承認を受けるべきです。承認プロセスの過度な摩擦と良好なセキュリティ姿勢の間でバランスを取るために、可能であれば、すべてのマーキング除去ロジック(データの難読化、行の削除など)を含むトランスフォームを別のリポジトリに移動し、その別のリポジトリを "再承認を必要とする" に設定することをお勧めします。
いいえ、これらは 入力 プロパティであり、出力に追加することはできません。特定の出力からマーキングを削除することが目的である場合、マーキングを持つすべての入力を特定し、それぞれに stop_propagating
文を追加する必要があります。詳細については、入力トランスフォームプロパティ のドキュメンテーションを参照してください。
以下の言語がマーキングの削除をサポートしています:
機密情報の除去は慎重に行われ、プロジェクトやリポジトリに散乱させるべきではありません。プラットフォームのマーキング除去機能は、パーミッションの伝播変更に対する粒度の細かな制御を提供し、そのような変更が適切にレビューされることを保証します。
これまで切断が有効になっていなかったデータセットに対して切断を追加することを禁止するように、Palantirの担当者に連絡してください。