セキュリティのベスト プラクティスを設定する

このページでは、Cloud Workstations のセキュリティとデータ保護の対策を強化するために推奨されるセキュリティのベスト プラクティスの概要を説明します。このリストは、セキュリティを保証する包括的なチェックリストではなく、既存のセキュリティ対策に代わるものではありません。

目標は、Cloud Workstations で実現可能なセキュリティのベスト プラクティスを説明することです。これらの推奨事項は、階層化されたセキュリティ アプローチを構築する取り組みの一環として、該当する場合はセキュリティ ソリューションのポートフォリオに追加します。階層化されたセキュリティ アプローチは、Google Cloud で安全かつコンプライアンスに準拠したサービスを実行するためのコア セキュリティ原則の一つです。

背景

Cloud Workstations サービスは、このサービスで使用する事前構成されたベースイメージを提供します。サービスはこれらのイメージを毎週再ビルドして再公開し、バンドルされているソフトウェアに最新のセキュリティ パッチが含まれていることを確認するのに役立ちます。さらに、このサービスは、ワークステーション構成でデフォルトの実行タイムアウト値を使用して、ワークステーションが自動的に更新され、パッチが適用されていないイメージが公開されないことを確認するのに役立ちます。

ただし、Google Cloud は、これらのイメージにバンドルされているすべてのパッケージを所有しているわけではありません。バグまたは一般的な脆弱性と露出(CVE)がプロダクトに与える影響によって、パッケージ マネージャーが更新の優先順位を変更する場合があります。プロダクトがライブラリの一部のみを使用している場合、ライブラリの他の部分での検出の影響を受けないことがあります。このため、イメージの脆弱性スキャンからの CVE の検出が存在しますが、Cloud Workstations では引き続き安全なプロダクトを提供できます。

Cloud Workstations は、指定された開発者のみがワークステーションにアクセスできるようにする認証および認可システムを提供できるため、これを実現できます。他の開発環境と同様に、デベロッパーはワークステーションを使用する際にベスト プラクティスを適用する必要があります。可能な限り安全性を高めるために、信頼できるコードのみを実行し、信頼できる入力に対してのみオペレーションを行い、信頼できるドメインのみにアクセスします。さらに、ワークステーションを使用して本番環境サーバーをホストすることや、複数のデベロッパーと単一のワークステーションを共有することはおすすめしません。

組織のワークステーション イメージのセキュリティをさらに制御する場合は、独自のカスタマイズされたコンテナ イメージを作成することもできます。

公共ネットワークのアクセスを制限する

ワークステーション構成を使用してワークステーションでパブリック IP アドレスを無効にし、Cloud Workstations 内からの、日常業務に不要な公共のインターネット宛先へのアクセスを制限するファイアウォール ルールを構成します。パブリック IP アドレスを無効にする場合は、ネットワークで限定公開の Google アクセスまたは Cloud NAT を設定する必要があります。 限定公開の Google アクセスを使用していて、Artifact Registry(または Container Registry)に private.googleapis.com または restricted.googleapis.com を使用する場合は、必ずドメイン に *.pkg.dev*.gcr.io の DNS レコードを設定してください。

直接 SSH アクセスを制限する

Cloud Workstations をホストしているプロジェクト内の VM への直接 SSH アクセスを確実に制限して、アクセスが Cloud Workstations ゲートウェイ経由でのみ行われるようにします。ここでは、Identity and Access Management(IAM)ポリシーが適用され、VPC フローログを有効にできます。

VM への直接 SSH アクセスを無効にするには、次の Google Cloud CLI コマンドを実行します。

    gcloud workstations configs update CONFIG \
        --cluster=CLUSTER \
        --region=REGION \
        --project=PROJECT \
        --disable-ssh-to-vm

機密性の高いリソースへのアクセスを制限する

VPC Service Controls サービス境界を設定して、ワークステーションから機密性の高いリソースへのアクセスを制限し、ソースコードやデータの引き出しを防止します。

最小権限の原則に従う

権限とリソース割り当てについては、最小権限の原則に従います。

IAM 権限

デフォルトの Identity and Access Management 構成を使用して、ワークステーションへのアクセスを単一のデベロッパーに制限します。これにより、各デベロッパーが、基盤となる独立した VM を持つ一意のワークステーション インスタンスを使用するため、環境が分離されます。Cloud Workstations コードエディタとアプリケーションは、特権モードで root アクセス権限で実行されるコンテナ内で実行されるため、デベロッパーの柔軟性が向上します。これにより、デベロッパーごとに一意のワークステーションが提供され、ユーザーがこのコンテナからエスケープしても、VM 内にとどまり、追加の外部リソースにアクセスできなくなります。

Artifact Registryワークステーション構成とコンテナ イメージを変更するための管理者以外のアクセスを制限する IAM 権限を設定します。

また、Cloud Workstations をホストするプロジェクト内の基盤となる Compute Engine リソースに対する管理者以外のアクセスを制限する IAM 権限を設定することをおすすめします。

詳細については、IAM を安全に使用するをご覧ください。

Cloud KMS の権限

最小権限の原則をより適切にサポートするために、Cloud KMS リソースと Cloud Workstations リソースを別々の Google Cloud プロジェクト内に保持することをおすすめします。プロジェクト レベルで owner なしで Cloud KMS 鍵プロジェクトを作成し、組織レベルで付与された組織管理者を指定します。owner とは異なり、Organization Admin は直接鍵の管理や使用はできません。鍵の管理や使用ができるユーザーを制限する IAM ポリシーの設定に限定されます。

これは職掌分散とも呼ばれます。これは、1 人の個人が、悪意のある操作を行うのに必要なすべての権限を持たないようにするという概念です。詳細については、職掌分散をご覧ください。

自動のイメージ更新とパッチを適用する

ワークステーションに、最新のセキュリティ パッチと修正を含む最新バージョンの Cloud Workstations ベースイメージが使用されていることを確認します。ワークステーション構成の実行タイムアウト値により、この構成で作成されたワークステーションが、ワークステーション構成で定義されているコンテナ イメージの最新バージョンと一致するように、次のセッションで自動的に更新されるようにします。

  • 組織で Cloud Workstations ベースイメージを使用する場合、ワークステーションを次回シャットダウンして再起動すると、ワークステーション構成の更新がワークステーションによって自動的に取得されます。runningTimeout を設定するか、デフォルトを使用すると、これらのワークステーションを確実にシャットダウンできます。
  • 組織でカスタム イメージを使用している場合は、イメージを定期的に再ビルドしてください。次のセクションで説明するように、安全なイメージ パイプラインを作成することをおすすめします。

カスタム イメージ用の安全なイメージ パイプラインを作成する

カスタム イメージに追加されたカスタム パッケージと依存関係の保守と更新は、お客様の責任で行っていただく必要があります。

カスタム イメージを作成する場合は、次のことをおすすめします。

VPC フローログを設定する

ワークステーション クラスタを作成すると、Cloud Workstations はクラスタを特定のサブネットに関連付け、すべてのワークステーションがそのサブネットに配置されます。VPC フローログを有効にするには、そのサブネットのロギングを必ず有効にしてください。詳細については、既存のサブネットの VPC フローログを有効にするをご覧ください。