Вы можете использовать условие IAM . Do c интересен, если вы хотите скрипт доступа. Для теста вы можете использовать консоль
Начните с добавления или редактирования разрешения на странице IAM. Выберите роль, а затем нажмите «Добавить разрешения»
Name your condition and choose the condition(s).
EDIT
You can use the API непосредственно для этого
Вы также можете использовать клиентскую библиотеку. Специальной библиотеки для диспетчера ресурсов нет, вы должны использовать API обнаружения . Здесь описание диспетчера ресурсов v1
Итак, в Python код выглядит так
import googleapiclient.discovery
resourceManager = googleapiclient.discovery.build("cloudresourcemanager","v1")
result = resourceManager.projects().getIamPolicy(resource="<ProjectId>").execute()
print(result)
body={
'policy': {
'bindings': [
{
'role': 'roles/storage.objectViewer',
'members': [
'user:myUser@example.com'
],
'condition': {
'title': 'expirable access',
'expression': 'request.time < timestamp("2020-10-01T00:00:00.000Z")'
}
}
],
'version': 3
}
}
result = resourceManager.projects().setIamPolicy(resource="<ProjectId>", body=body).execute()
print(result)
Примечание: нужно повторить блок привязки c для каждой роли, которую вы хотите предоставить
БУДЬТЕ ОСТОРОЖНЫ
В обоих случаях вы устанавливаете политику IAM, это стереть / заменить существующую политику по проекту. Между прочим, одна из хороших практик - выполнить getIamPolicy (также в моем примере) до и обновить результаты перед его установкой.