【问题标题】:Remove a User from GCP project从 GCP 项目中删除用户
【发布时间】:2020-05-17 12:35:01
【问题描述】:

如何从 GCP 项目中删除用户。 我需要删除特定 GCP 项目的特定用户和服务帐户。

credentials = service_account.Credentials.from_service_account_file(
   filename=os.environ['GOOGLE_APPLICATION_CREDENTIALS'],
   scopes=['https://www.googleapis.com/auth/cloud-platform'])

我试过用这个

def modify_policy_remove_member(policy, role, member):
    """Removes a  member from a role binding."""
    binding = next(b for b in policy["bindings"] if b["role"] == role)
    if "members" in binding and member in binding["members"]:
        binding["members"].remove(member)
    print(binding)
    return policy

我尝试的另一种方法是

service.projects().serviceAccounts().disable(
        name='projects/-/serviceAccounts/' + email).execute()

我收到以下消息。

执行此操作需要权限 iam.serviceAccounts.disable 操作上

【问题讨论】:

标签: python google-cloud-platform


【解决方案1】:

要添加或更新现有用户的 IAM 政策,您至少应该拥有“resourcemanager.projects.setIamPolicy”权限。或者你应该是项目的所有者。 为确保您拥有足够的权限,请在控制台中检查您的 IAM 角色,然后运行:

'gcloud iam 角色描述角色/'

这将列出您与当前角色关联的所有权限。

【讨论】:

    【解决方案2】:

    要允许用户管理服务帐号,请授予以下角色之一:

    • 服务帐户用户 (roles/iam.serviceAccountUser):授予获取、列出或模拟服务帐户的权限。
    • 服务帐号管理员 (roles/iam.serviceAccountAdmin):包括服务帐号用户权限,还授予在服务帐号上创建、更新、删除以及设置或获取 Cloud IAM 政策的权限。

    根据问题,请注意服务帐户的disabledelete 之间存在差异。但是,所需的权限是相同的。

    对于disable 服务帐户,用户必须至少被授予服务帐户管理员 角色 (roles/iam.serviceAccountAdmin) 或 编辑者 原始角色 (@987654330 @)。见this link

    对于delete 服务帐户,用户必须至少被授予服务帐户管理员 角色 (roles/iam.serviceAccountAdmin) 或 编辑者 原始角色 (@987654333 @)。见this link

    如果您需要代码示例和所需角色详细信息,请参阅Official GCloud Creating and managing service accounts Docs

    【讨论】:

      猜你喜欢
      • 2021-01-24
      • 2018-12-02
      • 2021-10-21
      • 2017-03-04
      • 1970-01-01
      • 2021-10-19
      • 1970-01-01
      • 1970-01-01
      • 2020-11-21
      相关资源
      最近更新 更多