【问题标题】:GCP IAM roles for sonatype-nexus-community/nexus-blobstore-google-cloudsonatype-nexus-community/nexus-blobstore-google-cloud 的 GCP IAM 角色
【发布时间】:2019-06-08 12:18:30
【问题描述】:

尝试构建 sonatype-nexus-community/nexus-blobstore-google-cloud 但如果没有 GCP 中的项目所有者 iam 角色,则无法成功。

如果我正确理解所有内容,存储管理员 IAM 角色就足够了,至少根据文档:

https://github.com/sonatype-nexus-community/nexus-blobstore-google-cloud

还尝试了存储管理员 + 服务帐户用户 + 服务帐户令牌创建者,但也未能成功。

集成测试失败并显示一条消息:

org.sonatype.nexus.blobstore.api.BlobStoreException: BlobId: e0eb4ae2-f425-4598-aa42-fc03fb2e53b2, com.google.cloud.datastore.DatastoreException: 权限缺失或不足。

具体来说,集成测试创建一个 blob 存储,然后尝试删除而不是取消删除,使用两种不同的方法:

  • def "取消删除成功使 blob 可访问"
  • def "当空运行为真时,取消删除不执行任何操作"

这就是问题的开始。删除时执行失败:

断言 blobStore.delete(blob.id, 'testing')

另一个问题是如何取消删除 Google Storage 中不支持取消删除但仅支持版本控制的内容。

_

以下是文档中有关权限的内容:

谷歌云存储权限

接下来,您需要创建一个具有适当权限的帐户。

在预定义的帐户角色中,Storage Admin 将授予插件 > 创建您需要的任何 Google Cloud Storage Buckets 并管理其中的所有对象,但它也有权管理与项目。

如果您使用自定义角色,该帐户将需要:

  1. (必需) storage.objects.*
  2. (必需) storage.buckets.get
  3. 或 storage.buckets.*。

Storage Admin IAM 角色涵盖 storage.objects.* 和 storage.buckets.*,因此不确定导致问题的原因。

参考文献:

https://cloud.google.com/storage/docs/access-control/iam-roles https://cloud.google.com/storage/docs/access-control/iam-json

在尝试删除 blob 存储时集成测试失败:

15:27:10.042 [main] 调试 o.s.n.b.g.i.GoogleCloudBlobStore - 将 blob 2e22e0e9-1fef-4620-a66e-d672b75ef924 写入 content/vol-18/chap-33/2e22e0e9-1fef-4620-a66e-d672b75ef924 字节。 15:27:24.430 [main] DEBUG o.s.n.b.g.i.GoogleCloudBlobStore - 软删除 blob 2e22e0e9-1fef-4620-a66e-d672b75ef924

org.sonatype.nexus.blobstore.gcloud.internal.GoogleCloudBlobStoreIT.undelete 成功使 blob 可访问(GoogleCloudBlobStoreIT.groovy:164)

原因:org.sonatype.nexus.blobstore.api.BlobStoreException: BlobId: 2e22e0e9-1fef-4620-a66e-d672b75ef924, com.google.cloud.datastore.DatastoreException: 权限缺失或不足,原因: 权限缺失或不足。 ... 1 更多

在 org.sonatype.nexus.blobstore.gcloud.internal.DeletedBlobIndex.add(DeletedBlobIndex.java:55)

在 org.sonatype.nexus.blobstore.gcloud.internal.GoogleCloudBlobStore.delete(GoogleCloudBlobStore.java:276)

如果我遗漏了什么,你能帮帮我吗?

【问题讨论】:

    标签: google-cloud-platform nexus nexus3 google-iam google-cloud-iam


    【解决方案1】:

    除了Storage AdminService Account User之外,还需要创建一个Datastore数据库并添加Datastore Owner角色>服务帐户令牌创建者

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-20
      • 2017-07-04
      • 2015-02-14
      • 1970-01-01
      • 1970-01-01
      • 2014-07-05
      • 2022-01-01
      • 2017-03-14
      相关资源
      最近更新 更多