ドキュメントの検索
karat

+

K

APIリファレンス ↗

注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

データセットの列にCipher操作を適用する

Cipherを使用すると、データセットの行全体を暗号化、復号化、およびハッシュ化できます。これは Pipeline BuilderContour、および Pythonトランスフォーム でサポートされています。

コードリポジトリのプレビューPipeline Builderのプレビューを使用する際、ユーザーはCipher操作の実際の出力を表示できません。代わりに、プレビューでプレースホルダー値が表示されます。データはビルド時に暗号化されることに注意してください。Cipher操作の実際の出力を表示するには、ユーザーはビルドを実行する必要があります。

Pipeline Builder

Pipeline Builderは、Foundryで高品質なデータ統合を簡単に実行できるようにするデータ統合アプリケーションです。このセクションでは、Pipeline Builderでデータセットの列を暗号化するためにCipher操作をデプロイする方法を示します。Pipeline BuilderでCipher操作を実行するには、Cipher Data Manager License または Admin License にアクセスできる必要があります。

暗号化

まず、Cipher暗号化トランスフォームを選択します。次に、Expression(暗号化される列)を選択します。次に、暗号化許可を持つData Manager Licenseを選択し、通常、Cipherアプリケーションでの以前の発行後、プロジェクトフォルダーにあります。最後に、出力列の名前を付けます。

Pipeline Builder Cipher Encrypt

復号化

まず、Cipher復号化トランスフォームを選択します。Expressionを選択する際、Cipherトランスフォームを介してすでに暗号化された列を指定します。Cipher License RIDについては、復号化許可を持つData Manager Licenseを選択し、通常、Cipherアプリケーションでの以前の発行後、プロジェクトフォルダーにあります。ライセンスは、関連する列を暗号化するために使用された同じCipherチャネルの一部でなければなりません。最後に、出力列の名前を付けます。

Pipeline Builder Cipher Decrypt

ハッシュ化

Cipherハッシュトランスフォームを選択します。Expressionについては、ハッシュ化する列を指定します。次に、ハッシュCipherチャネルから暗号化する権限を持つData Manager Licenseを選択します。ライセンスは、Cipherアプリケーションで発行され、プロジェクトフォルダーに保存されています。最後に、出力列の名前を付けます。

Pipeline Builder Cipher Hash

Cipherでパイプラインを暗号化する方法(AdminおよびData Managerライセンスのみ)

まず、暗号化許可を持つCipherライセンスを開きます。ライセンスは、通常、Cipherアプリケーションでの以前の発行後、プロジェクトフォルダーにあります。次に、右上の「Create Pipeline」を選択します。

Pipeline Builder Cipher License view

暗号化する入力データセットを選択し、パイプラインが保存されるターゲットフォルダーを選択し、暗号化するデータセット列を選択します。String列のみが暗号化可能であることに注意してください。別の列を暗号化する必要がある場合は、まずStringにキャストしてください。Create Pipeline を選択すると、Cipherは自動的に新しいパイプラインを生成し、以前に選択した列を暗号化します。

Pipeline Builder Create Pipeline

Contour

Contourは、大規模なテーブル上でのデータ分析を行うためのポイントアンドクリックのインターフェースを提供します。このセクションでは、Contour Analysisでデータセットの列を(非)暗号化するためにCipher操作を使用する方法を示します。ContourでCipher操作を実行するには、Cipher Data Manager License または Admin License にアクセスできる必要があります。始めるには、Contourツールバーの 検索モード を使用して、分析にCipherボードを追加します。

Contourの テーブルボード および テーブルパネル を使用して、Cipher操作の結果を確認できます。

Cipherボードを使用するContour分析パスは、データセットとして保存 することはできません。

暗号化

Cipherボードを使用してデータを暗号化するには、まず暗号化される列を選択します(列を選択する順序は操作に影響しません)。次に、暗号化許可を持つData Manager LicenseまたはAdmin Licenseを選択し、通常、Cipherアプリケーションでの以前の発行後、プロジェクトフォルダーにあります。Encrypt 操作を選択し、ボードを保存します。この変換によって列の値が更新されますが、列名は変更されません。

Contour board Cipher Encrypt

復号化

Cipherボードを使用してデータを復号化するには、まず復号化される列を選択します(列を選択する順序は操作に影響しません)。次に、復号化許可を持つData Manager LicenseまたはAdmin Licenseを選択し、通常、Cipherアプリケーションでの以前の発行後、プロジェクトフォルダーにあります。Decrypt 操作を選択し、ボードを保存します。この変換によって列の値が更新されますが、列名は変更されません。

Contour board Cipher Decrypt

ハッシュ化

Cipherボードを使用してデータをハッシュ化するには、まずハッシュ化される列を選択します(列を選択する順序は操作に影響しません)。次に、ハッシング許可を持つData Manager LicenseまたはAdmin Licenseを選択し、通常、Cipherアプリケーションでの以前の発行後、プロジェクトフォルダーにあります。Hash 操作を選択し、ボードを保存します。この変換によって列の値が更新されますが、列名は変更されません。

Contour board Cipher Hashing

Pythonトランスフォーム

リポジトリの設定

conda_recipe/meta.ymlrequirements.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ライブラリと外部変換を使用できます。