我正在设置一个服务帐户以从 GKE 访问 CloudSQL DB。我已经创建了 GSA 和 KSA,并执行了将两者关联的命令 ( gcloud iam service-accounts add-iam-policy-binding...
)。如何检查绑定以确保调用成功?我原以为会有一个命令gcloud iam service-accounts list-iam-policy-binding ...
来显示状态。
我想使用部署管理器以编程方式创建云存储桶,但部署失败并出现以下错误:
ERROR: (gcloud.deployment-manager.deployments.create) Error in Operation [operation-1626165906845-5c6fd413930ca-1a833b6c-81671664]: errors:
- code: RESOURCE_ERROR
location: /deployments/example-config/resources/storage-bucket
message: '{"ResourceType":"storage.v1.bucket","ResourceErrorCode":"403","ResourceErrorMessage":{"code":403,"errors":[{"domain":"global","message":"[email protected]
does not have storage.buckets.get access to the Google Cloud Storage bucket.","reason":"forbidden"}],"message":"[email protected]
does not have storage.buckets.get access to the Google Cloud Storage bucket.","statusMessage":"Forbidden","requestPath":"https://storage.googleapis.com/storage/v1/b/storage-bucket","httpMethod":"GET","suggestion":"Consider
granting permissions to [email protected]"}}'
但是,我已添加roles/storage-admin
到错误中提到的帐户,并根据策略疑难解答授予storage.buckets.get
API 调用访问权限:
这是yaml
我使用的文件:
imports:
- path: template.jinja
resources:
- name: template
type: template.jinja
properties:
storage:
bucket: qa-bucket-68586
这是jinja
模板:
resources:
- name: storage-bucket
type: storage.v1.bucket
properties:
kind: storage#bucket
name: {{ properties["storage"]["bucket"] }}
location: EU
projectNumber: {{ env["project_number"] }}
storageClass: STANDARD
我不明白为什么 IAM 的使用如此难以理解。例如,我正在尝试为 VM 实例创建计划。当我将实例添加到计划时,我得到:
Compute Engine System service account [email protected]
needs to have [compute.instances.start,compute.instances.stop] permissions applied in order to perform this operation
我在 IAM 中找到了该帐户,但我不知道这些东西属于哪个角色。我应该添加哪个角色来实现这一目标。
如果我尝试gcloud
我得到错误:
gcloud projects add-iam-policy-binding general-123456 \
--member=user:[email protected] --role=roles/compute.instances.start
ERROR: (gcloud.projects.add-iam-policy-binding) User [xxxxxx] does not have permission to access projects instance [general-123456:getIamPolicy] (or it may not exist): The caller does not have permission
我是帐户和所有项目的所有者。
我该怎么办?
一般来说,当他们表达喜欢someth.the.other.etc
或someThingsNotRight
-如何识别正确的角色名称时,处理 GCP 权限的程序是什么?
有没有办法使用 列出与 Google Cloud Platform IAM 中的(自定义)角色相关的权限gcloud
?我可以找到如何列出角色,但不能找到与给定角色关联的权限。
我正在尝试使用 以下步骤安装velero
在GKE Cluster
GCP Compute Engine Host
https://github.com/vmware-tanzu/velero-plugin-for-gcp
我正在使用以下命令velero
从VM
主机安装
velero install --provider gcp --plugins velero/velero-plugin-for-gcp:v1.1.0 --bucket ${VELEROBUCKET} --secret-file ./credentials-velero
但它失败并出现以下错误
Error installing Velero. Use `kubectl logs deploy/velero -n velero` to check the deploy logs:
Error creating resource ClusterRoleBinding/velero: clusterrolebindings.rbac.authorization.k8s.io is forbidden:
User "116865650821658545991" cannot create resource "clusterrolebindings" in API group "rbac.authorization.k8s.io" at the cluster scope: requires one of ["container.clusterRoleBindings.create"] permission(s)
为了解决这个错误,我正在尝试这个
kubectl create clusterrolebinding cluster-admin-binding --clusterrole cluster-admin --user velero
但这也因以下错误而失败
error: failed to create clusterrolebinding: clusterrolebindings.rbac.authorization.k8s.io is forbidden: User "116865650821658545991" cannot create resource "clusterrolebindings" in API group "rbac.authorization.k8s.io" at the cluster scope: requires one of ["container.clusterRoleBindings.create"] permission(s).
上述场景的两个查询
clusterrolebinding
创建资源来解决我在安装时看到的错误是否正确velero
?如何识别第二个错误中看到的“116865650821658545991”的相应用户以及需要分配什么角色来创建
clusterrolebinding
资源?
谷歌云 IAM 角色设置是否有任何方法可以访问/查看项目的某些 VM 实例而不是全部?
理想情况下,只对用户创建的那些,而不是对其余的。据我尝试,角色适用于所有实例。
基于此文档:https ://cloud.google.com/iam/docs/custom-roles-permissions-support
有几个前缀为 : 的权限AccessContextManager
。但是在我运行 API:QueryTestablePermission 之后,它不包括那些列表。此外,当我创建具有权限的新 IAM 角色时:(AccessContextManager.*
假设它是 : accesscontextmanager.accessLevels.create
),它会返回表示accesscontextmanager.accessLevels.create
不是有效权限的异常。
有人知道我错过了什么吗?
我有一个具有该Compute OS Admin Login
角色的用户,但是当我使用 登录时ssh
,该用户不是sudoer
. 我试图重新启动实例,但仍然相同。我enable_oslogin:TRUE
在实例级别和项目级别都尝试过。
还有什么我应该尝试的吗?