Al usar AWS re:Post, aceptas las AWS re:Post Términos de uso

¿Por qué no puedo generar un archivo kubeconfig para mi clúster de Amazon EKS?

3 minutos de lectura
0

Se muestra un error AccessDeniedException cuando intento generar un archivo kubeconfig para un clúster de Amazon Elastic Kubernetes Service (Amazon EKS).

Breve descripción

Debe tener el permiso para utilizar la acción de la API eks:DescribeCluster con el clúster para generar un archivo kubeconfig para un clúster de Amazon EKS. Para obtener el permiso, asocie una política de AWS Identity and Access Management (IAM) a un usuario de IAM.

Solución

Para asociar una política de IAM a un usuario, siga estos pasos:

  1. Abra la consola de IAM. A continuación, en el panel de navegación, elija Usuarios o Roles.

  2. Seleccione el nombre del usuario o del rol en el que desee insertar una política.

  3. En la pestaña Permisos, elija Añadir política insertada.

  4. Elija la pestaña JSON.

  5. Utilice un editor de texto para reemplazar el código por la siguiente política de IAM:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "eks:DescribeCluster"
          ],
          "Resource": "*"
        }
      ]
    }
  6. Elija Revisar la política.

  7. En Nombre, introduzca un nombre para la política. Por ejemplo: eks_update-kubeconfig.

  8. Seleccione Crear política.
    Nota: Si ha impuesto la autenticación multifactor (MFA) en el caso de los usuarios de IAM que utilicen la Interfaz de la línea de comandos de AWS (AWS CLI), antes de completar el siguiente paso, debe autenticarse con MFA. El mensaje Denegación explícita indica que, si no se supera la MFA, una política de IAM denegará las acciones:

    {  "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "BlockMostAccessUnlessSignedInWithMFA",
          "Effect": "Deny",
          "NotAction": [
            "iam:CreateVirtualMFADevice",
            "iam:EnableMFADevice",
            "iam:ListMFADevices",
            "iam:ListUsers",
            "iam:ListVirtualMFADevices",
            "iam:ResyncMFADevice",
            "sts:GetSessionToken"
          ],
          "Resource": "*",
          "Condition": {
            "BoolIfExists": {
              "aws:MultiFactorAuthPresent": "false"
            }
          }
        }
      ]
    }

    Dado que utiliza un dispositivo de MFA, debe utilizar un token de MFA para autenticar el acceso a los recursos de AWS con la AWS CLI. Siga los pasos del artículo ¿Cómo utilizo un token MFA para autenticar el acceso a mis recursos de AWS a través de AWS CLI? A continuación, ejecute el comando sts get-session-token de la AWS CLI. Sustituya arn-of-the-mfa-device por el ARN de su dispositivo de MFA y code-from-token por el código de su token:

    $ aws sts get-session-token --serial-number arn-of-the-mfa-device --token-code code-from-token

    Puede usar credenciales temporales mediante la exportación de los valores a variables de entorno.

    Por ejemplo:

    $ export AWS_ACCESS_KEY_ID=example-access-key-as-in-previous-output$ export AWS_SECRET_ACCESS_KEY=example-secret-access-key-as-in-previous-output$ export AWS_SESSION_TOKEN=example-session-token-as-in-previous-output
  9. Ejecute el comando update-kubeconfig y confirme si actualiza el archivo config en ~/.kube/config. Sustituya region-code por el código de su región de AWS y cluster_name por el nombre de su clúster:

    aws eks --region region-code update-kubeconfig --name cluster_name
OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año