Google cloud storage 地面军事系统从GKE吊舱内部进行写访问
我无法从GKE吊舱中获得对GCS存储桶的写访问权限 我有一个GKE吊舱在运行。我没有更改有关服务帐户的任何k8s配置。我让docker exec进入pod并安装了gcloud/gsutilGoogle cloud storage 地面军事系统从GKE吊舱内部进行写访问,google-cloud-storage,google-kubernetes-engine,Google Cloud Storage,Google Kubernetes Engine,我无法从GKE吊舱中获得对GCS存储桶的写访问权限 我有一个GKE吊舱在运行。我没有更改有关服务帐户的任何k8s配置。我让docker exec进入pod并安装了gcloud/gsutilgcloud auth list显示1234-compute@developer.gserviceaccount.com进入在GCS中,我添加了与存储管理员、存储遗留存储桶所有者、存储对象创建者相同的帐户(即,我刚刚尝试了一些东西)。我能够运行gsutil ls gs://bucket。但是,当运行gsutil
gcloud auth list
显示1234-compute@developer.gserviceaccount.com进入在GCS中,我添加了与存储管理员、存储遗留存储桶所有者、存储对象创建者相同的帐户(即,我刚刚尝试了一些东西)。我能够运行gsutil ls gs://bucket
。但是,当运行gsutil cp文件gs://bucket
时,它会打印:
AccessDeniedException: 403 Insufficient OAuth2 scope to perform this operation.
Acceptable scopes: https://www.googleapis.com/auth/cloud-platform
gsutil acl get gs://bucket
打印:
AccessDeniedException: Access denied. Please ensure you have OWNER permission on gs://bucket
我尝试过的其他事情是添加allUsers和allAuthenticatedUsers作为bucket的创建者和所有者,没有任何变化。我可以从我的dev机器上很好地写入bucket
当我从另一台机器上运行gsutil acl get gs://bucket
时,它会打印与pod内gcloud auth list
输出相同的所有者地址
要允许pod写入存储桶,我需要什么特殊的方法?GKE集群是使用默认权限创建的,它只对GCS具有读取范围。解决方案:
GOOGLE\u应用程序\u凭据
,如中所述您需要为集群设置权限(如果是地形,则为特定节点设置更好的权限):
遇到同样的问题,我必须使用自定义安全配置重新创建一个节点池,以便获得访问权限。 此外,在我的pod中,我安装了秘密提供的SA(默认-token-XXXXX) 然后,一旦gcloud安装在pod中(通过docker文件),它就会像一个符咒一样工作。 关键是节点池配置和安装SA
oauth_scopes = [
"https://www.googleapis.com/auth/devstorage.read_write", // 'ere we go!
"https://www.googleapis.com/auth/logging.write",
"https://www.googleapis.com/auth/monitoring",
"https://www.googleapis.com/auth/service.management.readonly",
"https://www.googleapis.com/auth/servicecontrol",
"https://www.googleapis.com/auth/trace.append",
"https://www.googleapis.com/auth/compute",
]