Назад | Перейти на главную страницу

Kubernetes с kops в AWS - как привязать политики IAM к роли IAM, используемой для создания сервисов?

Изучая K8 с помощью Kops в AWS (я думаю, что в зоне AWS все в порядке), я работаю над настройкой простой службы, описанной в этой средней статье: после развертывания службы я получаю ошибку разрешений IAM (отредактированный номер учетной записи & доменное имя):

 Warning  SyncLoadBalancerFailed  19m                  service-controller  Error syncing load balancer: failed to ensure load balancer: Error creating load balancer: "AccessDenied: User: arn:aws:sts::${AWS::Account}:assumed-role/masters.myfirstcluster.kops.${domain_name}/i-08a3ce916f7e03e55 is not authorized to perform: iam:CreateServiceLinkedRole on resource: arn:aws:iam::${AWS::Account}:role/aws-service-role/elasticloadbalancing.amazonaws.com/AWSServiceRoleForElasticLoadBalancing\n\tstatus code: 403, request id: c1a0598a-cd23-4e2a-9fd6-58904cbe76d5"

Роль AWS IAM, созданная двоичным файлом kops masters.myfirstcluster.kops., Который был принят i-08a3ce916f7e03e55, и действительно не имеет политики, разрешающей запросы API. Роль создается двоичным файлом kops при установке.

Есть ли метод kops API для установки необходимой политики для роли, или это необходимо делать через AWS API?

Отвечая на собственный вопрос:

Необходимо было изменить политику, привязанную к главной роли (см. Роли IAM), добавив следующий раздел в spec: ключ kops edit cluster myfirstcluster.kops.${domain_name}:

  additionalPolicies:
    master: |
      [
        {
          "Effect": "Allow",
          "Action": [ "iam:CreateServiceLinkedRole"],
          "Resource": ["*"]
        }
      ]