gcloud
명령 줄 도구를 통해 GKE에서 사용할 서비스 계정 만들기를 자동화하려고합니다. Google Cloud Console에서 사용하는 프로세스를 반영하는 것으로 보이는 흐름을 파악했지만 사용자는 적절한 액세스 권한을 얻지 못합니다.Kubernetes API 액세스를 위해 gccoud 명령 줄을 통해 serviceAccount를 부여하려면 어떻게해야합니까?
여기 순서대로 실행하고있어 명령입니다 :이 실행되면
# Environment:
# - uname=<username>
# - email=<user's email address>
# - GCLOUD_PROJECT_ID=<project identifier>
# - serviceAccount="${uname}@${GCLOUD_PROJECT_ID}.iam.gserviceaccount.com"
$ gcloud iam service-accounts \
create "${uname}" --display-name "email:${email}" --format json
$ gcloud projects \
add-iam-policy-binding "${GCLOUD_PROJECT_ID}" \
--member "serviceAccount:${serviceAccount}" \
--role=roles/container.developer --format=json
$ gcloud iam service-accounts keys \
create "${GCLOUD_PROJECT_ID}-${uname}.json" \
--iam-account="${serviceAccount}"
, 그것은 새로운 서비스 계정을 만들고 로컬 키 파일을 생성합니다. 그런 다음이 키를 사용하여 Kubernetes 클러스터에 대한 자격 증명을 얻으려고합니다.
$ gcloud config configurations create devcluster --activate
$ gcloud config set project devnet-166017
$ gcloud config set compute/zone us-central1-b
$ gcloud auth activate-service-account \
--key-file="${GCLOUD_PROJECT_ID}-${uname}.json"
$ gcloud container clusters get-credentials devcluster
ERROR: (gcloud.container.clusters.get-credentials) ResponseError: \
code=403, message=Required "container.clusters.get" permission for \
"projects/${GCLOUD_PROJECT_ID}/zones/us-central1-b/clusters/devcluster".
은 어떤 이유로 내 서비스 계정은 자격 증명을 취득하는 데 필요한 권한 중 하나 없지만, 내가 읽은 내용에 기초하고 제가 콘솔에서 관찰 한, 내가 믿는 것처럼 보인다 이 사용 권한은 roles/container.developer
역할의 일부 여야합니다.
감사합니다.
이 문제를 해결하는 방법은 무엇입니까? 나는 행운이 아닌 [this] (https://stackoverflow.com/questions/42556739/service-account-throws-an-insufficient-permission-error-even-it-has-owner-priv)을 시도했다 – mllm
일종의 : I 내 자격이 높은 사용자 (Google 클라우드의 프로젝트 '소유자')와 함께 시작하면 위 단계를 통해 필요한 것을 수행 할 수있는 액세스 권한이있는 서비스 계정을 만들 수 있음을 알았습니다. 그러나 더 세분화 된 인 타이틀먼트 집합을 가진 다른 서비스 계정을 사용하면 실패 할 것입니다. 일부 파생 된 권한이있는 것 같지만 그 권한이 정확히 무엇인지 밝히지 않았습니다. – benschumacher
실제로 나는 실패한'gcloud 컨테이너 클러스터 get-credentials devcluster' 라인을 제거하는 것으로 끝났습니다. ** 현재 ** 작동 이유는 모르겠지만 그게 내 해결책입니다. – mllm