Экземпляру Compute Engine необходимо считывать данные из бакета Cloud Storage и записывать в таблицу BigQuery. Предоставьте минимально необходимые разрешения.
→Создайте пользовательскую учетную запись службы. Предоставьте ей роли `roles/storage.objectViewer` и `roles/bigquery.dataEditor`. Прикрепите эту учетную запись службы к экземпляру.
Почему: Использование пользовательской учетной записи службы со специфическими, предопределенными ролями позволяет избежать чрезмерно широких прав учетной записи службы Compute Engine по умолчанию, соблюдая принцип наименьших привилегий.
Предоставить пользователю разрешения на управление экземплярами GCE, но не на их удаление.
→Создайте пользовательскую роль IAM. Начните с разрешений из роли `roles/compute.instanceAdmin.v1` и удалите разрешение `compute.instances.delete`.
Почему: Пользовательские роли предоставляют гибкость для предоставления точного набора разрешений, когда предопределенные роли слишком широки или слишком ограничены для определенной должностной функции.
Разработчику необходимо подключиться по SSH к экземпляру Compute Engine, у которого нет внешнего IP-адреса, в соответствии с политикой безопасности.
→Предоставьте разработчику роль `roles/iap.tunnelResourceAccessor`. Затем они смогут подключиться, используя `gcloud compute ssh [INSTANCE_NAME] --tunnel-through-iap`.
Почему: Identity-Aware Proxy (IAP) TCP forwarding предоставляет безопасный, основанный на идентификации метод доступа к внутренним экземплярам без использования бастионных хостов, VPN или публичных IP-адресов.
Источник↗
Разрешить входящий SSH-трафик (порт 22) к определенным VM только из диапазона IP-адресов корпоративного офиса.
→Создайте правило файрвола VPC с `direction: INGRESS`, `action: ALLOW`, `protocol/ports: tcp:22`, `source ranges: [CORPORATE_IP_CIDR]` и `target tags: [например, "allow-ssh"]`. Примените тег к целевым VM.
Почему: Сочетание диапазонов источников и целевых тегов обеспечивает точный и масштабируемый способ контроля трафика. Оно ограничивает как *кто* может подключаться, так и *к чему* они могут подключаться.
Предотвратить копирование или доступ к данным из конфиденциального проекта BigQuery из-за пределов доверенной сетевой границы, даже при наличии действительных учетных данных.
→Настройте VPC Service Controls. Создайте периметр службы (service perimeter), который включает конфиденциальный проект и ограничивает BigQuery API.
Почему: VPC Service Controls создают виртуальный "периметр данных", который контролирует доступ на уровне API, обеспечивая надежную защиту от утечки данных, которую не могут обеспечить правила файрвола.
Предоставить стороннему приложению временный, ограниченный по времени доступ на чтение к определенному частному объекту в бакете Cloud Storage.
→Сгенерируйте подписанный URL (signed URL) для объекта с коротким сроком действия (например, 15 минут), используя учетную запись службы с разрешениями на чтение.
Почему: Подписанные URL-адреса предоставляют временный доступ к каждому объекту без необходимости для сторонней организации иметь учетную запись Google или разрешения IAM. Это самый безопасный метод для данного случая использования.
Поду GKE требуется безопасный доступ к Google Cloud API (например, Pub/Sub) без хранения ключей учетных записей служб в виде секретов Kubernetes.
→Включите Workload Identity в кластере GKE. Создайте учетную запись службы Google (Google Service Account - GSA) и учетную запись службы Kubernetes (Kubernetes Service Account - KSA). Привяжите KSA к GSA с помощью политики IAM. Настройте под для использования KSA.
Почему: Workload Identity — это рекомендуемый, бесключевой способ аутентификации приложений GKE в службах Google Cloud. Он сопоставляет идентификаторы KSA с идентификаторами GSA, что более безопасно, чем управление и ротация файлов ключей.
Источник↗
Политика организации требует, чтобы все данные в бакете Cloud Storage были зашифрованы с использованием ключа шифрования, который контролируется организацией.
→Создайте криптографический ключ в Cloud KMS. При создании бакета Cloud Storage укажите этот ключ в качестве ключа шифрования, управляемого клиентом (Customer-Managed Encryption Key - CMEK).
Почему: CMEK дает вам контроль над ключом, используемым для шифрования, включая ротацию и отзыв, при этом используя управляемую инфраструктуру шифрования Google.
Разрешить сотрудникам использовать их существующие локальные учетные данные Active Directory для доступа к ресурсам Google Cloud.
→Настройте Cloud Identity для федерации с Active Directory с использованием SAML 2.0. Пользователи проходят аутентификацию в AD, который затем подтверждает их личность в Google Cloud для доступа.
Почему: Федерация позволяет использовать единый вход (Single Sign-On - SSO) и централизует управление идентификацией в существующем IdP (Active Directory), избегая необходимости управлять отдельным набором паролей в Google Cloud.
Предоставить внешнему подрядчику временный доступ к проекту, который должен автоматически истечь через 30 дней.
→Добавьте подрядчика как члена IAM с требуемой ролью. Добавьте условие к привязке роли с временной меткой истечения срока действия (`request.time < timestamp("YYYY-MM-DDTHH:MM:SSZ")`).
Почему: Условия IAM (IAM Conditions) предоставляют контроль доступа на основе атрибутов. Условия, основанные на времени, идеально подходят для временного доступа, так как они автоматически отзывают разрешения без ручной очистки.