Connect 개요

Connect를 사용하면 모든 Kubernetes 클러스터를 Google Cloud에 연결할 수 있습니다. 이렇게 하면 통합 사용자 인터페이스, Cloud Console을 비롯하여 클러스터 및 워크로드 관리 기능에 액세스하여 클러스터와 상호작용할 수 있습니다.

네트워크가 아웃바운드 요청을 허용하도록 구성된 경우 NAT, 이그레스 프록시, 방화벽을 통과하도록 Connect Agent를 구성하여 클러스터의 Kubernetes API 서버와 Google Cloud 프로젝트 사이에 오랫동안 유지되는 암호화된 연결을 설정할 수 있습니다. 이 연결이 사용 설정되면 사용자 인증 정보를 사용하여 클러스터에 다시 로그인하고 Kubernetes 리소스에 대한 세부정보에 액세스할 수 있습니다. 이는 GKE 클러스터에서만 사용할 수 있는 UI 환경을 효과적으로 복제합니다.

연결이 설정되면 Connect Agent 소프트웨어는 리소스, 애플리케이션, 하드웨어의 세부정보를 포함하여 Google Cloud로 관리하는 데 필요한 연결된 인프라 및 워크로드의 계정 사용자 인증 정보, 기술 세부정보, 메타데이터를 교환할 수 있습니다.

이 클러스터 서비스 데이터는 Google Cloud 프로젝트 또는 계정과 연결되어 있습니다. Google은 이 데이터를 사용하여 클러스터와 Google Cloud 간의 제어 영역을 유지하고, 지원 촉진, 청구, 업데이트 제공을 포함한 개발자가 요청하는 모든 Google Cloud 서비스 및 기능을 제공하고, Connect를 통해 제공되는 Connect 및 Google Cloud 서비스의 안정성, 품질, 용량, 기능을 측정하고 개선합니다.

개발자는 Connect를 통해 전송되는 데이터를 계속 제어할 수 있습니다. Kubernetes API 서버는 Connect를 통해 모든 요청의 인증, 승인, 감사 로깅을 수행합니다. Google과 사용자는 클러스터 관리자가 승인(예: RBAC를 통해)한 후 Connect를 통해 데이터 또는 API에 액세스할 수 있습니다. 클러스터 관리자는 해당 승인을 취소할 수 있습니다.

Connect Agent

Connect는 Connect Agent라는 배포를 사용하여 클러스터와 Google Cloud 프로젝트 간의 연결을 설정하고 Kubernetes 요청을 처리합니다.

Connect IAM 역할

ID 및 액세스 관리(IAM)를 사용하면 사용자, 그룹, 서비스 계정이 Google Cloud APIs에 액세스하고 Google Cloud 제품 내에서 작업을 수행할 수 있습니다.

Connect Agent를 실행하고 Google Cloud Console 또는 Cloud SDK를 사용하여 클러스터와 상호작용하려면 특정 IAM 역할을 제공해야 합니다. 이러한 역할은 연결된 클러스터에 직접 액세스할 수 없습니다.

이러한 역할 중 일부를 통해 다음과 같은 클러스터 정보에 액세스할 수 있습니다.

  • 클러스터 이름
  • 공개 키
  • IP 주소
  • ID 공급업체
  • Kubernetes 버전
  • 클러스터 크기
  • 기타 클러스터 메타데이터

연결은 다음과 같은 IAM 역할을 사용합니다.

역할 이름 역할 칭호 설명 권한
roles/gkehub.admin 허브 관리자 허브 및 관련 리소스에 대한 전체 액세스 권한을 제공합니다.

Google Cloud 권한

  • resourcemanager.projects.get
  • resourcemanager.projects.list

허브 권한

  • gkehub.memberships.list
  • gkehub.memberships.get
  • gkehub.memberships.create
  • gkehub.memberships.update
  • gkehub.memberships.delete
  • gkehub.memberships.generateConnectManifest
  • gkehub.memberships.getIamPolicy
  • gkehub.memberships.setIamPolicy
  • gkehub.locations.list
  • gkehub.locations.get
  • gkehub.operations.list
  • gkehub.operations.get
  • gkehub.operations.cancel
  • gkehub.features.list
  • gkehub.features.get
  • gkehub.features.create
  • gkehub.features.update
  • gkehub.features.delete
  • gkehub.features.getIamPolicy
  • gkehub.features.setIamPolicy
roles/gkehub.viewer 허브 뷰어 허브 및 관련 리소스에 대한 읽기 전용 액세스 권한을 제공합니다.

Google Cloud 권한

  • resourcemanager.projects.get
  • resourcemanager.projects.list

허브 권한

  • gkehub.memberships.list
  • gkehub.memberships.get
  • gkehub.memberships.generateConnectManifest
  • gkehub.memberships.getIamPolicy
  • gkehub.locations.list
  • gkehub.locations.get
  • gkehub.operations.list
  • gkehub.operations.get
  • gkehub.features.list
  • gkehub.features.get
  • gkehub.features.getIamPolicy
roles/gkehub.connect GKE Connect 에이전트 외부 클러스터와 Google 간에 새 연결을 설정할 수 있는 권한을 제공합니다. gkehub.endpoints.connect

Connect를 사용하여 로그인

인증

Google Cloud Console을 사용하여 다음 세 가지 방법으로 등록된 클러스터에 로그인할 수 있습니다.

  1. 기본 인증 사용. 사용자 이름과 정적 비밀번호 파일을 사용합니다. 자세한 내용은 정적 비밀번호 파일을 참조하세요.
  2. Bearer 토큰 사용. Kubernetes 인증에 지정된 다양한 종류의 Bearer 토큰이 지원됩니다. 가장 쉬운 방법은 클러스터에 Kubernetes 서비스 계정(KSA)을 만들고 Bearer 토큰을 사용하여 로그인하는 것입니다.
  3. OpenID Connect(OIDC) 제공업체를 사용합니다.

승인

Google Cloud Console을 통해 인증할 때 사용하는 ID에 대해 클러스터의 API를 통해 승인 확인이 수행됩니다.

클러스터에 로그인하는 모든 계정은 최소한 클러스터에 다음 Kubernetes RBAC역할이 있어야 합니다.

이러한 역할은 클러스터에 대한 읽기 전용 액세스 권한 및 노드 세부정보를 제공합니다. 역할이 모든 리소스에 대한 액세스 권한을 제공하는 것은 아니므로 Google Cloud Console의 일부 기능을 사용하지 못할 수 있습니다. 예를 들어 이러한 역할은 Kubernetes 보안 비밀 또는 Pod 로그에 대한 액세스를 허용하지 않습니다.

계정에는 edit 또는 cluster-admin 등을 통해 다른 RBAC 권한이 부여되어 클러스터 내에서 더 많은 작업을 수행할 수 있습니다. 자세한 내용은 RBAC 문서를 참조하세요.

감사

Google Cloud Console을 통한 액세스는 클러스터의 API 서버에서 감사 로그됩니다.