标签: service-accounts

Cloud Build 无法部署到 Google App Engine - 您无权充当 @appspot.gserviceaccount.com

今天早上我做了一个 PR,它为我的暂存环境触发了 Cloud Build,但未能将结果部署到 GAE。

错误如下:

错误:(gcloud.app.deploy) PERMISSION_DENIED:您无权充当“[redacted]@appspot.gserviceaccount.com”第 4 步:-“@type”:type.googleapis.com/google.rpc。 ResourceInfo 第 4 步:描述:您无权充当此服务帐户。第 4 步:resourceName:[redacted]@appspot.gserviceaccount.com 第 4 步:resourceType:serviceAccount

当我查看https://console.cloud.google.com/cloud-build/settings/service-account Cloud build 具有以下服务帐户权限ENABLED

  • 应用引擎管理员
  • 云端知识管理系统

检查https://console.cloud.google.com/iam-admin/iam 我可以看到 cloudbuild 服务帐户具有以下角色:

  • 应用引擎管理员
  • 应用引擎部署者
  • Cloud Build 服务帐号
  • Cloud KMS 加密密钥解密器

google-app-engine service-accounts google-cloud-platform google-cloud-build

45
推荐指数
4
解决办法
8729
查看次数

如何使用C#中的服务帐户登录Google API - 凭据无效

我试图通过简单的服务帐户登录来使用C#,Google API和Google Analytics(分析)来打败自己.我的公司已经将数据导入到Analytics中,我可以使用他们的查询资源管理器查询信息,但是.Net的入门不会随处可见.我正在使用谷歌生成的带有PKI的json文件,因为文档说这样的服务帐户是与Googla API进行计算机到计算机通信的正确方法.代码snipet:

public static GoogleCredential _cred;
public static string _exePath;

static void Main(string[] args) {
    _exePath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase).Replace(@"file:\", "");
    var t = Task.Run(() => Run());
    t.Wait();
}

