アクセス制御の概要

Google Cloud プロジェクトを作成した時点で、プロジェクトに参加しているのは作成したそのユーザーのみです。デフォルトの場合、他のユーザーはプロジェクトやリソース(Google Kubernetes Engine のリソースなど)にはアクセスできません。Google Kubernetes Engine では、役割ベースのアクセス制御(RBAC)を使用して、プロジェクト内のリソースとクラスタ内のリソースへのアクセス権を管理するための複数のオプションをサポートしています。

こうしたメカニズムは機能的に重複していますが、さまざまな種類のリソースを対象としています。それぞれについて、以下のセクションで簡単に説明します。

  • Kubernetes RBAC は、Kubernetes に組み込まれており、Kubernetes クラスタ内のオブジェクトに詳細な権限を付与します。権限は、クラスタ内に ClusterRole オブジェクトまたは Role オブジェクトとして存在します。RoleBinding オブジェクトは、Kubernetes ユーザー、Google Cloud ユーザー、Google Cloud サービス アカウント、Google グループ(ベータ版)に役割を付与します。

    主に GKE を使用していて、クラスタ内のすべてのオブジェクトとオペレーションに対してきめ細かいアクセス許可が必要な場合は、Kubernetes RBAC が最善の選択です。

  • Cloud IAM は、クラスタを含む Google Cloud リソース、クラスタ内のオブジェクトのタイプを管理します。権限は、Google Cloud、G Suite、Cloud Identity 内に存在する Cloud IAM メンバーに割り当てられます。

    Cloud IAM 内の特定の Kubernetes オブジェクトに権限を付与するメカニズムはありません。たとえば、CustomResourceDefinition(CRD)を作成するユーザー権限を付与することはできますが、特定の CustomResourceDefinition を 1 つのみの作成や、プロジェクト内の特定の名前空間や特定のクラスタに対してのみ作成できるようにする限定のユーザー権限は付与できません。役割がフォルダレベルで適用される場合、Cloud IAM 役割はプロジェクト内のすべてのクラスタ、またはすべての子プロジェクト内の全クラスタに対して権限を付与します。

    複数の Google Cloud コンポーネントを使用しているときに、Kubernetes 固有の詳細な権限を管理する必要がない場合は、Cloud IAM が適しています。

Kubernetes RBAC

Kubernetes には RBAC のサポートが組み込まれているため、Kubernetes クラスタ内できめ細かい役割を作成できます。役割では、特定の Kubernetes オブジェクトや Kubernetes オブジェクト タイプにスコープを設定し、そのオブジェクトに関連して役割が付与するアクション(動詞)を定義できます。RoleBinding は Kubernetes オブジェクトでもあり、役割をユーザーに付与します。GKE では、ユーザーは以下のいずれかになります。

  • Google Cloud ユーザー
  • Google Cloud サービス アカウント
  • Kubernetes サービス アカウント
  • G Suite ユーザー
  • G Suite Google グループ(ベータ版)

詳細については、役割ベースのアクセス制御をご覧ください。

Cloud IAM

Cloud IAM では、役割を定義して、メンバーに割り当てることができます。役割は権限の集合体であり、役割をメンバーに割り当てることで、1 つ以上の Google Cloud リソースへのアクセス権を制御できます。役割は大きく 3 つのカテゴリに分類されます。

メンバーは以下のいずれかです。

  • Google アカウント
  • サービス アカウント
  • Google グループ
  • G Suite ドメイン
  • Cloud Identity ドメイン

Cloud IAM ポリシーは、一連の権限を 1 つ以上の Google Cloud メンバーに割り当てます。

また、Cloud IAM はサービス アカウントの作成および構成にも使用できます。このアカウントは、ユーザーに代わってタスクを実行できる、プロジェクトに関連付けられた Google Cloud アカウントです。サービス アカウントには、人間のユーザーと同じように役割と権限が割り当てられます。

サービス アカウントは他の機能も提供します。詳しくは、Cloud IAM ポリシーの作成をご覧ください。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

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

Kubernetes Engine のドキュメント