Vertex AI Workbench ユーザー管理ノートブックの機密データの保護

Last reviewed 2021-04-29 UTC

このドキュメントでは、Vertex AI Workbench ユーザー管理ノートブックで機密データを保護するために使用できるコントロールとセキュリティのレイヤについて説明します。これは、以下の対象で構成されるブループリント ソリューションの一部です。

このドキュメントにおいて、機密データとは、企業内の誰かがアクセスするためにはより高いレベルの権限を必要とする機密情報を指します。このドキュメントは、ユーザーが管理するノートブックを管理するチームを対象としています。

クラウド インフラストラクチャのデプロイを保護するための、一連の基本的なセキュリティ管理が構成済みであることを前提としています。このブループリントにより、これらの既存のセキュリティ管理に追加のコントロールを適用して、ユーザー管理ノートブック内の機密データを保護できます。Google Cloud デプロイメントにセキュリティを構築するためのベスト プラクティスについて詳しくは、Google Cloud エンタープライズ基盤ブループリントをご覧ください。

はじめに

データ ガバナンスとセキュリティ ポリシーを適用して機密データが含まれるユーザー管理のノートブックを保護するには、多くの場合、次の目標を達成する必要があります。

  • 企業全体に適用するのと同じデータ ガバナンスとセキュリティ対策を使用することで、ノートブック インスタンスで使用されるデータを保護する。
  • 企業のデータ サイエンティストが、有意義な分析情報を提供するために必要なデータにアクセスできるようにする。

企業のデータ サイエンティストにユーザーが管理するノートブックのデータへのアクセスを許可する前に、次のことを理解する必要があります。

  • 環境内でのデータの流れ。
  • データにアクセスしているユーザー。

より正しい理解のために、以下の点を考慮してください。

  • Google Cloud リソース階層をデプロイしてデータを隔離する方法。
  • BigQuery のデータの使用が承認されている IAM グループ。
  • データ ガバナンス ポリシーが環境に及ぼす影響。

ブループリントに関連する GitHub リポジトリの Terraform スクリプトは、このドキュメントで説明するセキュリティ制御を実装します。データ ガバナンスの手法を説明するサンプルデータもリポジトリに含まれています。Google Cloud 内のデータ ガバナンスの詳細については、データ ガバナンスとはをご覧ください。

アーキテクチャ

次のアーキテクチャ図は、プロジェクト階層と、ユーザーが管理するノートブックや暗号鍵などのリソースを示しています。

ブループリントのアーキテクチャ。

このアーキテクチャの境界は、より高い信頼境界と呼ばれます。Virtual Private Cloud(VPC)で使用される機密データの保護に役立ちます。 データ サイエンティストは、より高い信頼境界を通じてデータにアクセスする必要があります。詳細については、VPC Service Controls をご覧ください。

高い信頼境界には、機密データとやり取りするすべてのクラウド リソースが含まれます。これにより、データ ガバナンスの管理が容易になります。ユーザー管理のノートブック、BigQuery、Cloud Storage などのサービスは、境界内で同じ信頼レベルが与えられます。

また、以下のようなセキュリティ管理も行っています。

  • 企業内のデータ サイエンティストが使用しているデバイスに対するデータの引き出しのリスクを軽減する。
  • ノートブック インスタンスを外部ネットワーク トラフィックから保護する。
  • ノートブック インスタンスをホストする VM へのアクセスを制限する。

組織構造

Resource Manager を使用すると、プロジェクト、フォルダ、組織ごとに論理的にリソースをグループ化できます。次の図に、本番環境や開発環境などのさまざまな環境を表すフォルダを持つリソース階層を示します。

本番環境フォルダとデベロッパー フォルダを含むリソース階層。

本番環境フォルダに、信頼できる環境を表す新しいフォルダを作成します。

作成した信頼できるフォルダに組織のポリシーを追加します。以下のセクションでは、フォルダ、サブフォルダ、プロジェクト内で情報を整理する方法を示します。

信頼できるフォルダ

このブループリントは、ユーザー管理のノートブックの本番環境フォルダ内に新しいサブフォルダを作成し、ノートブック インスタンスで BigQuery から使用するデータを分離することで、データを分離するのに役立ちます。次の表に、組織内のフォルダの関係を説明し、このブループリントで使用されるフォルダを示します。

