Рубрики
gcp Виртуализация \ контейнеры \ облака Конспект

Конспект: GCP / Google Cloud Platform

0. Введение

https://cloud.google.com/
Billing Accaunt - привязка вашей кредитной карты (Кто платит)
Project - линкуется к Billing Accaunt (За что платим)

1. Google cloud console \ создание \ gcloud

#!!! для проектов
#!!! подымается виртульная машина linux дистрибутив debian
#!!! доступно 5Gb диского пространства   
#!!! эта виртульная машина бесплатна
#!!! имеет доступ к интернету
#!!! можно устанавливать по
#!!! sudo apt install tree - например можно поставить tree

gcloud config set project [PROJECT_ID] - смена проекта
gcloud projects list - посмотреть все проекты
gcloud auth list - посмотреть аккаунты которые могут управлять GCP

Computer Engine - в этом разделе происходит создание виртуалок ... 

2. Установка и настройка Cloud SDK/GCP CLI на Windows

# Зачем это надо? 
# Если вам нужно управлять GCP с вашего ПК с windows консоле powershell сервисами GCP
# Ищем в поиске google =>>>>>>  gcp cloud install

https://cloud.google.com/sdk/docs/quickstart-windows - инструкция 

https://dl.google.com/dl/cloudsdk/channels/rapid/GoogleCloudSDKInstaller.exe - качать нужно это

gcloud --version - открываем powershell и проверяем работоспасобность GCP
gcloud init - выполняем подключение GCP, откроется браузер и нужно будет ввести учетные данные google, или если откроется chrome и вы уже авторезированны в google будет запрошенно разрешение.
#!!! Внимание команда "gcloud init" выполняется один раз, далее просто открыаем powershell и пользуемся командами gcloud.

gcloud auth list - посмотреть аккаунты которые могут управлять GCP
gcloud projects list - посмотреть доступные проекты

3. Установка и настройка Cloud SDK/GCP CLI на Linux

# Зачем это надо? 
# Если вам нужно управлять GCP с вашего ПК с windows консоле powershell сервисами GCP
# Ищем в поиске google =>>>>>>  gcp cloud install
https://cloud.google.com/sdk/docs/quickstart-debian-ubuntu - инструкция 


echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] http://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
sudo apt-get update 
sudo apt-get install google-cloud-sdk

gcloud --version - открываем powershell и проверяем работоспасобность GCP
gcloud init - выполняем подключение GCP, откроется браузер и нужно будет ввести учетные данные google, или если откроется chrome и вы уже авторезированны в google будет запрошенно разрешение.
#!!! внимание если браузер не открылся, в консоле будет написан линк, его можно скопировать и открыть в браузере вручную
#!!! Внимание команда "gcloud init" выполняется один раз, далее просто открыаем powershell и пользуемся командами gcloud.

gcloud auth list - посмотреть аккаунты которые могут управлять GCP
gcloud projects list - посмотреть доступные проекты

4. IAM \ Права доступа \ Users \ Groups \ Permissions \ Roles

AD = Active Directory

GCP Users - это учетная запись авторизированная google, например GMAIL
Создание Users  происходит в Google Admin G-Suite или интегрированной системе (например Active Directory)
Удаление Users  происходит в Google Admin G-Suite или интегрированной системе (например Active Directory)

GCP Groups
Создание Groups  происходит в Google Admin G-Suite или интегрированной системе (например Active Directory)
Удаление Groups  происходит в Google Admin G-Suite или интегрированной системе (например Active Directory)
Удаление и добавление пользователя в группы происходит в Google Admin G-Suite или интегрированной системе (например Active Directory)

GCP - IAM Permissions
Permission - это разрешение выполнять одно определенное действие
Permission - это разрешение выполнять одно определенное действие
Permission - это разрешение выполнять одно определенное действие
Формат: 
Service.Resource.Verb
Примеры:
compute.instances.create - сервис compute, ресурс instances, действие create, разрешение создовать серверы в проекте
compute.instances.delete - сервис compute, ресурс instances, действие delete,  разрешение удалять серверы в проекте
compute.instances.start - сервис compute, ресурс instances, действие start, разрешить включать серверы в проекте
compute.instances.stop - сервис compute, ресурс instances, действие stop, разрешить выключать серверы в проекте
storage.buckets.create - сервис storage, ресурс buckets, действие create, разрегить создание бакетов (как бы папка, хранилище...)
storage.objects.create - сервис storage, ресурс objects, действие create,  разрешить создание обьектов в бакетах
storage.backets.list - сервис storage, ресурс backets, действие list,  разрешить показ сущетвуюшие бакеты 
storage.objects.list - сервис storage, ресурс objects, действие list,  разрешить просмотр содержимое в бакетах
и т.д. их примерно ~1000 штук


GCP - IAM Roles
Role - это колекция или набор Permissions

Primitive Roles - Сделаны Google, назначаются на уровне каждого Project, четыре штуки/ Browser, Editor, Owner, Viewer
!!! Primitive Roles  дают очень широкие прова. На практике страраются ими не пользоватся.
Browser (roles/browser) - важная роль, назначается проктически всем
Viewer (roles/viewer) - readonly на все в проекте !!! Эта например роль подайтет для аудитора
Editor (roles/editor) - измененеие всего кроме biling
Owner (roles/owner) - все вместе взятое, browser+viewer+editor

Predefined Roles - Сделаны Google, состоит из коллекции определенных Permissions
Compute Instance Admin (roles/compute.instanceAdmin) - роль админства серверов в инстансе
Storage Admin (roles/storage.admin)
Storage Object Admin (roles/storage.objectAdmin)
Storage Object Viewer (roles/objectViewer)
Cloud SQL Admin (roles/cloudsql.Admin)
Cloud SQL Viewer (roles/Cloudsql.viewer)

Custom Roles - ваши самодельные роли 


GCP - User/Group Permissions, Custom Role
Назначение прав доступа для User/Groups происходит в Google Cloud Platform IAM & admin
Создание Custom IAM Role происходит в Goole Cloud Platform IAM & admin

!!! Google рекомендует использовать предустановленные роли. 
!!! С кастомными ролями мргут быть проблемы.
!!! Так как Google постоянно добовляет новые permissions.
!!! Кастомные роли сложна редактировать для пользователя. Всегда может чегото не хватать.

5. Иерархия GCP: Organization, Folder, Project, Resource


GCP - Organization
Высший компонент Иерархии GCP
Доступ на этом уровне в IAM распространяется на всё ниже описанное (Уровень Бога)
Может состоять из Project или Folder

GCP - Folder
Доступ на этом уровне в IMA распространяется на все Folders и Projects внутри

GCP - Project
Доступ на этом уровне в IMA распространяется только на этот Project
Может состоять из Resources

Все ресурсы создаются в проектах.