private static async Task Run() {
    try {
        // Get active credential
        using (var stream = new FileStream(_exePath + "\\Default-GASvcAcct-508d097b0bff.json", FileMode.Open, FileAccess.Read)) {
            _cred = GoogleCredential.FromStream(stream);
        }
        if (_cred.IsCreateScopedRequired) {
        _cred.CreateScoped(new string[] { AnalyticsService.Scope.Analytics });
        }
        // Create the service
        AnalyticsService service = new AnalyticsService(
            new BaseClientService.Initializer() {
                HttpClientInitializer = _cred, …
Run Code Online (Sandbox Code Playgroud)

c# google-analytics-api google-oauth google-api-dotnet-client service-accounts

24
推荐指数
4
解决办法
2万
查看次数

创建后,服务帐户不会显示在Google Play Console中

在我的Google Play控制台中,我链接了一个项目.然后我创建了一个服务帐户.尽管如此,在刷新控制台时,仍然会说"没有与您的项目关联的服务帐户".已经等了24个多小时了.所有这一切的目的是收据验证.

图1:一个链接项目: 在此输入图像描述

图2:创建的服务帐户: 在此输入图像描述

android google-api service-accounts receipt-validation google-play-console

24
推荐指数
2
解决办法
2252
查看次数

谁拥有服务帐户通过Google Calendar API创建的日历,以及如何共享这些日历?

假设我有一个some.account@gmail.com带有项目的Google帐户project-1(在Google Developer Console中配置为Google App Engine应用程序)和一个包含12..@developer.gserviceaccount.com属于它的电子邮件地址的服务帐户.

我知道如何使用此服务帐户创建日历并以编程方式操作其条目:我使用Google API客户端库(Java版本,带有服务帐户凭据)在我的Google App Engine应用程序中调用Google Calendar API只是.但是,任何此类创建的日历似乎都由服务帐户明确拥有,而不是由我的Google帐户使用.我从以下观察中得出结论:

  • 当我在Google日历用户界面中查看我的Google帐户的日历时,所有以编程方式创建的日历都不会显示在日历下My calendars.
  • 当我尝试通过发出Other calendars| 来访问这样的日历 Add a friend´s calendar使用服务帐户的电子邮件地址,我可以发送请求,但它永远不会得到答复(可能是因为服务帐户的电子邮件地址不是"真实的"电子邮件地址).
  • 当我以编程方式创建日历时,我没有设置CalendarListEntry#hidden,因此应该应用默认值false.

所以我的问题是:如何在普通的Google Calendar Web UI中访问使用Google Calendar API(以及我的案例中的Java客户端)以编程方式创建的日历和日历条目.例如,服务帐户可以与其拥有的Google帐户共享其日历,还是可以使用UI中的服务帐户凭据直接操作Google帐户的日历.

我意识到在同一主题上有一些先前的问题,但到目前为止它们并没有帮助我解开这个谜团.

google-app-engine google-calendar-api google-account service-accounts

21
推荐指数
1
解决办法
7192
查看次数

在部署Google服务帐户时,无权访问应用

在创建具有权限的Google服务帐户后,如下所示 - 部署失败并显示消息.我无法理解这出错的地方.

====

$ gcloud iam service-accounts get-iam-policy cdemail@appid.iam.gserviceaccount.com
bindings:
- members:
  - serviceAccount:cdemail@appid.iam.gserviceaccount.com
  role: roles/owner
etag: Bxxxxxxxxg=
Run Code Online (Sandbox Code Playgroud)

====

$ gcloud auth activate-service-account --key-file ../a.json 
Activated service account credentials for: [cdemail@appid.iam.gserviceaccount.com]

$ gcloud app deploy
ERROR: (gcloud.app.deploy) You do not have permission to access app [appid].
Run Code Online (Sandbox Code Playgroud)

deployment google-app-engine service-accounts

21
推荐指数
3
解决办法
2万
查看次数

Kubernetes RBAC 规则动词列表

我想给我的应用程序有限的访问权限来获取不同状态集(可能还有部署)的副本,并在必要时扩大或缩小它们。

我为此创建了 ServiceAccount、Rolebinding 和 Role,但我找不到规则动词的完整列表(“get”、“watch”、“list”、“update”)以及它们的限制是什么,例如我可以使用update用于缩放还是我需要另一个动词?我在哪里可以找到描述这些动词的列表或表格?

我的 yaml 文件:

kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: scaler-role
  namespace: {{ .Release.Namespace  | quote }}
rules:
- apiGroups: ["apps"]
  resources: ["statefulset"]
  verbs: ["get", "watch", "list", "update"]
Run Code Online (Sandbox Code Playgroud)

rbac service-accounts kubernetes

18
推荐指数
3
解决办法
2万
查看次数

如何在部署上配置非默认serviceAccount

我对此文档页面的理解是,我可以使用Pod配置服务帐户,并希望也可以部署,因此我可以访问Kubernetes 1.6+中的k8s API.为了不改变或使用默认的,我想创建服务帐户并将证书挂载到部署的pod中.

如何在部署示例中实现类似的示例?

apiVersion: v1
kind: Pod
metadata:
   name: my-pod
spec:
  serviceAccountName: build-robot
  automountServiceAccountToken: false
Run Code Online (Sandbox Code Playgroud)

service-accounts kubernetes

15
推荐指数
1
解决办法
1万
查看次数

如何更改Google Compute Engine服务帐户的范围以将数据写入Google云端存储分区?

在GCE上运行了一个实例,并且在同一个项目中有一个GCS存储桶.但我无法向其写入数据.如何将数据从VM实例写入存储桶?

google-cloud-storage google-compute-engine service-accounts

14
推荐指数
2
解决办法
7523
查看次数

如何使用Python中的服务帐户验证Google Cloud?

我试图制作一个项目,将谷歌存储json文件上传到BigQuery(只是自动完成现在手动完成的事情).

我希望使用"服务帐户",因为我的脚本将每天运行.

阅读完所有关于使用服务帐户的内容后,我仍然在努力进行身份验证.

我想知道是否有人可以检查并指出我错过了什么?

这是我到目前为止所做的:

  1. 为服务帐户创建了json密钥文件
  2. 已安装的客户端库: pip install --upgrade google-cloud-bigquery
  3. 根据以下网址安装了google cloud sdk:https://cloud.google.com/sdk/docs/
  4. 运行export GOOGLE_APPLICATION_CREDENTIALS=<path_to_service_account_file>与正确指定键路径

现在我试图运行以下python脚本:

from google.cloud import bigquery
bigquery_client = bigquery.Client()
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

google.auth.exceptions.DefaultCredentialsError:无法自动确定凭据.请设置GOOGLE_APPLICATION_CREDENTIALS或明确创建凭据并重新运行该应用程序.有关详细信息,请参阅 https://developers.google.com/accounts/docs/application-default-credentials.

我对python和google云API都很陌生,所以可能错过了一些东西,

不知道是否有人可以指出我上面的步骤中哪里出现了什么/出了什么问题,或者让我明确指出dummys使用服务帐户设置和运行Bigquery的简单脚本?

oauth-2.0 google-bigquery service-accounts google-cloud-platform

14
推荐指数
5
解决办法
1万
查看次数

ImagePullSecrets GCR

我在deployment.yaml文件中使用ImagePullSecrets配置GCR时遇到问题.由于许可,它无法下载容器

Failed to pull image "us.gcr.io/optimal-jigsaw-185903/syncope-deb": rpc error: code = Unknown desc = Error response from daemon: denied: Permission denied for "latest" from request "/v2/optimal-jigsaw-185903/syncope-deb/manifests/latest".
Run Code Online (Sandbox Code Playgroud)

我确信我做错了但我遵循了这个教程(和其他人一样),但仍然没有运气.

https://ryaneschinger.com/blog/using-google-container-registry-gcr-with-minikube/

pod日志同样没用:

"syncope-deb" in pod "syncope-deployment-64479cdcf5-cng57" is waiting to start: trying and failing to pull image
Run Code Online (Sandbox Code Playgroud)

我的部署如下:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  # Unique key of the Deployment instance
  name: syncope-deployment
  namespace: default
spec:
  # 3 Pods should exist at all times.
  replicas: 1
  # Keep record of 2 revisions for rollback
  revisionHistoryLimit: 2 …
Run Code Online (Sandbox Code Playgroud)

service-accounts kubernetes google-container-registry minikube

14
推荐指数
1
解决办法
634
查看次数