dip*_*ark 5 google-cloud-platform kubernetes google-kubernetes-engine
我正在尝试将我的GKE集群配置为从同一项目中的私有GCR仓库中提取.我没有使用OAuth范围,但已将最小特权服务帐户与默认节点池关联,并为其提供了roles/storage.objectViewer权限.
但是,在尝试访问此图像时,我仍然收到以下信息:
Failed to pull image "eu.gcr.io/<project>/<image>": rpc error: code = Unknown desc = Error response from daemon: unauthorized: You don't have the needed permissions to perform this operation, and you may have invalid credentials. To authenticate your request, follow the steps in: https://cloud.google.com/container-registry/docs/advanced-authentication
我是否还需要配置imagePullSecrets或roles/storage.objectViewer权限是否足够?
此问题的根本原因是未在群集实例上设置访问(OAuth)范围,从而阻止了服务帐户按预期工作。
来自有关计算服务帐户的GCP文档:
您必须在实例上设置访问范围以授权访问。
创建虚拟机实例时,不能仅在服务帐户上设置IAM角色并忽略访问范围。服务帐户具有的访问级别由访问范围和IAM角色的组合确定,因此您必须同时配置访问范围和IAM角色,服务帐户才能正常工作。
在GCR访问私有图像时所需的最小范围,可以发现这里与这些范围的意思找到这里。然后,可以按照此处的说明为群集节点创建最低特权服务帐户。
如上所述这里的替代将是唯一的授予https://www.googleapis.com/auth/cloud-platform范围,它通过IAM角色节点服务帐户授权访问所有的云平台服务,然后限制访问群集节点。
通过如上所述配置群集节点,imagePullSecrets不需要从同一项目中的GCR中提取私有映像。
| 归档时间: |
|
| 查看次数: |
608 次 |
| 最近记录: |