sonatype-nexus-community / nexus-blobstore-google-cloud

时间:2019-01-14 13:45:10

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

尝试构建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项目。

     

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

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

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)

如果我忽略了某些东西,请您帮我吗?

1 个答案:

答案 0 :(得分:1)

除了存储管理员服务帐户用户之外,还需要创建数据存储数据库并添加数据存储所有者角色>服务帐户令牌创建者