Управление статическими ключами доступа
Часть сервисов Yandex Cloud поддерживает аутентификацию с помощью статических ключей доступа.
Статические ключи доступа создаются для сервисных аккаунтов. Если у вас еще нет сервисного аккаунта, создайте его и назначьте ему роли.
Создать статический ключ доступа
Примечание
Создание статических ключей доступа сервисных аккаунтов может быть запрещено политиками авторизации на уровне каталога, облака или организации.
Чтобы создать статический ключ доступа сервисного аккаунта:
-
В консоли управления
на панели сверху нажмите или и выберите каталог, которому принадлежит сервисный аккаунт. -
В списке сервисов выберите Identity and Access Management.
-
На панели слева выберите
Сервисные аккаунты. -
Выберите сервисный аккаунт, для которого вы хотите создать статический ключ доступа.
-
На панели сверху нажмите кнопку
Создать новый ключ и выберите Создать статический ключ доступа. -
Задайте описание ключа и нажмите кнопку Создать.
-
Сохраните идентификатор и секретный ключ.
Внимание
После закрытия диалога значение ключа будет недоступно.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
-
Посмотрите описание команды создания статического ключа доступа:
yc iam access-key create --help -
Выберите сервисный аккаунт, например
my-robot:yc iam service-account listРезультат:
+----------------------+------------------+-------------------------------+ | ID | NAME | DESCRIPTION | +----------------------+------------------+-------------------------------+ | aje6o61dvog2******** | my-robot | | | aje9sda1ufvq******** | account_name | account_description | +----------------------+------------------+-------------------------------+ -
Создайте ключ доступа для сервисного аккаунта
my-robot:yc iam access-key create --service-account-name my-robotРезультат:
access_key: id: aje6t3vsbj8l******** service_account_id: ajepg0mjt06s******** created_at: "2018-11-22T14:37:51Z" key_id: 0n8X6WY6S24N******** secret: JyTRFdqw8t1kh2-OJNz4JX5ZTz9Dj1rI******** -
Сохраните идентификатор
key_idи секретный ключsecret. Повторно получить значение ключа будет невозможно.
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Опишите в конфигурационном файле параметры ресурсов, которые необходимо создать:
resource "yandex_iam_service_account_static_access_key" "sa-static-key" { service_account_id = "<идентификатор_сервисного_аккаунта>" description = "<описание_ключа>" pgp_key = "keybase:keybaseusername" output_to_lockbox { secret_id = "<идентификатор_секрета_Lockbox>" entry_for_access_key = "<ключ_секрета_для_идентификатора_статического_ключа>" entry_for_secret_key = "<ключ_секрета_для_секретного_ключа>" } }Где:
-
service_account_id— идентификатор сервисного аккаунта. Обязательный параметр. -
description— описание ключа. Необязательный параметр. -
pgp_key— дополнительный PGP-ключ для шифрования закрытого ключа. Необязательный параметр. Указывается публичная часть ключа в кодировке base64, либо в видеkeybase:keybaseusername. -
output_to_lockbox— описание секрета Yandex Lockbox, в который будут сохранены секретные значения ключа, во избежание их возможной утечки через файл состоянияterraform.tfstate. Необязательный параметр. Вложенные параметры:secret_id— идентификатор секрета Yandex Lockbox, в который будут сохранены идентификатор ключа и секретный ключ. Секрет должен быть пользовательского типа.entry_for_access_key— ключ секрета, который будет присвоен сохраняемому значению идентификатора статического ключа доступа.entry_for_secret_key— ключ секрета, который будет присвоен сохраняемому значению секретного ключа.
Более подробную информацию о параметрах ресурса
yandex_iam_service_account_static_access_keyв Terraform, см. в документации провайдера. -
-
Проверьте корректность конфигурационных файлов.
-
В командной строке перейдите в папку, где вы создали конфигурационный файл.
-
Выполните проверку с помощью команды:
terraform plan
Если конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.
-
-
Разверните облачные ресурсы.
-
Если в конфигурации нет ошибок, выполните команду:
terraform apply -
Подтвердите создание статического ключа доступа: введите в терминал слово
yesи нажмите Enter.Если при создании ключа возникли ошибки, Terraform на них укажет.
При успешном создании ключа Terraform запишет его в свою конфигурацию, но не покажет пользователю. В терминал будет выведен только id созданного ключа.Проверить появление ключа у сервисного аккаунта можно в консоли управления
или с помощью команды CLI:yc iam access-key list --service-account-name=<имя_сервисного_аккаунта>
-
Воспользуйтесь методом REST API create для ресурса AccessKey или вызовом gRPC API AccessKeyService/Create.
Примеры
Добавить описание при создании
Добавьте описание при создании ключа доступа.
yc iam access-key create \
--service-account-name my-robot \
--description "this key is for my bucket"
resource "yandex_iam_service_account_static_access_key" "sa-static-key" {
service_account_id = "<идентификатор_сервисного_аккаунта>"
description = "this key is for my bucket"
pgp_key = "BIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+x....."
}
curl \
--request POST \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer <IAM-токен>" \
--data '{
"serviceAccountId": "<идентификатор_сервисного_аккаунта>",
"description": "this key is for my bucket"
}' \
https://iam.api.cloud.yandex.net/iam/aws-compatibility/v1/accessKeys
Удалить статический ключ доступа
Чтобы удалить статический ключ доступа сервисного аккаунта:
- В консоли управления
на панели сверху нажмите или и выберите каталог, которому принадлежит сервисный аккаунт. - В списке сервисов выберите Identity and Access Management.
- На панели слева выберите
Сервисные аккаунты и выберите нужный сервисный аккаунт. - В блоке Статические ключи доступа в строке с ключом, который нужно удалить, нажмите значок
и выберите Удалить. - В открывшемся окне нажмите кнопку Удалить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
-
Получите список статических ключей доступа сервисного аккаунта, указав его имя:
yc iam access-key list \ --service-account-name <имя_сервисного_аккаунта>Результат:
+----------------------+----------------------+----------------------+ | ID | SERVICE ACCOUNT ID | KEY ID | +----------------------+----------------------+----------------------+ | aje8bdtqec6l******** | ajeedllrkjma******** | R9JK04o1Dfaf******** | | ajegqpa91bta******** | ajeedllrkjma******** | cWXGkDoBRho5******** | +----------------------+----------------------+----------------------+ -
Удалите статический ключ доступа, указав его идентификатор:
yc iam access-key delete <идентификатор_ключа>
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
-
Откройте файл конфигурации Terraform и удалите секцию с описанием статического ключа доступа.
Пример описания статического ключа доступа в конфигурации Terraform:
resource "yandex_iam_service_account_static_access_key" "sa-static-key" { service_account_id = "<идентификатор_сервисного_аккаунта>" description = "<описание_ключа>" pgp_key = "keybase:keybaseusername" output_to_lockbox { secret_id = "<идентификатор_секрета_Lockbox>" entry_for_access_key = "<ключ_секрета_для_идентификатора_статического_ключа>" entry_for_secret_key = "<ключ_секрета_для_секретного_ключа>" } }Более подробную информацию о ресурсах, которые вы можете создать с помощью Terraform, см. в документации провайдера.
-
Проверьте корректность конфигурационных файлов.
-
В командной строке перейдите в папку, где вы создали конфигурационный файл.
-
Выполните проверку с помощью команды:
terraform plan
Если конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.
-
-
Разверните облачные ресурсы.
-
Если в конфигурации нет ошибок, выполните команду:
terraform apply -
Подтвердите создание или удаление ресурсов: введите в терминал слово
yesи нажмите Enter.
После этого в указанном каталоге будут созданы или удалены все требуемые ресурсы. Проверить появление ресурсов и их настройки или удаление ресурсов можно в консоли управления
, а также с помощью команды CLI:yc iam access-key list --service-account-id <идентификатор_сервисного_аккаунта> -
Воспользуйтесь методом REST API delete для ресурса AccessKey или вызовом gRPC API AccessKeyService/Delete.