Я хочу использовать политики безопасности API для облачной платформы Google в Linux в скрипте, написанном на Python.
Сделать это:
Я установил google-api-python-client:
pip install google-api-python-client
Я сгенерировал и загрузил из GCP эту учетную информацию (закрытый ключ) в формате JSON и экспортировал путь к этому файлу в переменной среды:
export GOOGLE_APPLICATION_CREDENTIALS='[PATH]'
Теперь я сомневаюсь, как правильно использовать google-api-python-client
библиотеку для достижения своей цели.
Использование метода addRule
в соответствии с документацией я пишу следующий сценарий (конечно, с допустимыми значениями для ключей project
и securityPolicy
), но когда я его выполняю, хотя интерпретатор не возвращает никаких ошибок, но сценарий не дает ожидаемый эффект:
from googleapiclient import discovery
compute_service = discovery.build('compute', 'v1')
security_policies = compute_service.securityPolicies()
security_policies.addRule(
project='existed_project_name',
securityPolicy='existed_security_policy_name',
body={
'kind': 'compute#securityPolicyRule',
'priority': 303,
'action': 'deny(403)',
'preview': False,
'match': {
'config': {
'srcIpRanges': [
'192.0.2.0/24',
'198.51.100.0/24',
'203.0.113.0/24'
]
},
'versionedExpr': 'SRC_IPS_V1'
}
}
)
Итак, у меня есть следующие вопросы:
1. Что мне следует улучшить или изменить?
2. Правильно ли мой подход к аутентификации?
Любые идеи?
Можете ли вы описать, что произошло, когда вы выполнили сценарий? Что за неожиданное поведение? Я могу выполнить дополнительные действия по устранению неполадок, а также, если это весь сценарий, я хотел бы воспроизвести поведение. Спасибо — person simhumileco schedule 20.06.2019
Спасибо за ваш ответ и интерес к @SamuelN. Я бы хотел добавить новое правило с этими примерами IP-адресов для Cloud Armor в производственной среде. К сожалению, ничего подобного не происходит, хотя скрипт не возвращает ошибок. Чтобы воспроизвести мою реальную ситуацию, вы можете просто выполнить приведенный выше фрагмент сценария с реальными existed_project_name
и existed_security_policy_name
(которые я не вставлял здесь по очевидным причинам) и заметить, что сценарий не работает. Вам нужны от меня дополнительные сведения о @SamuelN? Если да, смело спрашивайте. Постараюсь на все ответить. — person simhumileco schedule 21.06.2019
Часть аутентификации должна быть в порядке. Чтобы быть уверенным, можете ли вы попробовать Подтвердить аутентификацию [1]? [1]: cloud.google.com/docs/authentication/ — person simhumileco schedule 11.07.2019
Вам не хватает
.execute()
в конце вашегоaddRule
методаИтак, ваш код должен выглядеть так: