本页面介绍如何配置许可政策和特性。
Consent Management API 使用许可政策来表示最终用户或组织准则所授予的许可。许可政策是 consent
资源的基础组件。每个 consent
资源最多可以包含 10 项许可政策。许可政策包含 RESOURCE
特性(用于描述政策适用的场合)和 REQUEST
特性(用于定义授权规则,该规则确定政策适用的条件)。如需详细了解许可政策,请参阅政策表示法。
Consent Management API 使用特性来定义许可存储区可以理解的许可和隐私权分类。特性用于描述存储的许可和管理的数据。访问确定请求还使用特性来描述发出的请求。
attributeDefinition
资源是许可存储区中的资源,用于确定 Consent Management API 可以处理哪些许可特性。一个许可存储区最多可包含 200 个特性定义资源。每个特性定义都具有以下特性类型之一:
RESOURCE
特性是一种其值由数据或操作的属性确定的特性。例如,数据是去标识化的数据还是可标识的数据。这种类型的特性用于描述许可政策适用的场合、描述向user data mappings
注册的数据,以及将某些访问确定请求的范围缩小到特定的资源类。REQUEST
特性是一种其值由请求者的身份或目的确定的特性。例如,已同意使用的职业,例如研究人员或医护人员。这种类型的特性用于编写许可政策的授权规则,以及指定访问确定请求中的建议用途。
attributeDefinition
资源表示单个属性,最多包含 500 个属性值。属性值表示属性可能具有的值。如需查看示例,请参阅政策表示形式。
额外的特性值可以随着时间的推移而添加到特性定义中,但不能移除。特性定义的引用完整性与 consent
资源相关。这意味着,许可资源的最新版本正在引用某个特性定义时,您无法更改或删除该特性定义的某些字段。
下图显示了在新许可存储区中创建许可特性的过程:
要创建您的许可和隐私权分类所需的所有特性定义,请重复执行创建 RESOURCE
特性定义和创建 REQUEST
特性定义中介绍的过程。
创建 RESOURCE
特性定义
要创建 RESOURCE
特性定义,请使用 projects.locations.datasets.consentStores.attributeDefinitions.create
方法。发出 POST
请求并在请求中指定以下信息:
- 父许可存储区的名称。
- 父许可存储区中唯一的特性定义名称。名称可以是任何小写字母、数字和下划线。它不能是通用表达式语言 (CEL) 中的预留关键字。
- 特性的类别,在本示例中为
RESOURCE
- 此特性可代表的可能值
- 访问令牌
curl
以下示例展示了使用 curl
的 POST
请求,该请求创建一个名为 data_identifiable
且值为 identifiable
和 de-identified
的 RESOURCE
特性:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/consent+json; charset=utf-8" \ --data "{ 'description': 'whether the data is identifiable', 'category': 'RESOURCE', 'allowed_values': [ 'identifiable', 'de-identified' ], }" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/attributeDefinitions?attribute_definition_id=data_identifiable"
如果请求成功,则服务器返回 JSON 格式的类似下列示例的响应:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/attributeDefinitions/data_identifiable", "description": "whether the data is identifiable", "category": "RESOURCE", "allowedValues": [ "identifiable", "de-identified" ] }
PowerShell
以下示例展示了使用 Windows PowerShell 的 POST
请求,该请求创建一个名为 data_identifiable
且值为 identifiable
和 de-identified
的 RESOURCE
特性:
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-WebRequest ` -Method Post ` -Headers $headers ` -ContentType: "application/consent+json; charset=utf-8" ` -Body "{ 'description': 'whether the data is identifiable', 'category': 'RESOURCE', 'allowed_values': [ 'identifiable', 'de-identified' ] }" ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/attributeDefinitions?attribute_definition_id=data_identifiable" | Select-Object -Expand Content
如果请求成功,则服务器返回 JSON 格式的类似下列示例的响应:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/attributeDefinitions/data_identifiable", "description": "whether the data is identifiable", "category": "RESOURCE", "allowedValues": [ "identifiable", "de-identified" ] }
Python
创建 REQUEST
特性定义
要创建 REQUEST
特性定义,请使用 projects.locations.datasets.consentStores.attributeDefinitions.create
方法。发出 POST
请求并在请求中指定以下信息:
- 父许可存储区的名称。
- 父许可存储区中唯一的特性定义名称。名称可以是 1 到 256 个字符的任意 Unicode 字符串,由数字、字母、下划线、短划线和句点组成,但不能以数字开头。
- 特性的类别,在本示例中为
REQUEST
。 - 此特性可代表的可能值。
- 一组将应用于许可政策的可选默认值。设置此字段的值后,系统会将许可存储区配置为假定许可政策包含此特性和值(如果该政策没有以其他方式指定此特性)。只有在您的用例明确要求时,才应设置此字段。
- 访问令牌。
curl
以下示例展示了使用 curl
的 POST
请求,该请求创建一个名为 requester_identity
的 REQUEST
特性:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/consent+json; charset=utf-8" \ --data "{ 'description': 'what groups are consented for access', 'category': 'REQUEST', 'allowed_values': ['internal-researcher', 'external-researcher', 'clinical-admin'], }" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/attributeDefinitions?attribute_definition_id=requester_identity"
如果请求成功,则服务器返回 JSON 格式的类似下列示例的响应:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/attributeDefinitions/requester_identity", "description": "what groups are consented for access", "category": "REQUEST", "allowedValues": [ "internal-researcher", "external-researcher", "clinical-admin" ] }
PowerShell
以下示例展示了使用 Windows PowerShell 的 POST
请求,该请求创建名为 requester_identity
的 REQUEST
特性:
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-WebRequest ` -Method Post ` -Headers $headers ` -ContentType: "application/consent+json; charset=utf-8" ` -Body "{ 'description': 'what groups are consented for access', 'category': 'REQUEST', 'allowed_values': ['internal-researcher', 'external-researcher', 'clinical-admin'] }" ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/attributeDefinitions?attribute_definition_id=requester_identity" | Select-Object -Expand Content
如果请求成功,则服务器返回 JSON 格式的类似下列示例的响应:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/attributeDefinitions/requester_identity", "description": "what groups are consented for access", "category": "REQUEST", "allowedValues": [ "internal-researcher", "external-researcher", "clinical-admin" ] }
Python
修改属性定义
REST
在使用任何请求数据之前,请先进行以下替换:
- PROJECT_ID:您的 Google Cloud 项目的 ID
- LOCATION:数据集位置
- DATASET_ID:数据集 ID
- CONSENT_STORE_ID:意见征求存储区 ID
- ATTRIBUTE_DEFINITION_ID:属性定义 ID
- DESCRIPTION:属性的说明
请求 JSON 正文:
{ "description": "DESCRIPTION" }
如需发送请求,请选择以下方式之一:
curl
将请求正文保存在名为 request.json
的文件中。在终端中运行以下命令,在当前目录中创建或覆盖此文件:
cat > request.json << 'EOF' { "description": "DESCRIPTION" } EOF
然后,执行以下命令以发送 REST 请求:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/attributeDefinitions/ATTRIBUTE_DEFINITION_ID?updateMask=description"
PowerShell
将请求正文保存在名为 request.json
的文件中。在终端中运行以下命令,在当前目录中创建或覆盖此文件:
@' { "description": "DESCRIPTION" } '@ | Out-File -FilePath request.json -Encoding utf8
然后,执行以下命令以发送 REST 请求:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/attributeDefinitions/ATTRIBUTE_DEFINITION_ID?updateMask=description" | Select-Object -Expand Content
API Explorer
复制请求正文并打开方法参考页面。API Explorer 面板会在页面右侧打开。您可以与此工具进行交互以发送请求。将请求正文粘贴到此工具中,填写任何其他必填字段,然后点击执行。
您应该收到类似以下内容的 JSON 响应:
Python
获取属性定义
REST
在使用任何请求数据之前,请先进行以下替换:
- PROJECT_ID:您的 Google Cloud 项目的 ID
- LOCATION:数据集位置
- DATASET_ID:数据集 ID
- CONSENT_STORE_ID:意见征求存储区 ID
- ATTRIBUTE_DEFINITION_ID:属性定义 ID
如需发送请求,请选择以下方式之一:
curl
执行以下命令:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/attributeDefinitions/ATTRIBUTE_DEFINITION_ID"
PowerShell
执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/attributeDefinitions/ATTRIBUTE_DEFINITION_ID" | Select-Object -Expand Content
API Explorer
打开方法参考页面。API Explorer 面板会在页面右侧打开。您可以与此工具进行交互以发送请求。填写所有必填字段,然后点击执行。
您应该收到类似以下内容的 JSON 响应:
Python
列出特性定义
REST
在使用任何请求数据之前,请先进行以下替换:
- PROJECT_ID:您的 Google Cloud 项目的 ID
- LOCATION:数据集位置
- DATASET_ID:数据集 ID
- CONSENT_STORE_ID:意见征求存储区 ID
如需发送请求,请选择以下方式之一:
curl
执行以下命令:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/attributeDefinitions"
PowerShell
执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/attributeDefinitions" | Select-Object -Expand Content
API Explorer
打开方法参考页面。API Explorer 面板会在页面右侧打开。您可以与此工具进行交互以发送请求。填写所有必填字段,然后点击执行。
您应该收到类似以下内容的 JSON 响应:
Python
删除属性定义
REST
在使用任何请求数据之前,请先进行以下替换:
- PROJECT_ID:您的 Google Cloud 项目的 ID
- LOCATION:数据集位置
- DATASET_ID:数据集 ID
- CONSENT_STORE_ID:意见征求存储区 ID
- ATTRIBUTE_DEFINITION_ID:属性定义 ID
如需发送请求,请选择以下方式之一:
curl
执行以下命令:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/attributeDefinitions/ATTRIBUTE_DEFINITION_ID"
PowerShell
执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/attributeDefinitions/ATTRIBUTE_DEFINITION_ID" | Select-Object -Expand Content
API Explorer
打开方法参考页面。API Explorer 面板会在页面右侧打开。您可以与此工具进行交互以发送请求。填写所有必填字段,然后点击执行。
您应该收到类似以下内容的 JSON 响应: