Невозможно получить доступ к сегменту Google Cloud Storage из рабочего процесса действий GitHub.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно получить доступ к сегменту Google Cloud Storage из рабочего процесса действий GitHub.

Сообщение Anonymous »

У меня есть тестовый пример Django test_retrieve_bucket для проверки доступа к сегменту хранилища GCP.
from django.test import SimpleTestCase, TestCase
from google.cloud import storage

class DemoTest(TestCase):
def setUp(self):
self.expense = Expense.objects.create(
invoice_number = "ABC",
account_number = "123",
customer_name = "XYZ",
invoice_amount = 12.50,
invoice_date = datetime.now()
)
def test1(self):
return self.expense.invoice_number == "ABC"
def test2(self):
return self.expense.account_number == "123"
def test3(self):
return self.expense.customer_name == "XYZ"

def test_retrieve_bucket(self):
bucket = "test_bucket_8866"
client = storage.Client()
bucket = client.bucket(bucket)
return self.assertTrue(bucket.exists())

Однако тест не пройден, и я получаю следующую ошибку:

google.api_core.Exceptions. Запрещено: 403 GET https://storage.googleapis.com/storage/ ... rint=false: test-service-account@tbi-finance.iam.gserviceaccount.com не имеет Storage.buckets. получить доступ к корзине Google Cloud Storage. Разрешение «storage.buckets.get» отклонено для ресурса (или оно может не существовать).

Мне удалось успешно подтвердить подлинность учетной записи службы с помощью Workload Identity Federation в предыдущий шаг:
Изображение

Учетная запись службы У меня также есть разрешение администратора объекта хранилища, которое должно дать мне доступ к корзине:
Изображение

Пул рабочих удостоверений также является членом сервисного аккаунта:
Изображение

Вот файл моего рабочего процесса:
name: Django CI

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]

jobs:
build:

runs-on: ubuntu-latest
strategy:
max-parallel: 4
matrix:
python-version: [3.12.4]

steps:
- uses: actions/checkout@v4
- name: auth
uses: google-github-actions/auth@v2.0.0
with:
workload_identity_provider: 'projects/334572487877/locations/global/workloadIdentityPools/learn-github-actions-pool/providers/github-cdci'
service_account: 'test-service-account@tbi-finance.iam.gserviceaccount.com'
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python-version }}
- name: Install Dependencies
run: |
pip install pipenv && pipenv install --system
- name: Run Tests
run: |
python manage.py test
permissions:
contents: 'read'
id-token: 'write'


Когда я запускал тесты Django локально с указанной выше учетной записью службы, все тесты прошли успешно. Есть ли что-то еще, что мне не хватает?
Изменить:
Это была команда, которую я использовал для добавления роли WorkloadIdentityUser в пул удостоверений рабочей нагрузки:
gcloud iam service-accounts add-iam-policy-binding "test-service-account@tbi-finance.iam.gserviceaccount.com" \
--project="tbi-finance" \
--role="roles/iam.workloadIdentityUser" \
--member="principalSet://iam.googleapis.com/projects/334572487877/locations/global/workloadIdentityPools/learn-github-actions-pool/attribute.repository/duybtr/django_cdci"


Подробнее здесь: https://stackoverflow.com/questions/790 ... s-workflow
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Доступ Google Cloud Storage Generation 2 Запустите приложение Firebase Cloud Function Function
    Anonymous » » в форуме Javascript
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Соединение Docker Cloud Cloud Cloud Cloud
    Anonymous » » в форуме JAVA
    0 Ответы
    81 Просмотры
    Последнее сообщение Anonymous
  • Соединение Docker Cloud Cloud Cloud Cloud
    Anonymous » » в форуме JAVA
    0 Ответы
    65 Просмотры
    Последнее сообщение Anonymous
  • Каков пример рабочего процесса GitHub Action для тестирования интеграции Flutter с использованием Ubuntu?
    Anonymous » » в форуме Android
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • Я использую действие рабочего процесса GitHub для публикации пакета каждый раз, когда я нажимаю на основной
    Anonymous » » в форуме Javascript
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»