Compare languages | Cloud provider — Huawei Cloud: Preparing environment

Deckhouse components interact with Huawei Cloud resources through the Huawei Cloud API. To configure this connection, you need to create a user in the Huawei Cloud IAM service and provide it with the necessary permissions.

Для взаимодействия с ресурсами в облаке Huawei Cloud компоненты Deckhouse используют API Huawei Cloud. Для настройки этого подключения требуется создать пользователя в сервисе Huawei Cloud IAM и назначить ему соответствующие права доступа.

Configuring IAM via the web interface

Настройка IAM через веб-интерфейс

To configure IAM via the web interface, first create a new user group and assign the necessary permissions. Follow these steps:

Для настройки IAM через веб-интерфейс сначала создайте новую группу пользователей и назначьте ей необходимые права. Для этого выполните следующие шаги:

  1. Go to the “Identity and Access Management (IAM)” section.
  2. Open the “User Groups” page and click “Create User Group”.
  3. In the “Name” field, enter the group name (e.g., deckhouse).
  4. Click “OK” to create the group.
  5. Select the newly created group from the list.
  6. On the “Permissions” tab, click “Authorize”.
  7. Assign the following policies: “ECS Admin”, “VPC Administrator”, “NAT Admin”, “ELB FullAccess”, “DEW KeypairFullAccess”.
  8. Click “Next”, then “OK”, and complete the setup by clicking “Finish”.
  1. Перейдите в раздел «Identity and Access Management (IAM)».
  2. Откройте страницу «User Groups» и нажмите «Create User Group».
  3. В поле «Name» укажите имя группы (например, deckhouse).
  4. Нажмите «OK» для создания группы.
  5. Выберите созданную группу из списка.
  6. На вкладке «Permissions» нажмите «Authorize».
  7. Укажите следующие политики: «ECS Admin», «VPC Administrator», «NAT Admin», «ELB FullAccess», «DEW KeypairFullAccess».
  8. Нажмите «Next», затем «OK» и завершите настройку, нажав «Finish».

Then add a new user. Follow these steps:

Добавьте нового пользователя. Для этого выполните следующие шаги:

  1. Go to the “Users” page in the IAM section and click “Create User”.
  2. In the “Username” field, enter the username (e.g., deckhouse).
  3. Set “Access type” to “Programmatic access” and make sure “Management console access” is disabled.
  4. Select “Access key” as the “Credential Type”.
  5. Click “Next”.
  6. Select the previously created user group.
  7. Click “Create” to complete the user creation process.
  8. Click “OK” to download the Access Key ID and Secret Access Key. Make sure to save these credentials in a secure location, as they will be needed to access the API.
  1. Перейдите на страницу «Users» в разделе IAM и нажмите «Create User».
  2. В поле «Username» введите имя пользователя (например, deckhouse).
  3. Установите «Access type» в значение «Programmatic access» и убедитесь, что «Management console access» отключен.
  4. Выберите «Access key» в качестве «Credential Type».
  5. Нажмите «Next».
  6. Выберите ранее созданную группу пользователей.
  7. Нажмите «Create», чтобы завершить создание пользователя.
  8. Нажмите «OK», чтобы загрузить Access Key ID и Secret Access Key. Убедитесь, что вы сохранили эти данные в надёжном месте, так как они понадобятся для доступа к API.

JSON policies

JSON-политики

Below are the contents of the policies in JSON format:

Далее приведено содержание политик в формате JSON:

json { “Version”: “1.1”, “Statement”: [ { “Action”: [ “ecs::”, “evs::get”, “evs::list”, “evs:volumes:create”, “evs:volumes:delete”, “evs:volumes:attach”, “evs:volumes:detach”, “evs:volumes:manage”, “evs:volumes:update”, “evs:volumes:use”, “evs:volumes:uploadImage”, “evs:snapshots:create”, “vpc::get”, “vpc::list”, “vpc:networks:create”, “vpc:networks:update”, “vpc:subnets:update”, “vpc:subnets:create”, “vpc:ports:”, “vpc:routers:get”, “vpc:routers:update”, “vpc:securityGroups:”, “vpc:securityGroupRules:”, “vpc:floatingIps:”, “vpc:publicIps:*”, “ims:images:create”, “ims:images:delete”, “ims:images:get”, “ims:images:list”, “ims:images:update”, “ims:images:upload” ], “Effect”: “Allow” } ] }

json { “Version”: “1.1”, “Statement”: [ { “Action”: [ “ecs::”, “evs::get”, “evs::list”, “evs:volumes:create”, “evs:volumes:delete”, “evs:volumes:attach”, “evs:volumes:detach”, “evs:volumes:manage”, “evs:volumes:update”, “evs:volumes:use”, “evs:volumes:uploadImage”, “evs:snapshots:create”, “vpc::get”, “vpc::list”, “vpc:networks:create”, “vpc:networks:update”, “vpc:subnets:update”, “vpc:subnets:create”, “vpc:ports:”, “vpc:routers:get”, “vpc:routers:update”, “vpc:securityGroups:”, “vpc:securityGroupRules:”, “vpc:floatingIps:”, “vpc:publicIps:*”, “ims:images:create”, “ims:images:delete”, “ims:images:get”, “ims:images:list”, “ims:images:update”, “ims:images:upload” ], “Effect”: “Allow” } ] }

json { “Version”: “1.1”, “Statement”: [ { “Action”: [ “vpc:vpcs:”, “vpc:routers:”, “vpc:networks:”, “vpc:subnets:”, “vpc:ports:”, “vpc:privateIps:”, “vpc:peerings:”, “vpc:routes:”, “vpc:lbaas:”, “vpc:vpns:”, “ecs::get”, “ecs::list”, “elb::get”, “elb::list” ], “Effect”: “Allow” } ] }

json { “Version”: “1.1”, “Statement”: [ { “Action”: [ “vpc:vpcs:”, “vpc:routers:”, “vpc:networks:”, “vpc:subnets:”, “vpc:ports:”, “vpc:privateIps:”, “vpc:peerings:”, “vpc:routes:”, “vpc:lbaas:”, “vpc:vpns:”, “ecs::get”, “ecs::list”, “elb::get”, “elb::list” ], “Effect”: “Allow” } ] }

json { “Version”: “1.1”, “Statement”: [ { “Action”: [ “nat::”, “vpc::” ], “Effect”: “Allow” } ] }

json { “Version”: “1.1”, “Statement”: [ { “Action”: [ “nat::”, “vpc::” ], “Effect”: “Allow” } ] }

json { “Version”: “1.1”, “Statement”: [ { “Action”: [ “kps:domainKeypairs:”, “ecs:serverKeypairs:” ], “Effect”: “Allow” } ] }

json { “Version”: “1.1”, “Statement”: [ { “Action”: [ “kps:domainKeypairs:”, “ecs:serverKeypairs:” ], “Effect”: “Allow” } ] }

json { “Version”: “1.1”, “Statement”: [ { “Action”: [ “elb::”, “vpc::get”, “vpc::list”, “ecs::get”, “ecs::list” ], “Effect”: “Allow” } ] }

json { “Version”: “1.1”, “Statement”: [ { “Action”: [ “elb::”, “vpc::get”, “vpc::list”, “ecs::get”, “ecs::list” ], “Effect”: “Allow” } ] }