尝试构建sonatype-nexus-community / nexus-blobstore-google-cloud,但没有GCP中的项目负责人iam角色就无法成功。
如果我正确理解所有内容,至少根据文档,Storage Admin IAM角色应该足够:
https://github.com/sonatype-nexus-community/nexus-blobstore-google-cloud
还尝试了Storage Admin +服务帐户用户+服务帐户令牌创建者,但均无法成功。
集成测试失败,并显示一条消息:
org.sonatype.nexus.blobstore.api.BlobStoreException:BlobId:e0eb4ae2-f425-4598-aa42-fc03fb2e53b2,com.google.cloud.datastore.DatastoreException:缺少权限或权限不足。 < / p>
详细地说,集成测试使用两种不同的方法创建了一个Blob存储,然后尝试删除该Blob,然后取消删除它:
- def“取消删除成功使blob可以访问”
- def“在正确运行时不删除任何内容”
这是问题开始的地方。删除执行失败:
声明blobStore.delete(blob.id,'testing')
这是另一个问题,如何在Google存储空间中删除不支持删除但仅支持版本控制的内容。
_
以下是文档中有关权限的内容:
Google云存储权限
下一步,您需要创建一个具有适当权限的帐户。
在预定义的帐户角色中,Storage Admin将授予该插件>创建所需的任何Google Cloud Storage Bucket并管理其中的所有对象,但它也有权管理与该帐户关联的任何其他Google Cloud Storage Bucket项目。
如果您使用的是自定义角色,则该帐户将需要:
- (必需)storage.objects。*
- (必需)storage.buckets.get
- 或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.bytes 15:27:24.430 [main]调试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)
如果我忽略了某些东西,请您帮我吗?
答案 0 :(得分:1)
除了存储管理员,服务帐户用户和之外,还需要创建数据存储数据库并添加数据存储所有者角色>服务帐户令牌创建者