使用特定 SA 通过 Cloud Build 部署 Dataflow 管道

2024-01-02

我竭尽全力尝试使用特定 SA(而不是默认的 Cloud Build SA)从 Cloud Build 部署数据流管道,但到目前为止尚未成功。

我遵循了这个过程 -https://cloud.google.com/build/docs/secure-builds/configure-user-specified-service-accounts https://cloud.google.com/build/docs/securing-builds/configure-user-specified-service-accounts

该密钥被授予以下角色(比文档推荐的角色还要多)

  • 数据流管理
  • 数据流工作者
  • 日志编写器
  • 服务帐户用户
  • 存储管理员
  • 存储对象管理

命令行部署

os.system("python3.7 /workspace/runner.py \
    --runner=DataflowRunner \
    --job_name=test \
    --project=XXXXXX \
    --temp_location=gs://staging/tmp \
    --region=europe-west1 \
    --environment=dev \
    --max_num_workers=20 \
    --autoscaling_algorithm=THROUGHPUT_BASED \
    --setup_file=/workspace/setup.py \
    --servic[email protected] /cdn-cgi/l/email-protection \
    ")

Error:

apitools.base.py.exceptions.HttpForbiddenError: HttpError accessing <https://dataflow.googleapis.com/v1b3/projects/my-prj/locations/europe-west1/jobs?alt=json>: response: <{'vary': 'Origin, X-Origin, Referer', 'content-type': 'application/json; charset=UTF-8', 'date': 'Tue, 18 Apr 2023 14:03:30 GMT', 'server': 'ESF', 'cache-control': 'private', 'x-xss-protection': '0', 'x-frame-options': 'SAMEORIGIN', 'x-content-type-options': 'nosniff', 'transfer-encoding': 'chunked', 'status': '403', 'content-length': '812', '-content-encoding': 'gzip'}>, content <{
  "error": {
    "code": 403,
    "message": "(3b12042024f17c98): Current user cannot act as service account [email protected] /cdn-cgi/l/email-protection. Please grant your user account one of [Owner, Editor, Service Account Actor] roles, or any other role that includes the iam.serviceAccounts.actAs permission. See https://cloud.google.com/iam/docs/service-accounts-actas for additional details. Causes: (3b12042024f17239): Current user cannot act as service account [email protected] /cdn-cgi/l/email-protection. Please grant your user account one of [Owner, Editor, Service Account Actor] roles, or any other role that includes the iam.serviceAccounts.actAs permission. See https://cloud.google.com/iam/docs/service-accounts-actas for additional details.",
    "status": "PERMISSION_DENIED"
  }
}

这是我单击链接时 Dataflow 的输出消息HttpError accessing <https://dataflow.googleapis.com/v1b3/projects/my-prj/locations/europe-west1/jobs?alt=json>

{
  "error": {
    "code": 401,
    "message": "Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
    "status": "UNAUTHENTICATED",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.ErrorInfo",
        "reason": "CREDENTIALS_MISSING",
        "domain": "googleapis.com",
        "metadata": {
          "service": "dataflow.googleapis.com",
          "method": "google.dataflow.v1beta3.JobsV1Beta3.ListJobs"
        }
      }
    ]
  }
}

默认情况下,如果您未在启动的命令行中设置服务帐户Dataflow工作,默认Compute使用服务帐户。

在启动的命令行中Dataflow作业,您可以设置用户指定的服务帐户 https://cloud.google.com/dataflow/docs/concepts/security-and-permissions :

Java 和 Maven 的示例:

mvn compile exec:java \
  -Dexec.mainClass=com.package.MainClass \
  -Dexec.args=" \
  --project=project \
  --runner=DataflowRunner \
  --serviceAccount=your-sa-email
  "
  ....

使用 Python 的示例:

python -m folder.main \
    --project=project \
    --runner=DataflowRunner \
    --region=europe-west1 \
    --setup_file=./setup.py \
    --temp_location=gs://mazlum_dev/dataflow/temp \
    --service_account_email=your-sa-email
  ....

