AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1059794
Accepted
Martijn Heemels
Martijn Heemels
Asked: 2021-04-09 10:16:57 +0800 CST2021-04-09 10:16:57 +0800 CST 2021-04-09 10:16:57 +0800 CST

使用 Deployment Manager 将 Workload Identity 服务帐户绑定到 GKE 服务帐户?

  • 772

我已经在我们的 GKE 集群上启用了 Workload Identity。现在我正在向 GKE 部署一个应用程序,它使用 WI 对另一个 Google 服务进行身份验证。我已经使用 Deployment Manager 创建了一个有权访问 Google 服务的 IAM 服务帐户。我还使用自己的 GKE 服务帐户将应用程序部署到集群。

最后,我需要将两种不同类型的服务帐户绑定在一起。这允许 Kubernetes 服务帐户充当 Google 服务帐户,从而允许 pod 访问云服务。

该文档使用gcloudCLI 工具添加策略绑定,如下所示:

gcloud iam service-accounts add-iam-policy-binding \
  --role roles/iam.workloadIdentityUser \
  --member "serviceAccount:PROJECT_ID.svc.id.goog[K8S_NAMESPACE/KSA_NAME]" \
  GSA_NAME@PROJECT_ID.iam.gserviceaccount.com

当然,我想通过 GCP 部署管理器(infra-as-code 和所有这些)来完成,但我无法弄清楚正确的 DM 语法!?

我通常通过gcp-types/cloudresourcemanager-v1:virtual.projects.iamMemberBinding类型进行角色绑定,就像在代码示例中一样,但我不知道如何复制上述gcloud命令,也找不到任何公共示例。请问谁能帮忙?

我认为以前actions会使用它们,但由于它们已被弃用,我宁愿不将它们用于新代码。iamMemberBinding似乎是推荐的方式。

google-cloud-platform kubernetes google-kubernetes-engine deployment-manager
  • 1 1 个回答
  • 154 Views

1 个回答

  • Voted
  1. Best Answer
    Martijn Heemels
    2021-04-11T12:03:58+08:002021-04-11T12:03:58+08:00

    事实证明,看gcp-types/cloudresourcemanager-v1:virtual.projects.iamMemberBinding类型是一个红鲱鱼。相反,解决方案是使用类型的accessControl属性iam.v1.serviceAccount。非常感谢这个答案,它为我指明了正确的方向。

    总之,你的 serviceAccount 变成了这样:

    resources:
    - name: test-name-deploy
      type: iam.v1.serviceAccount
      properties:
        accountId: testing
        displayName: testing-sa
      accessControl:
        gcpIamPolicy:
          bindings:
          - role: roles/iam.workloadIdentityUser
            members:
            - "serviceAccount:PROJECT_ID.svc.id.goog[K8S_NAMESPACE/KSA_NAME]"
    
    • 1

相关问题

  • 带有 OpenVPN 的 Google Compute Engine 上的 VPN 服务器

  • 如果您失去了 Google Apps 的管理员权限,如何恢复?

  • 云有多大?[关闭]

  • 谷歌应用引擎中的 joomla

  • 无需短信即可注册 Google AppEngine?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve