이 주제에서는 GKE on AWS 관리 서비스와 사용자 클러스터의 사용자 인증 정보를 순환하는 방법을 설명합니다. GKE on AWS의 보안 기능에 대한 자세한 내용은 보안을 참조하세요.
시작하기 전에
이 페이지의 단계를 완료하려면 GKE on AWS 구성이 있는 디렉터리에 대한 액세스 권한이 있어야 합니다.
관리 서비스 인증서
이 섹션에서는 관리 서비스 인증서를 순환하는 방법을 설명합니다.
관리 인증 기관
이 섹션에서는 GKE on AWS 구성 요소의 인증 기관(CA) 서명 인증서를 순환하는 방법을 설명합니다.
Management API 서버 루트 CA
API 서버 루트 CA를 순환하려면 다음 단계를 수행합니다.
- GKE on AWS 구성이 있는 디렉터리로 변경합니다.
이 디렉터리는 관리 서비스를 설치할 때 생성됩니다.
cd anthos-aws
- 텍스트 편집기에서
anthos-gke.status.yaml
을 엽니다. certificateAuthority
키에서 모든 값을 삭제합니다. 여기에는encryptedPrivateKey.kmsKeyARN
,encryptedPrivateKey.value
,encryptedPrivateKey.certificate
가 포함됩니다.anthos-gke aws management init
를 실행하여anthos-gke.status.yaml
파일을 업데이트합니다.anthos-gke aws management init
anthos-gke aws management apply
를 실행하여 관리 서비스를 업데이트합니다.anthos-gke aws management apply
anthos-aws
디렉터리에서anthos-gke
를 사용하여 컨텍스트를 관리 서비스로 전환합니다.cd anthos-aws anthos-gke aws management get-credentials
기타 관리 CA
이 섹션에서는 다음 CA를 모두 순환하는 방법을 설명합니다.
- 인증 웹훅 CA
- Etcd CA
- 서비스 계정 서명자 CA
다음 방법 중 하나를 사용하여 이러한 CA를 순환할 수 있습니다.
anthos-gke.status.yaml
에서certificateAuthority
섹션을 삭제합니다.- GKE on AWS 구성이 있는 디렉터리로 변경합니다.
이 디렉터리는 관리 서비스를 설치할 때 생성됩니다.
cd anthos-aws
- 텍스트 편집기에서
anthos-gke.status.yaml
을 엽니다. certificateAuthority
키에서 모든 값을 삭제합니다. 여기에는encryptedPrivateKey.kmsKeyARN
,encryptedPrivateKey.value
,encryptedPrivateKey.certificate
가 포함됩니다.anthos-gke aws management init
를 실행하여anthos-gke.status.yaml
파일을 업데이트합니다.anthos-gke aws management init
anthos-gke aws management apply
를 실행하여 관리 서비스를 업데이트합니다.anthos-gke aws management apply
- GKE on AWS 구성이 있는 디렉터리로 변경합니다.
이 디렉터리는 관리 서비스를 설치할 때 생성됩니다.
새 GKE on AWS 버전을 사용할 수 있으면 GKE on AWS 관리 서비스를 업그레이드합니다.
관리 서비스 EC2 인스턴스를 다시 만듭니다.
anthos-aws
디렉터리에서terraform
을 사용하여 관리 서비스 ID를 가져옵니다.cd anthos-aws terraform output cluster_id
출력에 관리 서비스 ID가 포함됩니다. 다음 예시에서 ID는gke-12345abc
입니다.terraform output cluster_id
gke-12345abc- AWS EC2 콘솔을 엽니다.
- 인스턴스를 클릭합니다.
cluster-id-management-0
이라는 인스턴스를 찾습니다.- 작업 -> 인스턴스 상태 -> 종료를 선택하여 인스턴스를 삭제합니다. EC2는 동일한 EBS 볼륨을 사용하는 새 인스턴스를 자동으로 만듭니다.
관리 TLS 클라이언트/서버 키 및 인증서
관리 서비스의 TLS 클라이언트/서버 키와 인증서를 순환하려면 관리 서비스 인스턴스를 다시 만듭니다. 인스턴스를 다시 만들려면 다음 단계를 수행합니다.
anthos-aws
디렉터리에서terraform
을 사용하여 관리 서비스 ID를 가져옵니다.cd anthos-aws terraform output cluster_id
출력에 관리 서비스 ID가 포함됩니다. 다음 예시에서 ID는gke-12345abc
입니다.terraform output cluster_id
gke-12345abc- AWS EC2 콘솔을 엽니다.
- 인스턴스를 클릭합니다.
cluster-id-management-0
이라는 인스턴스를 찾습니다.- 작업 -> 인스턴스 상태 -> 종료를 선택하여 인스턴스를 삭제합니다. EC2는 동일한 EBS 볼륨을 사용하는 새 인스턴스를 자동으로 만듭니다.
Google Cloud 서비스 계정
관리 서비스 서비스 계정
관리 서비스의 Google Cloud 서비스 계정을 순환하려면 다음 단계를 수행합니다.
- 기본 요건의 단계를 수행하여 새 서비스 계정을 만들고 서비스 계정 키를 다운로드합니다.
- GKE on AWS 구성이 있는 디렉터리로 변경합니다.
이 디렉터리는 관리 서비스를 설치할 때 생성됩니다.
cd anthos-aws
키를 다른 경로로 다운로드한 경우 텍스트 편집기에서
anthos-gke.yaml
파일을 엽니다..spec.googleCloud.serviceAccountKeys.managementService
,.status.googleCloud.serviceAccountKeys.connectAgent
,.spec.googleCloud.serviceAccountKeys.node
의 값을 새 경로로 변경합니다.apiVersion: multicloud.cluster.gke.io/v1 kind: AWSManagementService metadata: name: management spec: googleCloud: serviceAccountKeys: managementService: MANAGEMENT_KEY_PATH connectAgent: CONNECT_KEY_PATH node: NODE_KEY_PATH ...
anthos-gke aws management init
를 실행하여anthos-gke.status.yaml
파일을 업데이트합니다.anthos-gke aws management init
anthos-gke aws management apply
를 실행하여 관리 서비스를 업데이트합니다.anthos-gke aws management apply
사용자 클러스터 서비스 계정
AWSCluster 및 AWSNodePool에서 이러한 서비스 계정을 적용하려면 업그레이드하거나 삭제한 후 다시 만듭니다.
사용자 클러스터 인증서
이 섹션에서는 사용자 클러스터 인증서를 순환하는 방법을 설명합니다.
사용자 클러스터 CA 및 SSH 키
클러스터를 만들 때 대부분의 사용자 클러스터 CA가 생성됩니다.
사용자 클러스터를 삭제하면 GKE on AWS가 다음 인증서를 순환합니다.
- API 서버 루트 CA
- API 프런트 프록시 CA
- etcd CA
- Kubernetes 서비스 계정 서명자 CA
- 노드 SSH 키 쌍에 대한 제어 영역
사용자 클러스터 인증 웹훅 CA
사용자 클러스터 인증 웹훅 CA를 순환하려면 anthos-gke.status.yaml
파일을 수정하고 변경사항을 적용합니다.
- GKE on AWS 구성이 있는 디렉터리로 변경합니다.
이 디렉터리는 관리 서비스를 설치할 때 생성됩니다.
cd anthos-aws
- 텍스트 편집기에서
anthos-gke.status.yaml
을 엽니다. certificateAuthority
키에서 모든 값을 삭제합니다. 여기에는encryptedPrivateKey.kmsKeyARN
,encryptedPrivateKey.value
,encryptedPrivateKey.certificate
가 포함됩니다.anthos-gke aws management init
를 실행하여anthos-gke.status.yaml
파일을 업데이트합니다.anthos-gke aws management init
anthos-gke aws management apply
를 실행하여 관리 서비스를 업데이트합니다.anthos-gke aws management apply
사용자 클러스터 TLS 키 쌍 및 인증서
GKE on AWS는 인스턴스를 만들 때 TLS 키 쌍과 인증서를 생성합니다. 이러한 쌍을 순환하려면 제어 영역과 노드 풀에 다음 단계를 수행하여 인스턴스를 다시 만듭니다.
제어 영역
anthos-aws
디렉터리에서anthos-gke
를 사용하여 컨텍스트를 관리 서비스로 전환합니다.cd anthos-aws anthos-gke aws management get-credentials
kubectl
을 사용하여 제어 영역의 AWS EC2 대상 그룹을 AWSCluster에서 가져옵니다.env HTTPS_PROXY=http://localhost:8118 \ kubectl get awscluster cluster-name \ -o jsonpath='{.status.targetGroupName}{"\n"}'
출력에는 제어 영역의 EC2 대상 그룹 이름이 포함됩니다. 예를 들면
gke-123456a7-controlplane
입니다.AWS EC2 콘솔을 엽니다. 왼쪽 창에서 대상 그룹을 선택합니다.
검색창을 클릭하고 대상 그룹을 찾습니다. 대상 그룹의 Name(이름)을 클릭한 후 Targets(대상)를 클릭합니다. 제어 영역 인스턴스 목록이 표시됩니다.
대상 그룹의 인스턴스마다 다음 단계를 수행합니다.
인스턴스의 인스턴스 ID를 클릭합니다. AWS EC2 인스턴스 콘솔이 표시됩니다.
인스턴스 ID를 클릭합니다.
작업 -> 인스턴스 상태 -> 종료를 선택하여 인스턴스를 삭제합니다. EC2는 동일한 EBS 볼륨을 사용하는 새 인스턴스를 자동으로 만듭니다.
대상 그룹 페이지로 돌아갑니다.
그룹의 모든 인스턴스를 종료한 후 대상 그룹 페이지로 돌아갑니다.
페이지의 등록된 대상 섹션에서 상태 열을 찾습니다. 각 인스턴스의 상태는 정상이어야 합니다. 인스턴스 중 하나가 정상이면 몇 분 정도 기다린 후 새로고침(
) 아이콘을 클릭합니다.대상 그룹의 모든 인스턴스가 정상이면 다음 단계로 진행합니다.
노드 풀
노드 풀의 TLS 인증서를 순환하려면 다음 안내를 따르세요.
anthos-aws
디렉터리에서anthos-gke
를 사용하여 컨텍스트를 관리 서비스로 전환합니다.cd anthos-aws anthos-gke aws management get-credentials
kubectl
을 사용하여 AWSNodePool에서 노드 풀의 AWS EC2 대상 그룹을 가져옵니다.env HTTPS_PROXY=http://localhost:8118 \ kubectl get awsnodepool -o jsonpath='{.items[*].status.autoScalingGroupName}{"\n"}'
출력에는 노드 풀의 EC2 대상 그룹 이름이 포함됩니다. 예를 들면
gke-123456a7-nodepool-abc123
입니다.AWS EC2 콘솔을 엽니다. 왼쪽 창에서 대상 그룹을 선택합니다.
검색창을 클릭하고 대상 그룹을 찾습니다. 대상 그룹의 Name(이름)을 클릭한 후 Targets(대상)를 클릭합니다. 제어 영역 인스턴스 목록이 표시됩니다.
대상 그룹의 인스턴스마다 다음 단계를 수행합니다.
인스턴스의 인스턴스 ID를 클릭합니다. AWS EC2 인스턴스 콘솔이 표시됩니다.
인스턴스 ID를 클릭합니다.
작업 -> 인스턴스 상태 -> 종료를 선택하여 인스턴스를 삭제합니다. EC2는 동일한 EBS 볼륨을 사용하는 새 인스턴스를 자동으로 만듭니다.
대상 그룹 페이지로 돌아갑니다.
그룹의 모든 인스턴스를 종료한 후 대상 그룹 페이지로 돌아갑니다.
페이지의 등록된 대상 섹션에서 상태 열을 찾습니다. 각 인스턴스의 상태는 정상이어야 합니다. 인스턴스 중 하나가 정상이면 몇 분 정도 기다린 후 새로고침(
) 아이콘을 클릭합니다.대상 그룹의 모든 인스턴스가 정상이면 다음 단계로 진행합니다.