インスタンスに AML AI データセットを作成するには、その Google Cloud プロジェクト内の BigQuery でデータをステージングする必要があります。以下のセクションでは、これらのデータセットとテーブルを準備する 1 つの方法を説明します。
BigQuery 出力データセットを作成する
次のコマンドを実行して、パイプライン出力を BigQuery に送信するために使用するデータセットを作成します。次のコマンドでは、文字(大文字または小文字)、数字、アンダースコアのみを含む BQ_OUTPUT_DATASET_NAME の名前を選択します。ハイフンは使用できません。
bq mk \
--location=LOCATION \
--project_id=PROJECT_ID \
BQ_OUTPUT_DATASET_NAME
AML AI 出力を確認するには、AML 出力データモデルをご覧ください。
BigQuery 入力データセットを作成し、トランザクション データをアップロードする
AML 入力データモデルを使用して金融機関のトランザクション データを整理したら、BigQuery 入力データセットを作成します。
bq mk \
--location=LOCATION \
--project_id=PROJECT_ID \
BQ_INPUT_DATASET_NAME
トランザクション データをデータセットにアップロードします。詳細については、BigQuery クイックスタートをご覧ください。
(省略可)BigQuery データセットに対するプロジェクト レベルのアクセス権を付与する
API は、プロジェクトにサービス アカウントを自動的に作成します。サービス アカウントは、BigQuery 入力データセットと BigQuery 出力データセットにアクセスする必要があります。アクセス権を付与するには、次の 2 つの方法があります。
- プロジェクト内のすべての BigQuery データセットへのアクセス権を付与する(2 つのコマンドを実行することのみが必要)
- 特定の BigQuery データセット内の特定のテーブルへのアクセスを制限する(データセットごとに複数のコマンドを実行する必要がある)
プロジェクト内のすべてのデータセットへのアクセス権を付与するには、次の 2 つのコマンドを実行します。アクセスをさらに制限するには、BigQuery 入力データセットへのアクセス権を付与するセクションをご覧ください。
すべての入力データセットへの読み取りアクセス権を付与します。
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com" \
--role=roles/bigquery.dataViewer
すべての出力データセットへの書き込みアクセス権を付与します。
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com" \
--role=roles/bigquery.dataEditor
詳細については、BigQuery の IAM ページをご覧ください。
BigQuery の入力データセットへのアクセス権を付与する
サービス アカウントに BigQuery 入力データセットへの読み取りアクセス権を付与します。置換変数を変更した後、次のコマンドを実行します。
# The BigQuery input dataset name. You created this dataset and
# uploaded the financial data into it in a previous step. This dataset should be
# stored in the Google Cloud project.
export BQ_INPUT_DATASET_NAME="BQ_INPUT_DATASET_NAME"
# The BigQuery tables in the input dataset. These tables should
# be part of the same project as the intended instance.
# Make sure to replace each table variable with the appropriate table name.
export PARTY_TABLE="PARTY_TABLE"
export ACCOUNT_PARTY_LINK_TABLE="ACCOUNT_PARTY_LINK_TABLE"
export TRANSACTION_TABLE="TRANSACTION_TABLE"
export RISK_CASE_EVENT_TABLE="RISK_CASE_EVENT_TABLE"
# Optional table
export PARTY_SUPPLEMENTARY_DATA_TABLE="PARTY_SUPPLEMENTARY_DATA_TABLE"
# Grant the API read access to the BigQuery dataset.
# Update the current access permissions on the BigQuery dataset and store in a temp file.
# Note: This step requires jq as a dependency.
# If jq is not available, the file /tmp/mydataset.json may be created manually.
bq show --format=prettyjson "PROJECT_ID:BQ_INPUT_DATASET_NAME" | jq '.access+=[{"role":"READER","userByEmail":"service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com" }]'> /tmp/mydataset.json
# Update the BigQuery dataset access permissions using the temp file.
bq update --source /tmp/mydataset.json "PROJECT_ID:BQ_INPUT_DATASET_NAME"
# Grant the API read access to the BigQuery table if the table is provided.
for TABLE in $PARTY_TABLE $TRANSACTION_TABLE $ACCOUNT_PARTY_LINK_TABLE $RISK_CASE_EVENT_TABLE $PARTY_SUPPLEMENTARY_DATA_TABLE ; do
[ -n TABLE ] && bq add-iam-policy-binding \
--member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com" --role="roles/bigquery.dataViewer" \
PROJECT_ID:BQ_INPUT_DATASET_NAME.${TABLE}
done
詳細については、BigQuery の IAM ページをご覧ください。
BigQuery 出力データセットへのアクセス権を付与する
サービス アカウントに BigQuery 出力データセットに対する読み取りアクセス権を付与します。置換変数を変更した後、次のコマンドを実行します。
# Note: This step requires jq as a dependency.
# If jq isn't available, the file /tmp/mydataset.json may be created manually.
bq show --format=prettyjson PROJECT_ID:BQ_OUTPUT_DATASET_NAME | jq '.access+=[{"role":"roles/bigquery.dataEditor","userByEmail":"service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com" }]'> /tmp/perms.json
bq update --source /tmp/perms.json PROJECT_ID:BQ_OUTPUT_DATASET_NAME