该用户指定的服务帐户需要具有启动作业所需的角色以及允许充当以下角色的角色:

  • 数据流开发人员
  • 数据流工作者
  • 服务帐户令牌创建者
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用特定 SA 通过 Cloud Build 部署 Dataflow 管道 的相关文章

  • 如何使用 JRE 部署 JavaFX 11 桌面应用程序

    我有一个 JavaFX JDK 8 桌面业务应用程序 它使用 Java Web Start 进行部署 用户安装了 Java 8 只需访问 URL 我的 AWS Linux 服务器上的公共 URL 即可下载 启动应用程序 使用 Web Sta
  • 如何使用 Ioc Unity 注入依赖属性

    我有以下课程 public interface IServiceA string MethodA1 public interface IServiceB string MethodB1 public class ServiceA IServ
  • python pandas如何在多个条件下过滤字符串

    我有以下数据框 import pandas as pd data 5Star FiveStar five star fiv estar data pd DataFrame data columns columnName 当我尝试用一 种条件
  • 连接运算符 + 或 ,

    var1 abc var2 xyz print literal var1 var2 literalabcxyz print literal var1 var2 literal abc xyz 除了带有 的自动空格之外 两者有什么区别 哪个通
  • 处理延迟对象数组

    自从使用 Deferred我已经遇到过这种情况几次 我有一个值列表 每个值都以某种方式生成一个延迟对象 并且我想在所有延迟对象都解析后执行回调 一个更具体的例子是这样的 var urls foo com bar com baz com qu
  • 如何将域从 Godaddy 移动到 AWS Route 53

    由于 Godaddy 宕机了几个小时 我和我的客户都非常沮丧 希望将所有内容都更改为 AWS 到目前为止一切都已完成 只有域 blablabla com 丢失 我在尝试从 godaddy 迁移到 Route 53 时遇到了困难 我是否必须从
  • '>&0' 有用途吗(重定向到标准输入)?

    在 bash 中你可以这样做 echo test gt 1 重定向到标准输出 尽管它已经到那里了 echo test gt 2 重定向到标准错误 echo test gt 0 重定向到标准输入 当我做最后一个时 我的终端仍然打印test就像
  • Chrome 中的 addEventListener

    我正在关注 Lynda com 上有关新 DOM 事件模型的教程 这是我正在使用的代码 function addEventHandler oNode sEvt fFunc bCapture if typeof window event un
  • 在私有 guice 模块中公开 Map

    我在 guice 中有一个 PrivateModule 我想从该模块公开一个 Map public class TestInjectionModule extends PrivateModule expose Map class annoa
  • 将 pandas 数据框中的多列更改为日期时间

    我有一个 13 列和 55 000 行的数据框 我正在尝试将其中 5 行转换为日期时间 现在它们返回类型 对象 我需要转换这些数据以进行机器学习 我知道如果我这样做 data birth date pd to datetime data b
  • 如何在 CruiseControl.net 中配置 svn 任务来检测 subversion 外部更改

    我在 subversion 中有一个 net 项目 它持续集成 Cruisecontrol net 我使用Svn源代码控制CCNET任务 net 项目库目录 其中包含配置为 subversion 外部的一组可重用组件 ProjectA li
  • Spark DataFrame 不尊重架构并将所有内容视为字符串

    我面临着一个多年来一直无法克服的问题 我使用的是 Spark 1 4 和 Scala 2 10 我现在无法升级 大型分布式基础设施 我有一个包含几百列的文件 其中只有 2 列是字符串 其余都是长列 我想将此数据转换为标签 特征数据框 我已经
  • Tensorflow ctc_loss_calculator:找不到有效路径

    当运行我的神经网络 双向 LSTM 进行音频识别时 我使用连接主义时间分类 CTC 但在某些时候 训练网络时我几乎每批都会收到来自 Tensorflow 的警告 W tensorflow core util ctc ctc loss cal
  • 非键属性查询

    看起来 dynamodb 的query方法必须包含分区键作为过滤器的一部分 如果不知道分区键如何进行查询 例如 您有一个具有属性的用户表userid设置为分区键 现在我们想通过电话号码查找用户 是否可以在没有分区键的情况下执行查询 使用sc
  • PyQt QFileDialog exec_ 很慢

    我正在使用自定义QFileDialog因为我想选择多个目录 但是exec 功能非常慢 我不明白为什么 我正在使用最新版本的 PyQt 代码片段 from PyQt4 import QtGui QtCore QtNetwork uic cla
  • Android Nougat 无法显示某些矢量文件 (Resources$NotFoundException)

    我一直在开发一个包含许多矢量图形的应用程序 最近我开始在 Nougat 上测试它 发现它立即崩溃了 logcat 在加载矢量时显示 Resources NotFoundException 这让人想起带有矢量图形的 Android 早期版本中
  • 调试客户端时使用 Chrome/Firefox

    我正在使用带有 getUserMedia 的相机 但出现了一些需要修复的错误 问题是 Visual Studio 只允许我使用 IE 调试 JavaScript 我的意思是命中断点 而 IE 不支持 getUserMedia 如果您想在 I
  • 如何限制mySQL中的搜索和替换字符串

    我用它来搜索和替换 mySQL 中的字符串 UPDATE products SET prodname REPLACE prodname S S 这些产品包含诸如 TYLENOL TABS 100 S 之类的字符串 我想将其转换为 TYLEN
  • 是否可以使用具有余弦相似度的 KDTree?

    看来我不能使用这个相似度度量sklearn例如 KDTree 但我需要 因为我正在使用测量单词向量相似度 对于这种情况 快速鲁棒定制算法是什么 我知道关于Local Sensitivity Hashing 但它应该经过大量调整和测试才能找到
  • 如何对“2-1”这样的字符串进行数学计算以产生“1”?

    我只是想知道 PHP 是否有一个函数可以接受像这样的字符串2 1并产生它的算术结果 或者我必须手动执行此操作explode 获取算术运算符左侧和右侧的值 我知道这个问题很老了 但我昨晚在寻找不太相关的东西时遇到了它 而且这里的每个答案都很糟

