Роли ICP в GCP для sonatype-nexus-community/nexus-blobstore-google-cloud
Попытка создать sonatype-nexus-community/nexus-blobstore-google-cloud, но не может быть успешной без роли владельца проекта в GCP.
Если я все правильно понимаю, роль администратора IAM хранилища должна быть достаточной, по крайней мере, согласно документации:
https://github.com/sonatype-nexus-community/nexus-blobstore-google-cloud
Также пробовал Storage Admin + Service Account User + Service Token Creator, но также не смог добиться успеха.
Интеграционный тест не пройден с сообщением:
org.sonatype.nexus.blobstore.api.BlobStoreException: BlobId: e0eb4ae2-f425-4598-aa42-fc03fb2e53b2, com.google.cloud.datastore.DatastoreException: отсутствует или недостаточно разрешений.
Подробно, интеграционный тест создает хранилище BLOB-объектов, которое пытается удалить, а затем удалить его, используя два разных метода:
- def "undelete успешно делает BLOB-объект доступным"
- def "undelete ничего не делает, когда пробный запуск истина"
Это где проблема начинается. Выполнение не удаляется при удалении:
assert blobStore.delete (blob.id, "тестирование")
Другой вопрос, как восстановить что-то в Google Storage, которое не поддерживает восстановление, а только управление версиями.
_
Вот что говорит документация о разрешениях:
Разрешения Google Cloud Storage
Далее вам нужно будет создать учетную запись с соответствующими разрешениями.
Из предопределенных ролей учетной записи администратор хранилища предоставит плагин для> создания любых необходимых вам облачных хранилищ Google и администрирования всех объектов в нем, но у него также будет доступ для управления любыми другими хранилищами облачного хранилища Google, связанными с проектом.
Если вы используете пользовательские роли, учетная запись должна будет:
- (обязательно) storage.objects.*
- (обязательно) storage.buckets.get
- или storage.buckets.*.
Роль 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
Тест интеграции не пройден при попытке удаления хранилища больших двоичных объектов:
15: 27: 10.042 [main] DEBUG osnbgiGoogleCloudBlobStore - запись большого двоичного объекта 2e22e0e9-1fef-4620-a66e-d672b75ef924 в content/vol-18/chap-33/2e22e0e9-1fef-4620-a66e-d672b30ef: 2424: 24: 24: 24 main] DEBUG osnbgiGoogleCloudBlobStore - Мягкое удаление BLOB-объектов 2e22e0e9-1fef-4620-a66e-d672b75ef924
в
org.sonatype.nexus.blobstore.gcloud.internal.GoogleCloudBlobStoreIT.undelete успешно делает доступным большой двоичный объект (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 ответ
Необходимо создать базу данных хранилища данных и добавить роль владельца хранилища данных помимо администратора хранилища, пользователя учетной записислужбы и создателя маркера учетной записи службы.