このページでは、Anthos clusters on AWS が Google Cloud に対する認証とクラスタに対するユーザー認証を処理する方法について説明します。
Anthos が AWS に接続する仕組み
Anthos が AWS の IAM ロールを使用して AWS に接続する方法について詳しくは、AWS IAM ロールをご覧ください。
認証
Anthos Multi-Cloud API 認証
Anthos マルチクラウド API を使用して、クラスタとノードプールを作成、更新、削除します。他の Google Cloud APIs と同様、この API は REST、Google Cloud CLI、Google Cloud コンソールで使用できます。
詳細については、Google Cloud 認証の概要と Anthos Multi-Cloud API のリファレンス ドキュメントをご覧ください。
Kubernetes API 認証
kubectl
コマンドライン ツールは、ワークロードのデプロイやロードバランサの構成などのクラスタ オペレーションを実行するために使用できます。kubectl
ツールは、クラスタのコントロール プレーンの Kubernetes API に接続します。この API を呼び出すには、認可された認証情報で認証する必要があります。
認証情報の取得には、次のいずれかの方法を使用できます。
Google ID。ユーザーは、Google Cloud ID を使用してログインできます。この方法は、すでにユーザーが Google ID で Google Cloud にアクセスできる場合に使用します。
Anthos Identity Service: ユーザーは OpenID Connect(OIDC)または AWS IAM を使用してログインできます。
Anthos Identity Service では、Okta、Active Directory フェデレーション サービス(ADFS)、任意の OIDC 準拠の ID プロバイダなどの ID プロバイダを使用できます。
承認
Anthos クラスタには、2 つのアクセス制御方法(Anthos Multi-Cloud API と、ロールベースのアクセス制御(RBAC))があります。このセクションでは、これらの方法の違いについて説明します。
クラスタとワークロードの保護には、階層的なアプローチをおすすめします。ユーザーとワークロードに付与するアクセスレベルに対して最小権限の原則を適用できます。柔軟性とセキュリティの適切なレベルについてトレードオフを見極める必要があります。
Anthos Multi-Cloud API アクセス制御
Anthos Multi-Cloud API を使用すると、クラスタ管理者はクラスタとノードプールを作成、更新、削除できます。API の権限は Identity and Access Management(IAM)で管理します。API を使用するには、適切な権限が必要です。各オペレーションに必要な権限については、API のロールと権限をご覧ください。IAM では、ロールを定義して、プリンシパルに割り当てることができます。ロールは権限の集合体であり、ロールをプリンシパルに割り当てることで、1 つ以上の Google Cloud リソースへのアクセス権を制御できます。
組織、フォルダ、プロジェクトにクラスタやノードプールを作成すると、その組織、フォルダ、プロジェクトで適切な権限を持つユーザーがそれを変更できます。たとえば、Google Cloud プロジェクト レベルでクラスタの削除権限をユーザーに付与した場合、そのユーザーはそのプロジェクト内のすべてのクラスタを削除できます。詳細については、Google Cloud リソース階層と、IAM ポリシーの作成をご覧ください。
Kubernetes API アクセス制御
Kubernetes API を使用すると、Kubernetes オブジェクトを管理できます。Kubernetes API でアクセス制御を管理するには、ロールベースのアクセス制御(RBAC)を使用します。詳細については、GKE ドキュメントに記載されているロールベースのアクセス制御の構成をご覧ください。
管理者アクセス
gcloud CLI を使用してクラスタを作成する場合、デフォルトでは、Anthos Multi-Cloud API によってユーザー アカウントが管理者として追加され、クラスタへの完全な管理者権限を付与する適切な RBAC ポリシーが作成されます。別のユーザーを構成するには、クラスタの作成または更新時に --admin-users
フラグを渡します。--admin-users
フラグを使用する場合は、クラスタを管理できるすべてのユーザーを含める必要があります。gcloud CLI には、クラスタを作成するユーザーは含まれません。
Google Cloud コンソールを使用して管理者ユーザーを追加することもできます。詳細については、クラスタの更新をご覧ください。
クラスタのアクセス権の構成を確認するには、次のコマンドを実行します。
kubectl describe clusterrolebinding gke-multicloud-cluster-admin
管理者ユーザーがプロジェクト オーナーでない場合は、Kubernetes API サーバーにアクセスするための RBAC ポリシーに加えて、特定の IAM ロールを付与し、管理者ユーザーが Google ID を使用して認証できるようにする必要があります。クラスタへの接続方法の詳細については、クラスタに接続して認証するをご覧ください。
次のステップ
- OIDC を設定するために、Anthos Identity Service で ID を管理するを確認する。
- クラスタに接続して認証する