随机推荐

  • 在标头中声明并初始化静态 int

    如果我的头文件中有以下内容 Foo h Foo public static const int BAR 1234 我是否还需要在 cpp 中定义变量 例如 Foo cpp const int Foo BAR 我们遇到一个问题 在标头中初始化
  • 最新的 Jackrabbit 快照可以在 Lucene 3 上正常工作吗?

    我正在开发一个基于 Java Web 的应用程序 该应用程序同时使用 Jackrabbit 和 Hibernate Search 我面临的问题是 Jackrabbit 严重依赖 Lucene 2 但搜索需要 Lucene 3 才能工作 我设
  • 搁置真的很慢并且占用大量内存还是我做错了什么?

    我正在尝试编写一个程序 该程序使用排序字母的搁置数据库作为键 以及可以从它们创建的单词列表作为值 例如 db mnoo moon mono 所以我编写了一个函数 它接受一个文件名并将其加载到架子中 第一部分将文件转换为与搁置具有相同布局的字
  • R中如何将数字转换为日期? [复制]

    这个问题在这里已经有答案了 我有以下数据框 id lt c 1 2 3 4 date lt c 19970807 19970902 19971010 19970715 df lt data frame id date 其中日期列中的值的类型
  • JavaScript 如何检查手机/平板电脑的用户代理

    我目前正在为客户网站开发一些 JS 工作 该网站在桌面和平板电脑平台上具有不同的功能 考虑 if navigator userAgent match Android i navigator userAgent match webOS i n
  • 使用 swift Xcode 6 默认选项卡栏项目颜色

    环境 Xcode 6 测试版 4 斯威夫特语言 iOS 选项卡式应用程序 默认 xCode 项目 如何将选项卡的默认灰色更改为其他颜色 最好是全球范围内 就我的研究而言 我需要以某种方式将每个选项卡的图像渲染模式更改为原始渲染模式 但我不知
  • Apache 重写 URL 但不重写某些文件夹

    我正在使用 Apache 将我的 URL 重写为干净的 URL RewriteRule index php 目前 这也会重写目录 这正是我想要的 因为我希望所有内容都通过我的 router index php 文件运行 然而 我想做的是拥有
  • SQL Server XML 存在()

    我在使用时遇到一些问题exist and value SQL Server 2008 中的方法 我的 XML 看起来像这样
  • 使用 stringformat 时 WPF 文本框绑定不起作用

    这是我的问题 我有一个文本框 它使用文本框预览并对输入的文本进行一些验证 文本框绑定到 double 属性 最初 当用户输入带有小数的数字时 它会崩溃 因为当数字为 1 时 每次击键后都会更新 它会自动更改为 1 删除小数 并且当在小数点后
  • 批量插入具有地理空间数据类型的表时出现“指定类型未注册”错误

    我正在尝试使用SqlBulkCopy类来自System Data程序集 4 6 1 批量插入具有地理空间数据类型的表 使用的代码大致如下 改编自https github com MikaelEliasson EntityFramework
  • 在邻近区域组建实力相似的团队

    Idea 令人遗憾的是 如此多的伟大国家 例如印度 和球员 例如莫萨拉赫 可能永远不会参加国际足联 足球 足球 世界杯 同样的论点也适用于由少数统治者主导的其他体育赛事 队 例如国际板球和篮球锦标赛 尝试创建一个更加平衡的赛事 同时仍然保留
  • new[] 是否调用 C++ 中的默认构造函数?

    当我使用 new 创建类数组时 int count 10 A arr new A count 我看到它调用了默认构造函数A count次 因此arr has count已初始化类型的对象A 但是如果我使用同样的东西来构造一个 int 数组
  • Java 通过 Socket 传输属性

    首先 这是一个家庭作业问题 话虽如此 我被困住了 谷歌搜索 java Properties over Sockets 会得到很多不相关的东西 我正在尝试通过套接字传输 Properties 对象 API 说它可以通过 Stream 或 Wr
  • 将json字符串转换为java对象?

    我一直在寻找与将 JSON 字符串转换为 Java 对象相关的示例 但没有找到任何好的示例 我发现的那个非常基本 并且没有真正处理复杂的 JSON 字符串 我正在制作一个应用程序 使用谷歌翻译 API 将字符串从英语翻译成不同的语言 Goo
  • 带过滤器 Android 的自定义列表视图适配器

    请尝试在我的列表视图上实现过滤器 但每当文本发生变化时 列表就会消失 请帮忙 这是我的代码 适配器类 package com talagbe schymn import java util ArrayList import android
  • 从 Oracle 的 RAW(16) 转换为 .NET 的 GUID

    我在手动调试 NET 应用程序时遇到困难 其中 Guid 值与 NET 和 Oracle 不同 Where C reads 17D89D326C2142D69B989F5201288DBF Oracle reads 329DD817216C
  • 将 Windows SID 存储在数据库中以供查找

    我有一个 ASP NET MVC 应用程序 我需要允许客户根据其环境配置 MembershipProviders 但仍然能够将该 MembershipUser 映射到我们数据库中的具体用户模型 Membership GetUser 将使我能
  • 将 Java 套接字配置为在断开连接时快速失败?

    我的服务器上有一个监听端口 我使用 Java 类连接到该端口Socket接口 即 Socket mySocket new Socket host port 然后我抓起一个OutputStream 用一个装饰PrintWriter在自动刷新模
  • 具有滚动背景的 Recyclerview

    我正在尝试创建一个具有滚动背景的 RecyclerView 如下所示 这个想法是 当我向上 向下滚动视图保持器时 背景 浅绿色 图像也应该同步向上 向下移动 关于如何实现这一目标有任何线索吗 这是我的基本 RecyclerView 配置
  • 使用特定 SA 通过 Cloud Build 部署 Dataflow 管道

    我竭尽全力尝试使用特定 SA 而不是默认的 Cloud Build SA 从 Cloud Build 部署数据流管道 但到目前为止尚未成功 我遵循了这个过程 https cloud google com build docs secure