创建 AML AI 实例

如需使用 AML AI,请创建实例。AML AI 实例资源位于所有其他 AML AI 资源的根位置。您可以在 Google Cloud 项目的同一区域中创建多个实例。实例遵循以下准则:

  • 每个实例特定于某个 Google Cloud 区域,从而确保数据驻留在 Google Cloud 区域内。
  • 每个实例要求所有输入和输出数据都存在于同一 Google Cloud 区域和项目中。
  • 每个实例都需要一个关联的客户管理的加密密钥 (CMEK),该密钥用于加密 AML AI 创建的任何数据。
  • 实例的子资源会继承父实例的位置和加密设置。
  • 每个实例都支持自定义访问管理。

AML AI 位置页面提供了可用的 Google Cloud 区域列表。您可以根据自己的政策,将您经营业务的一个(或多个)地理位置映射到一个(或多个)可用的 AML AI 位置。您需要为每个所用的 AML AI 位置创建至少一个 AML AI 实例。

您可以在一个 AML AI 实例中对商业客户和零售客户进行风险评分。但是,请创建一个单独的实例来执行以下任一操作:

  • 限制对不同 AML 数据集的访问权限,以组织内不同的成员
  • 对不同的 AML 数据集使用不同的 CMEK 密钥

步骤

如需创建 Google Cloud 项目并启用 API,请参阅设置项目和权限

请按照以下步骤创建 CMEK 密钥和 AML AI 实例。

创建加密密钥

如需创建加密密钥,请先创建密钥环,然后再创建密钥本身。如需了解详情,请参阅使用 Cloud KMS 创建加密密钥

创建密钥环

如需创建密钥环,请使用 projects.locations.keyRings.create 方法。

REST

在使用任何请求数据之前,请先进行以下替换:

  • KMS_PROJECT_ID:包含密钥环的项目的 Google Cloud 项目 ID
  • LOCATION:密钥环的位置;请使用受支持的区域之一:
    • us-central1
    • us-east1
    • asia-south1
    • europe-west1
    • europe-west2
    • europe-west4
    • northamerica-northeast1
    • southamerica-east1
  • KEY_RING_ID:用户定义的密钥环标识符

如需发送请求,请选择以下方式之一:

curl

执行以下命令:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://cloudkms.googleapis.com/v1/projects/KMS_PROJECT_ID/locations/LOCATION/keyRings?key_ring_id=KEY_RING_ID"

PowerShell

执行以下命令:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://cloudkms.googleapis.com/v1/projects/KMS_PROJECT_ID/locations/LOCATION/keyRings?key_ring_id=KEY_RING_ID" | Select-Object -Expand Content

您应该收到类似以下内容的 JSON 响应:

{
  "name": "projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID",
  "createTime": CREATE_TIME
}

gcloud

在使用下面的命令数据之前,请先进行以下替换:

  • LOCATION:密钥环的位置;请使用受支持的区域之一:
    • us-central1
    • us-east1
    • asia-south1
    • europe-west1
    • europe-west2
    • europe-west4
    • northamerica-northeast1
    • southamerica-east1
  • KEY_RING_ID:用户定义的密钥环标识符

执行以下命令:

Linux、macOS 或 Cloud Shell

gcloud kms keyrings create KEY_RING_ID \
  --location LOCATION

Windows (PowerShell)

gcloud kms keyrings create KEY_RING_ID `
  --location LOCATION

Windows (cmd.exe)

gcloud kms keyrings create KEY_RING_ID ^
  --location LOCATION
您应该会收到一个空响应:
$

创建密钥

如需创建密钥,请使用 projects.locations.keyRings.cryptoKeys 方法。

REST

在使用任何请求数据之前,请先进行以下替换:

  • KMS_PROJECT_ID:包含密钥环的项目的 Google Cloud 项目 ID
  • LOCATION:密钥环的位置;请使用受支持的区域之一:
    • us-central1
    • us-east1
    • asia-south1
    • europe-west1
    • europe-west2
    • europe-west4
    • northamerica-northeast1
    • southamerica-east1
  • KEY_RING_ID:用户定义的密钥环标识符
  • KEY_ID:用户定义的密钥标识符

请求 JSON 正文:

{
  "purpose": "ENCRYPT_DECRYPT"
}

如需发送请求,请选择以下方式之一:

curl

将请求正文保存在名为 request.json 的文件中。在终端中运行以下命令,在当前目录中创建或覆盖此文件:

cat > request.json << 'EOF'
{
  "purpose": "ENCRYPT_DECRYPT"
}
EOF

然后,执行以下命令以发送 REST 请求:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://cloudkms.googleapis.com/v1/projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID/cryptoKeys?crypto_key_id=KEY_ID"

PowerShell

将请求正文保存在名为 request.json 的文件中。在终端中运行以下命令,在当前目录中创建或覆盖此文件:

@'
{
  "purpose": "ENCRYPT_DECRYPT"
}
'@  | Out-File -FilePath request.json -Encoding utf8

然后,执行以下命令以发送 REST 请求:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://cloudkms.googleapis.com/v1/projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID/cryptoKeys?crypto_key_id=KEY_ID" | Select-Object -Expand Content

您应该收到类似以下内容的 JSON 响应:

{
  "name": "projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID/cryptoKeys/KEY_ID",
  "primary": {
    "name": "projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID/cryptoKeys/KEY_ID/cryptoKeyVersions/1",
    "state": "ENABLED",
    "createTime": CREATE_TIME,
    "protectionLevel": "SOFTWARE",
    "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION",
    "generateTime": GENERATE_TIME
  },
  "purpose": "ENCRYPT_DECRYPT",
  "createTime": CREATE_TIME,
  "versionTemplate": {
    "protectionLevel": "SOFTWARE",
    "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION"
  },
  "destroyScheduledDuration": "86400s"
}

gcloud

在使用下面的命令数据之前,请先进行以下替换:

  • LOCATION:密钥环的位置;请使用受支持的区域之一:
    • us-central1
    • us-east1
    • asia-south1
    • europe-west1
    • europe-west2
    • europe-west4
    • northamerica-northeast1
    • southamerica-east1
  • KEY_RING_ID:用户定义的密钥环标识符
  • KEY_ID:用户定义的密钥标识符

执行以下命令:

Linux、macOS 或 Cloud Shell

gcloud kms keys create KEY_ID \
  --keyring KEY_RING_ID \
  --location LOCATION \
  --purpose "encryption"

Windows (PowerShell)

gcloud kms keys create KEY_ID `
  --keyring KEY_RING_ID `
  --location LOCATION `
  --purpose "encryption"