フォルダ 説明
production テスト済みですぐに使用できるクラウド リソースがあるプロジェクトが含まれます。
trusted 機密データを含むノートブック インスタンスのプロジェクトとリソースが含まれます。このフォルダは、production フォルダの子にあたるサブフォルダです。

組織内のプロジェクト

このブループリントは、プロジェクトを使用して環境の一部を隔離するのに役立ちます。これらのプロジェクトにはプロジェクト オーナーが存在しないため、適切な IAM グループに対して明示的な IAM ポリシー バインディングを作成する必要があります。

次の表で、組織内で必要になるプロジェクトを作成する場所について説明しています。

プロジェクト 親フォルダ 説明
trusted-kms trusted データを保護する暗号鍵を管理するサービス(Cloud HSM など)が含まれます。このプロジェクトは高い信頼境界の内部にあります。
trusted-data trusted 機密データを処理するサービス(BigQuery など)が含まれます。このプロジェクトは高い信頼境界の内部にあります。
trusted-analytics trusted データ サイエンティストが使用するユーザー管理のノートブックが含まれています。このプロジェクトは高い信頼境界の内部にあります。

適用するセキュリティ管理について

このセクションでは、ノートブック インスタンスの保護に役立つ Google Cloud 内のセキュリティ管理について説明します。このドキュメントで説明するアプローチでは、複数レイヤの制御を使用してセンシティブ データを保護します。企業のニーズに合わせて、これらの制御レイヤを調整することをおすすめします。

組織のポリシー設定

組織ポリシー サービスは、Google Cloud 組織内でサポートされるリソースに対する制限を構成するために使用します。次の表の説明に従って、trusted フォルダに適用される制約を構成します。ポリシーの制約の詳細については、組織のポリシーの制約をご覧ください。

