職掌分散

職掌分散とは、1 人の個人が、悪意のある操作を行うのに必要なすべての権限を持たないようにするという概念です。Cloud KMS での悪意のある操作とは、たとえば、ユーザーが通常アクセスできないデータに鍵を使用してアクセスし、復号するなどの操作です。

職掌分散は、セキュリティやプライバシーのインシデントやエラーを避けるために、大規模な組織で一般的に使用される業務管理です。これはベスト プラクティスと考えられています。

詳細なガイダンスについては、IAM の安全な使用に関するドキュメントをご覧ください。

個々のプロジェクトでの Cloud KMS の設定

Cloud KMS は、既存のプロジェクト(your-project など)で実行することができます。Cloud KMS の鍵で暗号化されたデータが同じプロジェクトに格納されている場合に役立ちます。

ただし、そのプロジェクトに対する owner アクセス権を持つユーザーも、そのプロジェクトの Cloud KMS の鍵を管理(および鍵を使用して暗号化オペレーションを実行)することができます。これは、鍵自体が、ユーザーが owner であるプロジェクトによって所有されているためです。

代わりに、職掌分散を可能にするために、Cloud KMS を独自のプロジェクト(your-key-project など)で実行することができます。分散要件の厳格さに応じて、次のいずれかを行うことができます。

  • 推奨your-key-project を作成する際に、owner をプロジェクト レベルではなく組織レベルで付与する組織管理者を設定します。この組織管理者は owner とは異なります。組織管理者は、鍵を管理または使用することはできませんが、IAM ポリシーを設定する権限を持ち、どのユーザーに鍵を管理および使用する権限を付与するかを制限します。組織レベルのノードを使用すると、組織内のプロジェクトに対する権限をさらに制限することができます。Cloud KMS で使用できる owner を代替する役割については、次のセクションをご覧ください。
  • (非推奨)your-key-projectowner 役割を、your-projectowner とは別のユーザーに付与します。Cloud KMS の鍵は your-project で使用されています。このユーザーは引き続きすべての鍵オペレーションにアクセスできます。

適切な IAM の役割の選択

小規模な組織では、鍵の管理に使用する役割は、ownereditorviewer の基本の役割で十分な可能性があります。職掌分散が必要な大規模な組織では、owner 役割は機密性の高いセキュリティ オペレーションに必要以上にアクセスできるため、好ましくない可能性があります。この場合は、代わりに事前定義された役割を使用することをおすすめします。

  • 暗号化が必要なアプリケーションを持つビジネス オーナーの場合: 組織レベルの組織管理者の役割を使用します。

  • Cloud KMS を管理するユーザー(組織の IT セキュリティ チームのメンバー)の場合: GCP Console から Cloud KMS を管理するには、最低でも以下の権限を持つ 2 つの役割が必要です。その 1 つは事前定義されたプロジェクト編集者(editor)の役割で、もう 1 つは Cloud KMS 管理者(cloudkms.admin)の役割と次の権限を組み合わせたカスタムの役割です。

    • serviceusage.quotas.get
    • serviceusage.services.get
    • resourcemanager.projects.get

    カスタムの役割の作成について詳しくは、カスタム役割の作成をご覧ください。ユーザーが Cloud KMS の管理に gcloud コマンドライン ツールと Cloud KMS API のみを使用する場合は、事前定義された Cloud KMS 管理者の役割で十分であり、serviceusage.quotas.getserviceusage.services.getresourcemanager.projects.get の権限は必要ありません。

  • 暗号化と復号のオペレーションに鍵を使用するユーザーまたはサービスの場合: 暗号化と復号(cloudkms.cryptoKeyEncrypterDecrypter)の役割を持つ Cloud KMS プロジェクト レベルのサービス アカウントを使用します。サービスに必要な機能がデータの書き込みだけ、またはデータの読み取りだけの場合は、さらに権限を限定して、暗号化(cloudkms.cryptoKeyEncrypter)のみまたは復号(cloudkms.cryptoKeyDecrypter)のみの役割を与えます。

Cloud KMS 用に別のプロジェクトを作成し、上記の推奨される役割を使用することで、職掌分散に関するいくつかのセキュリティ上の懸念事項に対処できます。

  • 別の Google Cloud サービスを使用するためにプロジェクト レベルで基本の役割を必要とするユーザーは、その権限を使用して Cloud KMS にアクセスすることはできません。
  • ユーザーに owner 役割は必要ありません。owner 役割により、鍵を使用する以上の過度の権限が付与されます。owner がいない場合、デフォルトでは、ユーザーは、鍵の管理と、データを直接暗号化または復号するための鍵の使用の両方を行うことはできません。データアクセス ログが有効になっていないと、鍵マテリアルの使用を目的とした owner のアクセスが監査されない可能性があります。
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud KMS ドキュメント