注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
Cipherを使用すると、データセットの行全体を暗号化、復号化、およびハッシュ化できます。これは Pipeline Builder、Contour、および Pythonトランスフォーム でサポートされています。
コードリポジトリのプレビュー や Pipeline Builderのプレビューを使用する際、ユーザーはCipher操作の実際の出力を表示できません。代わりに、プレビューでプレースホルダー値が表示されます。データはビルド時に暗号化されることに注意してください。Cipher操作の実際の出力を表示するには、ユーザーはビルドを実行する必要があります。
Pipeline Builderは、Foundryで高品質なデータ統合を簡単に実行できるようにするデータ統合アプリケーションです。このセクションでは、Pipeline Builderでデータセットの列を暗号化するためにCipher操作をデプロイする方法を示します。Pipeline BuilderでCipher操作を実行するには、Cipher Data Manager License または Admin License にアクセスできる必要があります。
まず、Cipher暗号化トランスフォームを選択します。次に、Expression
(暗号化される列)を選択します。次に、暗号化許可を持つData Manager Licenseを選択し、通常、Cipherアプリケーションでの以前の発行後、プロジェクトフォルダーにあります。最後に、出力列の名前を付けます。
まず、Cipher復号化トランスフォームを選択します。Expression
を選択する際、Cipherトランスフォームを介してすでに暗号化された列を指定します。Cipher License RIDについては、復号化許可を持つData Manager Licenseを選択し、通常、Cipherアプリケーションでの以前の発行後、プロジェクトフォルダーにあります。ライセンスは、関連する列を暗号化するために使用された同じCipherチャネルの一部でなければなりません。最後に、出力列の名前を付けます。
Cipherハッシュトランスフォームを選択します。Expression
については、ハッシュ化する列を指定します。次に、ハッシュCipherチャネルから暗号化する権限を持つData Manager Licenseを選択します。ライセンスは、Cipherアプリケーションで発行され、プロジェクトフォルダーに保存されています。最後に、出力列の名前を付けます。
まず、暗号化許可を持つCipherライセンスを開きます。ライセンスは、通常、Cipherアプリケーションでの以前の発行後、プロジェクトフォルダーにあります。次に、右上の「Create Pipeline」を選択します。
暗号化する入力データセットを選択し、パイプラインが保存されるターゲットフォルダーを選択し、暗号化するデータセット列を選択します。String
列のみが暗号化可能であることに注意してください。別の列を暗号化する必要がある場合は、まずString
にキャストしてください。Create Pipeline を選択すると、Cipherは自動的に新しいパイプラインを生成し、以前に選択した列を暗号化します。
Contourは、大規模なテーブル上でのデータ分析を行うためのポイントアンドクリックのインターフェースを提供します。このセクションでは、Contour Analysisでデータセットの列を(非)暗号化するためにCipher操作を使用する方法を示します。ContourでCipher操作を実行するには、Cipher Data Manager License または Admin License にアクセスできる必要があります。始めるには、Contourツールバーの 検索モード を使用して、分析にCipherボードを追加します。
Cipherボードを使用するContour分析パスは、データセットとして保存 することはできません。
Cipherボードを使用してデータを暗号化するには、まず暗号化される列を選択します(列を選択する順序は操作に影響しません)。次に、暗号化許可を持つData Manager LicenseまたはAdmin Licenseを選択し、通常、Cipherアプリケーションでの以前の発行後、プロジェクトフォルダーにあります。Encrypt 操作を選択し、ボードを保存します。この変換によって列の値が更新されますが、列名は変更されません。
Cipherボードを使用してデータを復号化するには、まず復号化される列を選択します(列を選択する順序は操作に影響しません)。次に、復号化許可を持つData Manager LicenseまたはAdmin Licenseを選択し、通常、Cipherアプリケーションでの以前の発行後、プロジェクトフォルダーにあります。Decrypt 操作を選択し、ボードを保存します。この変換によって列の値が更新されますが、列名は変更されません。
Cipherボードを使用してデータをハッシュ化するには、まずハッシュ化される列を選択します(列を選択する順序は操作に影響しません)。次に、ハッシング許可を持つData Manager LicenseまたはAdmin Licenseを選択し、通常、Cipherアプリケーションでの以前の発行後、プロジェクトフォルダーにあります。Hash 操作を選択し、ボードを保存します。この変換によって列の値が更新されますが、列名は変更されません。
conda_recipe/meta.yml
の requirements.run
ブロックに bellaso-python-lib
を追加します。また、Code Repository環境 の Libraries パネルでこれを自動的に追加することもできます。TransformsでCipher操作を実行するには、Admin License が必要です。
列を暗号化するには、@transforms
ブロック内で EncrypterInput
を定義する必要があります。EncrypterInput
は、CipherライセンスへのRIDまたはファイルシステムパスのいずれかを取ります。Cipherライセンスは暗号化許可を持つ必要があります。
例:
# 必要なライブラリをインポート
from transforms.api import transform, Input, Output
from pyspark.sql.functions import col
from bellaso_python_lib.encryption.encrypter_input import EncrypterInput
# トランスフォームを定義
@transform(
encrypter=EncrypterInput("/path/to/cipher/license"), # 暗号化ライセンスへのパスを指定
output=Output("/path/to/output/dataset"), # 出力データセットへのパスを指定
input_dataset=Input("/path/to/input/dataset") # 入力データセットへのパスを指定
)
# カラムを暗号化する関数を定義
def encrypt_column(ctx, input_dataset, output, encrypter):
# 入力データセットのデータフレームに対して、指定したカラムを暗号化
encrypted_df = input_dataset.dataframe().withColumn("your_column_name", encrypter.dataframe().encrypt(col("your_column_name"), ctx))
# 暗号化されたデータフレームを出力
output.write_dataframe(encrypted_df)
列を復号化するには、@transforms
ブロックで DecrypterInput
を定義する必要があります。DecrypterInput
は、Cipher License の RID またはファイルシステムのパスのいずれかを取ります。Cipher License には復号化権限が必要であることに注意してください。
例:
from transforms.api import transform, Input, Output
from pyspark.sql.functions import col
from bellaso_python_lib.decryption.decrypter_input import DecrypterInput
# 関数の定義
@transform(
decrypter=DecrypterInput("/path/to/cipher/license"), # 暗号化ライセンスファイルへのパス
output=Output("/path/to/output/dataset"), # 出力データセットへのパス
input_dataset=Input("/path/to/input/dataset") # 入力データセットへのパス
)
def decrypt_column(ctx, input_dataset, output, decrypter):
# 入力データセットからデータフレームを取得し、指定されたカラムを復号化する
decrypted_df = input_dataset.dataframe().withColumn("your_column_name", decrypter.dataframe().decrypt(col("your_column_name"), ctx))
# 復号化されたデータフレームを出力データセットに書き込む
output.write_dataframe(decrypted_df)
列をハッシュ化するには、@transforms
ブロックで HasherInput
を定義する必要があります。HasherInput
は、RID または Cipher ライセンスへのファイルシステムパスのどちらかを取ります。Cipher ライセンスには、ハッシュ化の権限が必要であることに注意してください。
例:
from transforms.api import transform, Input, Output
from pyspark.sql.functions import col
from bellaso_python_lib.encryption.hasher_input import HasherInput
# 以下の関数は、データセット内の特定の列をハッシュ化する
@transform(
hasher=HasherInput("/path/to/cipher/license"), # 暗号化ライセンスへのパス
output=Output("/path/to/output/dataset"), # 出力データセットへのパス
input_dataset=Input("/path/to/input/dataset") # 入力データセットへのパス
)
def hash_column(ctx, input_dataset, output, hasher):
# 入力データセットからデータフレームを取得し、指定された列をハッシュ化する
hashed_df = input_dataset.dataframe().withColumn("your_column_name", hasher.dataframe().hash(col("your_column_name"), ctx))
# ハッシュ化されたデータフレームを出力データセットに書き込む
output.write_dataframe(hashed_df)
データの取り込み時に暗号化またはハッシュ化を行うには、CipherのPythonライブラリと外部変換を使用できます。