Полезные нюансы облака YC
Подключение SA к ресурсу в другом фолдере.
Это можно сделать с помощью API. Пример на добавление сервисного ака к инстансу в другом фолдере:yc compute instance update instace_id --service-account-id serv_acc_id
ВМ при этом отключать необязательно.
Проверить корректность настроек можно так: yc compute instance get instace_id --format=json | jq -r '.service_account_id'
- должен быть выведен id SA.
Отвязать публичный статический IP адрес от ВМ.
Для того чтобы отвязать публичный адрес от ВМ необходимо перейти в Compute Cloud --> your_instance --> Попадаем на страницу с характеристиками ВМ и статусами --> Сеть. В правом верхнем углу формы три точки (...) --> Отвязать публичный IP-адрес --> Удалить.
Обращаю внимание, что он никуда не денется. Потому что он статический. Только на странице Virtual Private Cloud --> IP-адреса поменяется его статус. Поле "Ресурс" будет пустым. Далее этот адрес можно привязать к другой ВМ при необходимости. Принцип примерно тот же, что был описан выше. Только вместо "Отвязать публичный IP-адрес" будет "Добавить публичный IP-адрес".
Если же адрес используется динамический, то он будет утерян. Будет пернесён в пул облака.
Выполнение yc init в ОС без GUI.
Для авторизации с машины без графического интерфейса используйте инструкцию:
- Создаем исполняемый файл /usr/local/bin/xdg-open
$ cat /usr/local/bin/xdg-open
#!/bin/sh
echo $* > /dev/tty
$ ls -l /usr/local/bin/xdg-open
-rwxr-xr-x 1 root root 29 Oct 16 12:43 /usr/local/bin/xdg-open
- Запускаем yc init --federation-id
$ yc init --federation-id
Welcome! This command will take you through the configuration process.
You are going to be authenticated via federation-id 'yc-federation'.
Your federation authentication web site will be opened.
After your successful authentication, you will be redirected to 'https://console.cloud.yandex.ru'.
- Жмём Enter и видим URL:
https://console.cloud.yandex.ru/federations/federation_id?redirectUrl=http%3A%2F%2F127.0.0.1%3A39229
Тут жмем C и вводим волшебную команду, которая форвардит локальный порт из URL на соответствующий порт, но уже на сервере.
Порт 39229 тут взят из URL, он будет каждый раз разный:
ssh> -L 39229:127.0.0.1:39229
Forwarding port.
Please select cloud to use:
[1] cloud (id = <cloud_id>)
...
Альтернативой будет настройка от имени сервисного аккаунта: https://cloud.yandex.ru/docs/cli/operations/authentication/service-account
Шифрование бакета с помощью s3cmd
- Создать ключ в KMS
- В бакете включить шифрование и указать созданный ключ
Команда s3cmd put test.file s3:*bucket_name/ --server-side-encryption-kms-id=id_kms --server-side-encryption
Загружает файл в бакет и шифрует его на стороне сервера.
Факт шифрования можно проверить командой: s3cmd info s3:*bucket_name/test.file
получим "SSE: aws:kms"
Удалить кластер с защитой от удаления
- Выключить кластер;
- Нажать редактировать;
- Снять защиту от удаления, после чего сохранить конфигурацию кластера;
- Удалить кластер.
Шифрование бакета и общий доступ к его ресурсам:
Использовать шифрование на стороне сервиса и публичный доступ одновременно не получиться.