Windows (cmd.exe)

gcloud kms keys create KEY_ID ^
  --keyring KEY_RING_ID ^
  --location LOCATION ^
  --purpose "encryption"
您应该会收到一个空响应:
$

创建实例

为数据应驻留的特定区域创建实例。此实例会引用您创建的加密密钥。如需了解详情,请参阅客户管理的加密密钥 (CMEK)

如需创建实例,请使用 projects.locations.instances.create 方法。

(如需了解以下信息,请参阅创建和管理实例。)

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_IDIAM 设置中列出的 Google Cloud 项目 ID
  • LOCATION密钥环和实例的位置;请使用受支持的区域之一:
    • us-central1
    • us-east1
    • asia-south1
    • europe-west1
    • europe-west2
    • europe-west4
    • northamerica-northeast1
    • southamerica-east1
  • INSTANCE_ID:用户定义的实例标识符
  • KMS_PROJECT_ID:包含密钥环的项目的 Google Cloud 项目 ID
  • KEY_RING_ID:用户定义的密钥环标识符
  • KEY_ID:用户定义的密钥标识符

请求 JSON 正文:

{
  "kmsKey": "projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID/cryptoKeys/KEY_ID"
}

如需发送请求,请选择以下方式之一:

curl

将请求正文保存在名为 request.json 的文件中。在终端中运行以下命令,在当前目录中创建或覆盖此文件:

cat > request.json << 'EOF'
{
  "kmsKey": "projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID/cryptoKeys/KEY_ID"
}
EOF

然后,执行以下命令以发送 REST 请求:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances?instance_id=INSTANCE_ID"

PowerShell

将请求正文保存在名为 request.json 的文件中。在终端中运行以下命令,在当前目录中创建或覆盖此文件:

@'
{
  "kmsKey": "projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID/cryptoKeys/KEY_ID"
}
'@  | Out-File -FilePath request.json -Encoding utf8

然后,执行以下命令以发送 REST 请求:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances?instance_id=INSTANCE_ID" | Select-Object -Expand Content

您应该收到类似以下内容的 JSON 响应:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.financialservices.v1.OperationMetadata",
    "createTime": CREATE_TIME,
    "target": "projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

如果成功,响应正文会包含一个长时间运行的操作,其中包含可用于检索异步操作的正在进行状态的 ID。复制返回的 OPERATION_ID 以便在下一部分中使用。

查看结果

使用 projects.locations.operations.get 方法检查是否已创建实例。如果响应包含 "done": false,请重复该命令,直到响应包含 "done": true。这些操作可能需要几分钟到几小时才能完成。

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_IDIAM 设置中列出的 Google Cloud 项目 ID
  • LOCATION:实例的位置;请使用支持的区域之一:
    • us-central1
    • us-east1
    • asia-south1
    • europe-west1
    • europe-west2
    • europe-west4
    • northamerica-northeast1
    • southamerica-east1
  • OPERATION_ID:操作的标识符

如需发送请求,请选择以下方式之一:

curl

执行以下命令:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID"

PowerShell

执行以下命令:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID" | Select-Object -Expand Content

您应该收到类似以下内容的 JSON 响应:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.financialservices.v1.OperationMetadata",
    "createTime": CREATE_TIME,
    "endTime": END_TIME,
    "target": "projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.financialservices.v1.Instance",
    "name": "projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID",
    "createTime": CREATE_TIME,
    "updateTime": UPDATE_TIME,
    "kmsKey": "projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID/cryptoKeys/KEY_ID",
    "state": "ACTIVE"
  }
}

授予对 CMEK 密钥的访问权限

API 会自动在您的项目中创建一个服务帐号。服务帐号需要访问 CMEK 密钥,才能使用该密钥加密和解密基础数据。授予对密钥的访问权限。

对于 PROJECT_NUMBER,请使用与 PROJECT_ID 关联的项目编号。您可以在 IAM 设置页面上找到项目编号。

gcloud kms keys add-iam-policy-binding "projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID/cryptoKeys/KEY_ID" \
  --keyring "projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID" \
  --location "LOCATION" \
  --member "serviceAccount:service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com" \
  --role="roles/cloudkms.cryptoKeyEncrypterDecrypter" \
  --project="PROJECT_ID"

与支持团队联系

每次创建 AML AI 实例时,请与支持团队联系。请提供以下信息,以便 AML AI 产品团队能够根据您的需求以最佳方式配置您的实例:

  • 项目 ID
  • Google Cloud 区域
  • 实例 ID
  • 此实例中数据集的 Party 表中的预期参与方数量
  • 此实例中数据集的事务表中每年的预期事务数

如需申请额外的配额限制,请参阅配额

AML AI 提供多种类型的日志,包括平台日志、审核日志和数据访问日志。详细了解每种类型的日志记录: