このページでは、同意ポリシーと属性を構成する方法について説明します。
同意ポリシーは Consent Management API によって使用され、エンドユーザーや組織のガイドラインを通じて付与された同意を表します。同意ポリシーは、consent
リソースの構成要素です。各 consent
リソースには、最大 10 個の同意ポリシーを含めることができます。同意ポリシーは、ポリシーの適用対象を説明する RESOURCE
属性と、ポリシーが有効な条件を決定する承認ルールを定義する REQUEST
属性で構成されます。同意ポリシーの詳細については、ポリシーの表現をご覧ください。
Consent Management API は属性を使用して、Consent Store が理解できる同意とプライバシーの分類を定義します。属性は、保存される同意と管理対象データを記述するために使用されます。アクセス決定リクエストも属性を使用して、作成中のリクエストを記述します。
attributeDefinition
リソースは、Consent Management API が処理できる同意属性を決定する Consent Store 内のリソースです。1 つの同意ストアに、最大 200 個の属性定義リソースを含めることができます。各属性定義には、次のいずれかの属性タイプがあります。
RESOURCE
属性は、データまたはアクションのプロパティによって値が決定される属性です。たとえば、データを匿名化するか識別可能にするかが定義されます。このタイプの属性は、同意ポリシーが適用される内容を記述し、user data mappings
に登録されているデータを記述し、一部のアクセス決定リクエストの範囲を特定のリソースのクラスに絞り込むために使用されます。REQUEST
属性は、リクエスト元の ID または目的によって値が決定される属性です。例として、研究者や医療従事者など、使用が許可された職種が挙げられます。このタイプの属性は、同意ポリシーの承認ルールを作成し、アクセス承認リクエストで提案された使用を指定するために使用します。
attributeDefinition
リソースは、最大 500 個の属性値を持つ単一の属性を表します。属性値は、その属性に設定可能な値を表します。例については、ポリシーの表現をご覧ください。
後から別の属性値を属性定義に追加することはできますが、削除することはできません。属性定義の参照整合性は、consent
リソースに関連するものとして適用されます。つまり、属性定義が同意リソースの最新リビジョンによって参照されている間は、属性定義の一部のフィールドを変更および削除できません。
次の図は、新しい Consent Store 内に同意属性を作成するプロセスを示しています。
同意とプライバシーの分類に必要なすべての属性定義を作成するには、RESOURCE
属性の定義の作成および REQUEST
属性の定義の作成に示されているプロセスを繰り返します。
RESOURCE
属性の定義の作成
RESOURCE
属性の定義を作成するには、projects.locations.datasets.consentStores.attributeDefinitions.create
メソッドを使用します。POST
リクエストを行い、リクエストで次の値を指定します。
- 親 Consent Store の名前。
- 親 Consent Store 内で一意の属性定義の名前。この名前には、大文字と小文字、数字、アンダースコアを使用できます。Common Expression Language(CEL)内で予約済みキーワードは使用できません。
- 属性のカテゴリ。この例では
RESOURCE
です。 - この属性が表すことのできる値。
- アクセス トークン
curl
次のサンプルは、curl
を使用する POST
リクエストです。このリクエストでは、identifiable
と de-identified
という値を持つ data_identifiable
という名前の 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
リクエストです。このリクエストでは、identifiable
と de-identified
という値を持つ data_identifiable
という名前の 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
リクエストを行い、リクエストで次の値を指定します。
- 親 Consent Store の名前。
- 親 Consent Store 内で一意の属性定義の名前。この名前は 1~256 文字からなる Unicode 文字列で、数字、文字、アンダースコア、ダッシュ、ピリオドで構成されます。ただし先頭には数字を使用できません。
- 属性のカテゴリ。この例では
REQUEST
です。 - この属性が表すことのできる値。
- 同意ポリシーに適用されるデフォルト値(省略可)。このフィールドに値を設定すると、この属性が含まれているという前提で Consent Store が構成され、この属性がそのポリシーで特に指定されていない場合は値が含まれます。このフィールドは、ユースケースで特に必要な場合にのみ設定する必要があります。
- アクセス トークン。
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 を使用して requester_identity
という名前の REQUEST
属性を作成する POST
リクエストを示しています。
$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] パネルが開きます。このツールを操作してリクエストを送信できます。このツールにリクエスト本文を貼り付け、その他の必須フィールドに入力して、[Execute] をクリックします。
次のような 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] パネルが開きます。このツールを操作してリクエストを送信できます。必須フィールドを入力して、[Execute] をクリックします。
次のような 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] パネルが開きます。このツールを操作してリクエストを送信できます。必須フィールドを入力して、[Execute] をクリックします。
次のような 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] パネルが開きます。このツールを操作してリクエストを送信できます。必須フィールドを入力して、[Execute] をクリックします。
次のような JSON レスポンスが返されます。