На виртуальных машинах должен быть установлен пакет cloud-init. После запуска виртуальной машины должны быть запущены следующие службы, связанные с этим пакетом:

  • cloud-config.service;
  • cloud-final.service;
  • cloud-init.service.

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

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

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

  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».

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

  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-политики

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

Политика «ECS Admin»

1  {
2  "Version": "1.1",
3  "Statement": [
4  {
5      "Action": [
6      "ecs:*:*",
7      "evs:*:get",
8      "evs:*:list",
9      "evs:volumes:create",
10      "evs:volumes:delete",
11      "evs:volumes:attach",
12      "evs:volumes:detach",
13      "evs:volumes:manage",
14      "evs:volumes:update",
15      "evs:volumes:use",
16      "evs:volumes:uploadImage",
17      "evs:snapshots:create",
18      "vpc:*:get",
19      "vpc:*:list",
20      "vpc:networks:create",
21      "vpc:networks:update",
22      "vpc:subnets:update",
23      "vpc:subnets:create",
24      "vpc:ports:*",
25      "vpc:routers:get",
26      "vpc:routers:update",
27      "vpc:securityGroups:*",
28      "vpc:securityGroupRules:*",
29      "vpc:floatingIps:*",
30      "vpc:publicIps:*",
31      "ims:images:create",
32      "ims:images:delete",
33      "ims:images:get",
34      "ims:images:list",
35      "ims:images:update",
36      "ims:images:upload"
37      ],
38      "Effect": "Allow"
39  }
40  ]
41  }

Политика «VPC Administrator»

1  {
2      "Version": "1.1",
3      "Statement": [
4          {
5              "Action": [
6                  "vpc:vpcs:*",
7                  "vpc:routers:*",
8                  "vpc:networks:*",
9                  "vpc:subnets:*",
10                  "vpc:ports:*",
11                  "vpc:privateIps:*",
12                  "vpc:peerings:*",
13                  "vpc:routes:*",
14                  "vpc:lbaas:*",
15                  "vpc:vpns:*",
16                  "ecs:*:get",
17                  "ecs:*:list",
18                  "elb:*:get",
19                  "elb:*:list"
20              ],
21              "Effect": "Allow"
22          }
23      ]
24  }

Политика «NAT Admin»

1  {
2      "Version": "1.1",
3      "Statement": [
4          {
5              "Action": [
6                  "nat:*:*",
7                  "vpc:*:*"
8              ],
9              "Effect": "Allow"
10          }
11      ]
12  }

Политика «DEW KeypairFullAccess»

1  {
2      "Version": "1.1",
3      "Statement": [
4          {
5              "Action": [
6                  "kps:domainKeypairs:*",
7                  "ecs:serverKeypairs:*"
8              ],
9              "Effect": "Allow"
10          }
11      ]
12  }

Политика «ELB FullAccess»

1  {
2    "Version": "1.1",
3    "Statement": [
4        {
5            "Action": [
6                "elb:*:*",
7                "vpc:*:get*",
8                "vpc:*:list*",
9                "ecs:*:get*",
10                "ecs:*:list*"
11            ],
12            "Effect": "Allow"
13        }
14    ]
15  }