ポリシーの制約 説明 推奨値
gcp.resourceLocations (リスト型)特定のリージョンへのリソースのデプロイ方法に関する制約を定義します。その他の値については、<a{: l10n-attrs-original-order="href,track-type,track-name,track-metadata-position" l10n-encrypted-href="p0QLUJkJWl022ZPF8XOpExbgk/lxGfezRLhprMa5doZN+cJCz6j1rNnG0f6zRCY5lNvENQyutzDSQoNKf6mWtw1wA7mc7xehzQW0s0VnKKA=" track-metadata-position="body" track-name="internalLink" track-type="solution" }="">有効なリージョン グループ</a{:>をご覧ください。 ["in:us-locations", "in:eu-locations"]
iam.disableServiceAccountCreation (ブール値)値が true の場合、サービス <a {: l10n-attrs-original-order="href,track-type,track-name,track-metadata-position" l10n-encrypted-href="CDx+y1R+QGNLsOA+E2D9d9ou+FEz00PeI85jCLdEq5b4Kv4CQ6p1vl0x3rS9735/" track-metadata-position="body" track-name="internalLink" track-type="solution" }="">アカウントを作成できません。</a{:> true
iam.disableServiceAccountKeyCreation (ブール値)値が true の場合、<a{: l10n-attrs-original-order="href,track-type,track-name,track-metadata-position" l10n-encrypted-href="WFRYDQtmB/86VDs7PZa96dou+FEz00PeI85jCLdEq5bHy+ezA0ewJmDnHN78IEaq/uqVRhG/IldRkC2L0Y9bBQ==" track-metadata-position="body" track-name="internalLink" track-type="solution" }="">サービス アカウント キーの作成ができません。</a{:> true
iam.automaticIamGrantsForDefaultServiceAccounts (ブール値)値が true の場合、アカウントの作成時にプロジェクトの IAM ロールにデフォルトのサービス アカウントを付与できません。 true
compute.requireOsLogin (ブール値)値が true の場合、OS Login を有効にします。詳しくは <a{: l10n-attrs-original-order="href,track-type,track-name,track-metadata-position" l10n-encrypted-href="Mh2WvN3PzmbL/6M7AMJ+U8xdrud5wj8XJuhclBrl/6o=" track-metadata-position="body" track-name="internalLink" track-type="solution" }="">OS Login</a{:> をご覧ください。 true
constraints/compute.restrictProtocolForwardingCreationForTypes (リスト型)新しい転送ルールを内部専用に制限します。 ["is:INTERNAL"]
compute.restrictSharedVpcSubnetworks (リスト型)対象となるリソースで使用できる一連の共有 VPC サブネットワークを定義します。共有 VPC サブネットを持つプロジェクトの名前を指定します。

VPC_SUBNET サブネットを、ユーザー管理ノートブックで使用するプライベート サブネットのリソース ID に置き換えます。
["under:projects/VPC_SUBNET"]
compute.vmExternalIpAccess (リスト)外部 IP アドレスを使用する権限がある一連の Compute Engine VM インスタンスを定義します。 deny all=true
compute.skipDefaultNetworkCreation (ブール値)値が true の場合、Google Cloud リソースの作成時に、デフォルトのネットワークと関連リソースの作成がスキップされます。 true
compute.disableSerialPortAccess (ブール値)値が true の場合、Compute Engine VM へのシリアルポート アクセスができません。 true
compute.disableSerialPortLogging (ブール値)値が true の場合、Compute Engine VM から Cloud Logging へのシリアルポート ロギングができません。 true

その他のポリシー管理の詳細については、Google Cloud エンタープライズ基盤ブループリントをご覧ください。

認証と認可

ブループリントは、ユーザーが管理するノートブックに適用できる IAM 制御とアクセス パターンを確立するのに役立ちます。このブループリントにより、次の方法でアクセス パターンを定義できます。

  • 高信頼データ サイエンティスト グループを使用する。個々の ID にデータにアクセスするための権限が割り当てない。
  • restrictedDataViewer というカスタム IAM ロールを定義する。
  • 最小権限の原則に従って、データへのアクセスを制限する。

ユーザーとグループ

高信頼境界には、次の 2 つのペルソナがあります。

  • データオーナー。BigQuery 内でデータを分類します。
  • 信頼できるデータ サイエンティスト。機密データの処理に使用できます。

これらのペルソナをグループに関連付けます。個々の ID にロールを付与するのではなく、ペルソナに一致する ID をグループに追加します。

このブループリントでは、データ サイエンティストとノートブック インスタンスの間に 1 対 1 のマッピングを定義して、最小限の権限を適用することで、単一のデータ サイエンティスト ID だけがノートブック インスタンスにアクセスできるようになります。個々のデータ サイエンティストに、ノートブック インスタンスに対する編集者の権限は付与されません。

表には次の情報が示されています。

  • グループに割り当てるペルソナ。
  • プロジェクト レベルでグループに割り当てる IAM ロール。
グループ 説明 ロール プロジェクト
data-owner@example.com メンバーは、BigQuery 内のデータの分類と管理を担当します。 <a{: l10n-attrs-original-order="href,track-type,track-name,track-metadata-position" l10n-encrypted-href="qZGUxiLwMwSqAayYOaEAYsqqqBP4p/061BE24HsZBYzqnuNSkSxnVKwqYjVml1pv" track-metadata-position="body" track-name="internalLink" track-type="solution" }="">roles/bigquery.dataOwner</a{:> trusted-data
trusted-data-scientist@example.com メンバーは、信頼できるフォルダ内にあるデータへのアクセスが許可されます。 roles/restrictedDataViewer(カスタム) trusted-data

ユーザーが管理するサービス アカウント

ユーザー管理のノートブックのユーザーが管理するサービス アカウントを、Compute Engine のデフォルトのサービス アカウントの代わりに作成します。次の表に、ノートブック インスタンスのサービス アカウントのロールを示します。

サービス アカウント 説明 ロール プロジェクト
sa-p-notebook-compute@trusted-analytics.iam.gserviceaccount.com ノートブック インスタンスをプロビジョニングするために Vertex AI が使用するサービス アカウント。
  • roles/restrictedDataViewer(カスタム)
  • <a{: l10n-attrs-original-order="href,track-type,track-name,track-metadata-position" l10n-encrypted-href="qZGUxiLwMwSqAayYOaEAYsqqqBP4p/061BE24HsZBYzqnuNSkSxnVKwqYjVml1pv" track-metadata-position="body" track-name="internalLink" track-type="solution" }="">roles/bigquery.jobUser</a{:>
  • <a{: l10n-attrs-original-order="href,track-type,track-name,track-metadata-position" l10n-encrypted-href="F09OE/SDdsh4rSUv6kg1NJzBt276nqedo2zyLe4cxCi9OImFy9Pn6CEbIlOwglwwkXtNx3LSV4gEFf1hFSv84Q==" track-metadata-position="body" track-name="internalLink" track-type="solution" }="">roles/cloudkms.cryptoKeyEncrypterDecrypter</a{:>
  • roles/compute.instanceAdmin
  • roles/notebooks.viewer
trusted-analytics

このブループリントにより、指定した顧客管理の暗号鍵(CMEK)に Google が管理するサービス アカウントへのアクセスを提供することで、ユーザー管理のノートブックを表す Google が管理するサービス アカウントを構成できます。このリソース固有の権限付与により、ユーザーが管理するノートブックで使用される鍵に最小権限が適用されます。

これらのプロジェクトにはプロジェクト オーナーが定義されていないため、データ サイエンティストは鍵を管理できません。

カスタムロール

ブループリントでは、エクスポート権限を削除して roles/restrictedDataViewer カスタムロールを作成します。カスタムロールは、BigQuery テーブルからデータを読み取るための事前定義 BigQuery dataViewer ロールに基づきます。このロールを trusted-data-scientists@example.com グループに割り当てます。次の表に、roles/restrictedDataViewer ロールで使用される権限を示します。

カスタムロール名 説明 権限
roles/restrictedDataViewer 高い信頼境界の内部にあるノートブック インスタンスが BigQuery からのセンシティブ データを表示できるようにします。

roles/bigquery.dataViewer<a{: l10n-attrs-original-order="href,track-type,track-name,track-metadata-position" l10n-encrypted-href="qZGUxiLwMwSqAayYOaEAYsqqqBP4p/061BE24HsZBYzqnuNSkSxnVKwqYjVml1pv" track-metadata-position="body" track-name="internalLink" track-type="solution" }=""> ロールに基づきます。
ただし、エクスポート権限(例: bigquery.models.export)を除きます。</a{:>
bigquery.datasets.get
bigquery.datasets.getIamPolicy
bigquery.models.getData
bigquery.models.getMetadata
bigquery.models.list
bigquery.routines.get
bigquery.routines.list
bigquery.tables.get
bigquery.tables.getData
bigquery.tables.getIamPolicy
bigquery.tables.list
resourcemanager.projects.get
resourcemanager.projects.list

最小限の権限

このブループリントにより、最小レベルの権限を持つロールを付与できます。たとえば、サービス アカウントとの共有マッピングではなく、単一のデータ サイエンティストの ID とノートブック インスタンスの間の 1 対 1 のマッピングを構成する必要があります。権限を制限することで、データ サイエンティストによるノートブック インスタンスをホストするインスタンスへの直接ログインを禁止できます。

特権アクセス

trusted-data-scientists@example.com という名前の、より信頼性の高いデータ サイエンティスト グループのユーザーに特権アクセス権が付与されています。このレベルのアクセス権は、対象ユーザーに機密データにアクセスできる ID が付与されていることを示しています。ID チームと協力して、これらのデータ サイエンティストの ID に対して 2 段階認証プロセスを有効にしたハードウェア セキュリティ キーを指定します。

ネットワーキング

Google Cloud エンタープライズ基盤ネットワーク スクリプトで定義されたものなど、ノートブックの共有 VPC 環境を指定します。

ノートブック インスタンスのネットワークには、次のプロパティがあります。

  • 外部 IP アドレスを持たない制限付きのプライベート ネットワークを使用する共有 VPC。
  • 制限付きのファイアウォール ルール。
  • ユーザー管理のノートブックが操作するすべてのサービスとプロジェクトを含む VPC Service Controls の境界。
  • Access Context Manager ポリシー。

制限付き共有 VPC

指定した共有 VPC を使用するようにユーザー管理ノートブックを構成します。OS Login が必要なため、共有 VPC でノートブック インスタンスへのアクセスを最小限に抑えます。Identity-Aware Proxy(IAP)を使用して、データ サイエンティストへの明示的なアクセスを構成できます。

また、共有 VPC 内の Google API およびサービスへのプライベート接続を、restricted.googleapis.com ドメインを使用して構成します。この構成により、環境内のサービスが VPC Service Controls をサポートできるようになります。

制限付きの共有 VPC を設定する方法の例については、セキュリティ基盤のブループリント ネットワーク構成の Terraform スクリプトをご覧ください。

VPC Service Controls の境界

このブループリントにより、VPC Service Controls を使用して信頼できる環境の高い信頼境界を確立できます。

サービス境界は、データの引き出しのリスクを最小限に抑えることで、プロジェクト内の Google Cloud サービスの保護に使用できる組織レベルの管理です。

次の表は、VPC Service Controls の境界の構成方法を示しています。

属性 検討対象
projects キーを含めて、ユーザーが管理するノートブックを使用するデータ サイエンティストがアクセスするデータが含まれるすべてのプロジェクトを含めます。 ["trusted-kms"
"trusted-data"
"trusted-analytics"]
services 必要に応じて、サービスを追加します。 ["compute.googleapis.com",
"storage.googleapis.com"
"notebooks.googleapis.com"
"bigquery.googleapis.com"
"datacatalog.googleapis.com"
"dataflow.googleapis.com"
"dlp.googleapis.com"
"cloudkms.googleapis.com"
"secretmanager.googleapis.com"
"cloudasset.googleapis.com"
"cloudfunctions.googleapis.com"
"pubsub.googleapis.com"
"monitoring.googleapis.com"
"logging.googleapis.com"]
access_level セキュリティ要件を満たす <a{: l10n-attrs-original-order="href,track-type,track-name,track-metadata-position" l10n-encrypted-href="lusaVihyw0i6CzgawuRRYyk10Dou6dGBPtPXPAqkVYhqg3ciWN7dEYftf8SKI5K5" track-metadata-position="body" track-name="internalLink" track-type="solution" }=""> Access Context Manager ポリシーを追加し、さらに詳細な <a{: l10n-attrs-original-order="href,track-type,track-name,track-metadata-position" l10n-encrypted-href="ZRmADm/vo/JQ2+/D/vUUr0WE0NcjMCq0U/gbksCiqgf1jsdW/MbrYpK1/gdk16L117PUzYIUuMKSr0A78yDcsQ==" track-metadata-position="body" track-name="internalLink" track-type="solution" }=""> エンドポイント検証ポリシーを追加します。</a{:></a{:> ACCESS_POLICIES
詳しくは、<a{: l10n-attrs-original-order="href,track-type,track-name,track-metadata-position" l10n-encrypted-href="RD1gsl2tw43oA/PJKkk1nXjCRwUobSSsbtnFJlSTCBLjoLksm7evman24//KLCurKSqCdTDqIF3jaY3PSD/AkaFbN8pCOwuaC/vIQ9/k+Vf+HXbWtslLzKBVhXD8qB/Z" track-metadata-position="body" track-name="internalLink" track-type="solution" }="">Access Context Manager
</a{:> をご覧ください。

Access Context Manager

このブループリントは、VPC Service Controls の境界で Access Context Manager を構成するのに役立ちます。Access Context Manager では、プロジェクトとリソースに対してきめ細かい属性ベースのアクセス制御を定義できます。Endpoint Verification を使用して、データにアクセスするための企業ガバナンスの要件に合わせてポリシーを構成します。管理者と協力して、企業のデータ サイエンティストのアクセス ポリシーを作成します。

次の表に示す値を、アクセス ポリシーで使用することをおすすめします。

条件 検討対象
ip_subnetworks 企業で信頼されている IP 範囲を使用してください。 (リスト)境界内のリソースへのアクセスが許可される CIDR 範囲。
members 境界にアクセスできる強力な特権を持つユーザーを追加します。 (リスト)プロビジョニングを行うためのデータ サイエンティストの特権 ID と Terraform のサービス アカウント。
device_policy.require_screen_lock デバイスで画面ロックが有効になっている必要があります。 true
device_policy.require_corp_owned 会社が管理するデバイスにのみ、ユーザーが管理するノートブックへのアクセスを許可します。 true
device_policy.allowed_encryption_statuses データ サイエンティストのみが、保存データを暗号化するデバイスを使用できます。 (list) ENCRYPTED
regions データ サイエンティストがノートブック インスタンスにアクセスできるリージョン指定を維持します。

データ サイエンティストが稼働している想定される最小のリージョン セットに制限します。
<a{: l10n-attrs-original-order="href,track-type,track-name,track-metadata-position" l10n-encrypted-href="8N5kFK1nMdX9Lm9PBXn1Gik10Dou6dGBPtPXPAqkVYhCA27lJ8v3AtKljasH4ygRJI82FsX3O5bO4YFtCsDjBg==" track-metadata-position="body" track-name="internalLink" track-type="solution" }=""> 有効なリージョン コード
(リスト) </a{:>

BigQuery の最小権限

このブループリントは、データ サイエンティストが使用する BigQuery のデータセットへのアクセスを構成する方法を示します。設定した構成では、データ サイエンティストが BigQuery のデータセットにアクセスするためのノートブック インスタンスが必要です。

設定した構成により、次の方法で BigQuery のデータセットにセキュリティのレイヤを追加することもできます。

  • ノートブック インスタンスのサービス アカウントへのアクセスを許可する。データ サイエンティストが、BigQuery のデータセットに直接アクセスするためのノートブック インスタンスを所有している必要があります。
  • データ サイエンティストが企業のデータ ガバナンスの要件を満たさないデータのコピーを作成するというリスクを軽減する。BigQuery と直接やり取りする必要があるデータ サイエンティストを、trusted-data-scientists@example.com グループに追加する必要があります。

または、データ サイエンティストに BigQuery へのアクセス制限を提供するために、列レベルのセキュリティのようなきめ細かなアクセス制御を使用できます。データオーナーは、ガバナンス チームと協力して適切な分類を作成する必要があります。データオーナーは、データセットをスキャンする機密データの保護を使用することで、分類方法に合わせてデータセットを分類し、タグ付けできます。

鍵管理

データ保護のため、ユーザーが管理するノートブックでは暗号鍵を使用しています。鍵は FIPS 140-2 レベル 3 の Cloud HSM によってバックアップされます。環境内に作成した鍵は、次の方法でデータを保護するのに役立ちます。

  • CMEK が高い信頼境界内のすべてのサービスで有効になっている。
  • 鍵の可用性はリージョンごとに構成できる。
  • 鍵のローテーションが構成可能である。
  • 鍵へのアクセスが制限されている。

CMEK

このブループリントにより CMEK を使用して、管理対象の鍵を使用するすべてのデータの暗号境界を作成します。環境では、高い信頼境界内のすべてのサービスに対して同じ CMEK 鍵を使用します。CMEK を使用するもう 1 つの利点は、ノートブック インスタンスが不要になった場合に、ノートブック インスタンスを保護するために使用した鍵を破棄できることです。

鍵の可用性とローテーション

高可用性を実現するには、マルチリージョンのキーリングを作成します。これにより、鍵の可用性が向上します。

このブループリントでは、自動ローテーション値を持つ鍵を作成します。ローテーション値を設定するには、企業で設定されているセキュリティ ポリシーに従います。セキュリティ ポリシーに合わせてデフォルト値を変更することも、必要に応じて鍵のローテーションを頻繁に行うこともできます。

次の表に、鍵に構成する属性を示します。

属性 検討対象
rotation 企業のコンプライアンス ローテーション ポリシーで設定された値と一致させます。 45 日
location <a{: l10n-attrs-original-order="href,track-type,track-name,track-metadata-position" l10n-encrypted-href="Z98fpOVAlHdfgDS3sMyCXJRrt04oQqGzq1Aef2125xKSjPY+/eF9aEsSeoGJf8A6" track-metadata-position="body" track-name="internalLink" track-type="solution" }=""> マルチリージョンのロケーションを使用するキーリングを使用して、可用性を向上させます。</a{:> ユーザーが管理するノートブックのゾーンの構成に基づいて自動的に選択されます。
protection level 企業で指定した保護レベルを使用します。 HSM

鍵へのアクセス

このブループリントによって、データリソースとは別のフォルダの Cloud HSM モジュールに配置することで鍵を保護できます。このアプローチは、次の理由で使用します。

  • すべてのリソースで鍵を使用するには、暗号鍵が必要である。
  • 鍵管理チームは、データ所有者とは別のチームである。
  • 鍵に対する追加の管理とモニタリングが必要である。別のフォルダを使用すると、データから独立した鍵のポリシーを管理できます。

ユーザーが管理するノートブックのセキュリティ管理

このセクションで説明する管理は、ユーザーが管理するノートブックで使用されるデータを保護します。このブループリントは、次のように、ユーザー管理ノートブックのセキュリティ制御を構成するのに役立ちます。

  • データの引き出しのリスクを軽減する。
  • 権限昇格を制限する。

データ ダウンロードの管理

デフォルトでは、ノートブック インスタンスにより、データ サイエンティストはマシンへのデータのダウンロードやエクスポートを行うことができます。このブループリントによってインストールされた起動スクリプトにより、次の操作を回避できます。

  • ローカル デバイスへのデータのエクスポートとダウンロード。
  • ノートブック インスタンスによって計算された出力値を出力する能力。

このスクリプトは、trusted_kms プロジェクトに作成されます。このブループリントは、アクセスを制限し、CMEK を構成することで、スクリプトを保存するバケットを保護するのに役立ちます。ユーザーが管理するノートブックに対してプロジェクトからスクリプトを分離すると、未承認のコードが起動スクリプトに追加されるリスクも軽減できます。

プライベートで制限された VPC サブネットを使用するようにユーザー管理のノートブックを構成しているため、ノートブック インスタンスでパブリック ネットワークにアクセスできません。この構成により、データ サイエンティストによる外部モジュールのインストール、外部データソースへのアクセス、公開コード リポジトリへのアクセスを防ぐことができます。外部リソースではなく、企業のデータ サイエンティスト向けに Artifact Registry などのプライベート アーティファクト リポジトリを設定することをおすすめします。

権限の管理

このブループリントにより、trusted-data-scientists@example.com グループに割り当てられた権限を制限できます。たとえば、このグループには Persistent Disk のスナップショットを作成するロールが割り当てられていません。スナップショットのローカル ファイル システムに、企業のデータが含まれているノートブック インスタンスが含まれている可能性があるためです。

さらに、データ サイエンティストによる特権アクセスを防ぐために、ノートブック インスタンスのコマンドラインから sudo コマンドを使用することはできません。このアクションにより、データ サイエンティストがノートブック インスタンスにインストールされているコントロール(承認されたパッケージやロギングなど)を変更できなくなります。

オペレーション セキュリティ

このブループリントにより確立するセキュリティ管理とともに、次の運用のセキュリティ ポリシーを構成して、企業で利用されているノートブックでデータを継続的に保護する必要があります。

  • ロギングとモニタリングの構成。
  • 脆弱性管理ポリシー。
  • アセットの可視性。

ロギングとモニタリング

階層を作成したら、新しいプロジェクトに使用するロギングと検出の制御を構成する必要があります。これらの制御の構成方法については、セキュリティ基盤のブループリント ロギング スクリプトをご覧ください。

脆弱性の管理

Deep Learning VM Image は定期的に更新されます。既存のノートブック インスタンスのイメージは、脆弱性スキャン スケジュールと同じ頻度で更新することをおすすめします。isUpgradeable API の結果を確認して、upgrade API を使用してアップグレードを開始できます。

リスクの可視性

アセット、脆弱性、リスク、ポリシーを可視化するには、Security Command Center を使用することをおすすめします。Security Command Center は、デプロイをスキャンして、関連するコンプライアンス フレームワークに照らして環境を評価します。

まとめ

このドキュメントで説明されたアーキテクチャを実装する方法は次のとおりです。

  1. 組織構造セクションに基づいて、信頼できるフォルダとプロジェクトを作成する。
  2. セキュリティ ポリシーに従って、これらのプロジェクトのロギングとモニタリングの制御を構成する。例については、セキュリティ基盤のブループリント ロギング構成を確認する。
  3. ユーザーとグループでの説明に従って、IAM グループを作成し、信頼できるデータ サイエンティストの ID を適切なグループに追加する。
  4. ネットワーキングでの説明に従って、制限付きの共有 VPC とサブネットを使用してネットワークを設定する。
  5. Access Context Manager の説明に従って、Access Context Manager ポリシーを作成する。
  6. このチュートリアル用に GitHub リポジトリのクローンを作成します。
  7. 必要な入力を使用して、Terraform 環境変数ファイルを作成する。
  8. Terraform スクリプトを環境に適用して、このブループリントで説明するコントロールを作成する。
  9. 信頼できる環境が、セキュリティとデータ ガバナンスの要件を満たしていることを確認する。新しく作成されたプロジェクトは Security Command Center のコンプライアンス フレームワークに対するスキャンが可能。
  10. trusted-data プロジェクト内に BigQuery のデータセットを作成するか、data GitHub リポジトリ モジュールにあるサンプルを使用する。
  11. 企業のデータ サイエンティストと連携して、新しく作成されたノートブック インスタンスへのアクセスをテストする。
  12. ユーザー管理のノートブック環境内で、データ サイエンティストが想定どおりに BigQuery のデータとやり取りできるかどうかをテストする。関連する GitHub リポジトリにあるサンプル BigQuery コマンドを使用できる。

リソース