

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Configuración y ejecución de Amazon EKS Anywhere en dispositivos Snowball Edge
<a name="eksa-configuration"></a>

Siga estos procedimientos para configurar e iniciar Amazon EKS Anywhere en sus dispositivos Snowball Edge. A continuación, para configurar Amazon EKS Anywhere de forma que funcione en dispositivos desconectados, debe realizar algunos procedimientos adicionales antes de desconectar esos dispositivos de la red externa. Para obtener más información, consulte [Configuración de Amazon EKS Anywhere on AWS Snow para un funcionamiento desconectado](configure-disconnected.md).

**Topics**
+ [Configuración inicial para Amazon EKS Anywhere en Snowball Edge](#initial-setup)
+ [Configuración y ejecución automáticas de Amazon EKS Anywhere en dispositivos Snowball Edge](#auto-eksa-configuration)
+ [Configuración y ejecución manuales de Amazon EKS Anywhere en dispositivos Snowball Edge](#manual-eksa-configuration)

## Configuración inicial para Amazon EKS Anywhere en Snowball Edge
<a name="initial-setup"></a>

Para realizar la configuración inicial en cada dispositivo Snowball Edge debe conectar el dispositivo a la red local, descargar el cliente de Snowball Edge, obtener las credenciales y desbloquear el dispositivo.

**Realización de la configuración inicial**

1. Descargue e instale el cliente de Snowball Edge. Para obtener más información, consulte [Descarga e instalación del cliente de Snowball Edge](using-client-commands.md#download-the-client).

1. Conecte el dispositivo a la red local. Para obtener más información, consulte [Conexión de un Snowball Edge a la red local](getting-started.md#getting-started-connect).

1. Obtenga las credenciales para desbloquear el dispositivo. Para obtener más información, consulte [Obtener credenciales para acceder a Snowball Edge](getting-started.md#get-credentials).

1. Desbloquee el dispositivo. Para obtener más información, consulte [Desbloqueo del dispositivo Snowball Edge](unlockdevice.md). También puede usar una herramienta de script en lugar de desbloquear los dispositivos manualmente. Consulte [Desbloqueo de dispositivos](https://github.com/aws-samples/aws-snow-tools-for-eks-anywhere/tree/main/setup-tools#Unlock-devices).

## Configuración y ejecución automáticas de Amazon EKS Anywhere en dispositivos Snowball Edge
<a name="auto-eksa-configuration"></a>

Puede utilizar herramientas de script de ejemplo para configurar el entorno y ejecutar una instancia de administración de Amazon EKS Anywhere o bien puede hacerlo manualmente. Para usar las herramientas de script, consulte [Desbloqueo de dispositivos y configuración del entorno para Amazon EKS Anywhere](https://github.com/aws-samples/aws-snow-tools-for-eks-anywhere/tree/main/setup-tools#Unlock-devices-and-setup-envorinment-for-EKS-Anywhere). Si una vez configurado el entorno y cuando la instancia de administración de Amazon EKS Anywhere está en ejecución necesita configurar Amazon EKS Anywhere para que funcione en el dispositivo Snowball Edge mientras está desconectado de la red, consulte [Configuración de Amazon EKS Anywhere on AWS Snow para un funcionamiento desconectado](configure-disconnected.md). De lo contrario, consulte [Creación y mantenimiento de clústeres en dispositivos Snowball Edge](maintain-eks-a-clusters-snow.md).

Para configurar manualmente el entorno y ejecutar una instancia de administración de Amazon EKS Anywhere, consulte [Configuración y ejecución manuales de Amazon EKS Anywhere en dispositivos Snowball Edge](#manual-eksa-configuration).

## Configuración y ejecución manuales de Amazon EKS Anywhere en dispositivos Snowball Edge
<a name="manual-eksa-configuration"></a>

Antes de configurar Amazon EKS Anywhere en un dispositivo Snowball Edge, configure un perfil para el cliente de Snowball Edge. Para obtener más información, consulte [Configuración y uso del cliente de Snowball Edge](using-client-commands.md).

**Topics**
+ [Creación de un usuario local de IAM para Amazon EKS Anywhere](#create-role)
+ [(Opcional) Cree e importe una clave de Secure Shell en un Snowball Edge](#create-ssh-key)
+ [Ejecute una instancia de administración de Amazon EKS Anywhere en un Snowball Edge y transfiérale los archivos de credenciales y certificados](#start-config-eksa-admin-instance)

### Creación de un usuario local de IAM para Amazon EKS Anywhere
<a name="create-role"></a>

Para seguir las prácticas recomendadas de seguridad, cree un usuario de IAM local para Amazon EKS Anywhere en el dispositivo Snowball Edge. Para hacerlo de forma manual, utilice los siguientes procedimientos.

**nota**  
Debe hacerlo para cada dispositivo Snowball Edge que utilice.

#### Crear un usuario local en Snowball Edge
<a name="create-eksa-iam-user"></a>

Utilice el comando `create-user` para crear el usuario de IAM de Amazon EKS Anywhere.

```
aws iam create-user --user-name user-name --endpoint http://snowball-ip:6078 --profile profile-name
    {
        "User": {
            "Path": "/",
            "UserName": "eks-a-user",
            "UserId": "AIDACKCEVSQ6C2EXAMPLE",
            "Arn": "arn:aws:iam::123456789012:user/eks-a-user",
            "CreateDate": "2022-04-06T00:13:35.665000+00:00"
        }
    }
```

#### Cree una política para el usuario local en Snowball Edge
<a name="create-eksa-iam-user-policy"></a>

Cree un documento de política, utilícelo para crear una política de IAM y asocie esa política al usuario local de Amazon EKS Anywhere.

**Cómo crear un documento de política y asociarlo al usuario local de Amazon EKS Anywhere**

1. Cree un documento de política y guárdelo en su equipo. Copie al documento la política que se muestra a continuación.

------
#### [ JSON ]

****  

   ```
   {
     "Version": "2012-10-17",
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "snowball-device:DescribeDevice",
           "snowball-device:CreateDirectNetworkInterface",
           "snowball-device:DeleteDirectNetworkInterface",
           "snowball-device:DescribeDirectNetworkInterfaces",
           "snowball-device:DescribeDeviceSoftware"
         ],
         "Resource": ["*"]
       },
       {
         "Effect": "Allow",
         "Action": [
           "ec2:RunInstances",
           "ec2:DescribeInstances",
           "ec2:TerminateInstances",
           "ec2:ImportKeyPair",
           "ec2:DescribeKeyPairs",
           "ec2:DescribeInstanceTypes",
           "ec2:DescribeImages",
           "ec2:DeleteTags"
         ],
         "Resource": ["*"]
       }
     ]
   }
   ```

------

1. Utilice el comando `create-policy` para crear una política de IAM basada en el documento de política. El valor del parámetro `--policy-document` debe usar la ruta absoluta al archivo de política. Por ejemplo, `file:///home/user/policy-name.json`

   ```
   aws iam create-policy --policy-name policy-name --policy-document file:///home/user/policy-name.json --endpoint http://snowball-ip:6078 --profile profile-name
   {
       "Policy": {
           "PolicyName": "policy-name",
           "PolicyId": "ANPACEMGEZDGNBVGY3TQOJQGEZAAAABP76TE5MKAAAABCCOTR2IJ43NBTJRZBU",
           "Arn": "arn:aws:iam::123456789012:policy/policy-name",
           "Path": "/",
           "DefaultVersionId": "v1",
           "AttachmentCount": 0,
           "IsAttachable": true,
           "CreateDate": "2022-04-06T04:46:56.907000+00:00",
           "UpdateDate": "2022-04-06T04:46:56.907000+00:00"
       }
   }
   ```

1. Utilice el comando `attach-user-policy` para asociar la política de IAM al usuario local de Amazon EKS Anywhere.

   ```
   aws iam attach-user-policy --policy-arn policy-arn --user-name user-name --endpoint http://snowball-ip:6078 --profile profile-name     
   ```

#### Cree una clave de acceso y un archivo de credenciales en Snowball Edge
<a name="create-eksa-iam-user-access-key"></a>

Cree una clave de acceso para el usuario local de IAM de Amazon EKS Anywhere. A continuación, cree un archivo de credenciales e incluya en él los valores de `AccessKeyId` y `SecretAccessKey` generados para el usuario local. La instancia de administración de Amazon EKS Anywhere utilizará el archivo de credenciales más adelante.

1. Utilice el comando `create-access-key` para crear una clave de acceso para el usuario local de Amazon EKS Anywhere.

   ```
   aws iam create-access-key --user-name user-name --endpoint http://snowball-ip:6078 --profile profile-name
       {
           "AccessKey": {
               "UserName": "eks-a-user",
               "AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
               "Status": "Active",
               "SecretAccessKey": "RTT/wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
               "CreateDate": "2022-04-06T04:23:46.139000+00:00"
           }
       }
   ```

1. Cree un archivo de credenciales. Guarde en él los valores de `AccessKeyId` y `SecretAccessKey` en el siguiente formato.

   ```
   [snowball-ip] 
   aws_access_key_id = ABCDEFGHIJKLMNOPQR2T
   aws_secret_access_key = AfSD7sYz/TBZtzkReBl6PuuISzJ2WtNkeePw+nNzJ
   region = snow
   ```
**nota**  
Si está trabajando con varios dispositivos Snowball Edge, el orden de las credenciales en el archivo no importa, pero las credenciales de todos los dispositivos deben estar en un solo archivo.

#### Cree un archivo de certificados para la instancia de administración en Snowball Edge
<a name="create-credentials-for-admin-instance"></a>

La instancia de administración de Amazon EKS Anywhere necesita los certificados de los dispositivos Snowball Edge para poder ejecutarse en ellos. Cree un archivo de certificados que contenga el certificado para obtener acceso a los dispositivos Snowball Edge que la instancia de administración de Amazon EKS Anywhere usará más adelante.

**Creación de un archivo de certificados**

1. Utilice el comando `list-certificates` para obtener certificados para cada dispositivo Snowball Edge que vaya a utilizar.

   ```
   PATH_TO_Snowball_Edge_CLIENT/bin/snowballEdge list-certificates --endpoint https://snowball-ip --manifest-file path-to-manifest-file --unlock-code unlock-code
   {
     "Certificates" : [ {
       "CertificateArn" : "arn:aws:snowball-device:::certificate/xxx",
       "SubjectAlternativeNames" : [ "ID:JID-xxx" ]
     } ]
   }
   ```

1. Utilice el valor de `CertificateArn` como valor para el parámetro `--certificate-arn` del comando `get-certificate`. 

   ```
   PATH_TO_Snowball_Edge_CLIENT/bin/snowballEdge get-certificate --certificate-arn ARN --endpoint https://snowball-ip --manifest-file path-to-manifest-file --unlock-code unlock-code            
   ```

1. Cree un archivo de certificados de los dispositivos. Coloque el resultado de `get-certificate` en el archivo de certificados. A continuación se muestra un ejemplo de cómo guardar la salida.
**nota**  
Si está trabajando con varios dispositivos Snowball Edge, el orden de las credenciales en el archivo no importa, pero las credenciales de todos los dispositivos deben estar en un solo archivo.

   ```
   -----BEGIN CERTIFICATE-----
   ZWtzYSBzbm93IHRlc3QgY2VydGlmaWNhdGUgZWtzYSBzbm93IHRlc3QgY2VydGlm  
   aWNhdGVla3NhIHNub3cgdGVzdCBjZXJ0aWZpY2F0ZWVrc2Egc25vdyB0ZXN0IGNl  
   cnRpZmljYXRlZWtzYSBzbm93IHRlc3QgY2VydGlmaWNhdGVla3NhIHNub3cgdGVz  
   dCBjZXJ0aWZpY2F0ZQMIIDXDCCAkSgAwIBAgIJAISM0nTVmbj+MA0GCSqGSIb3DQ  
   ...                                                               
   -----END CERTIFICATE-----
   ```

1. Repita el procedimiento [Creación de un usuario local de IAM para Amazon EKS Anywhere](#create-role) para crear un usuario local de IAM para Amazon EKS Anywhere en todos los dispositivos Snowball Edge.

### (Opcional) Cree e importe una clave de Secure Shell en un Snowball Edge
<a name="create-ssh-key"></a>

Utilice este procedimiento opcional para crear una clave Secure Shell (SSH) a fin de obtener acceso a todas las instancias de nodo de Amazon EKS Anywhere e importar la clave pública en todos los dispositivos Snowball Edge. Guarde y proteja este archivo de clave.

Si omite este procedimiento, Amazon EKS Anywhere creará e importará una clave SSH automáticamente cuando sea necesario. Esta clave se almacenará en la instancia de administración en `${PWD}/${CLUSTER_NAME}/eks-a-id_rsa`.

**Creación de una clave SSH e importación a la instancia Amazon EKS Anywhere**

1. Utilice el comando `ssh-keygen` para generar una clave SSH.

   ```
   ssh-keygen -t rsa -C "key-name" -f path-to-key-file
   ```

1. Utilice el comando `import-key-pair` para importar la clave del equipo al dispositivo Snowball Edge.
**nota**  
El valor del parámetro `key-name` debe ser el mismo al importar la clave a todos los dispositivos.

   ```
   aws ec2 import-key-pair --key-name key-name --public-key-material fileb:///path/to/key-file --endpoint http://snowball-ip:8008 --profile profile-name 
   {
       "KeyFingerprint": "5b:0c:fd:e1:a0:69:05:4c:aa:43:f3:3b:3e:04:7f:51",
       "KeyName": "default",
       "KeyPairId": "s.key-85edb5d820c92a6f8"
   }
   ```

### Ejecute una instancia de administración de Amazon EKS Anywhere en un Snowball Edge y transfiérale los archivos de credenciales y certificados
<a name="start-config-eksa-admin-instance"></a>

#### Ejecute una instancia de administración de Amazon EKS Anywhere en un Snowball Edge
<a name="start-admin-instance"></a>

Siga este procedimiento para ejecutar manualmente una instancia de administración de Amazon EKS Anywhere, configurar una interfaz de red virtual (VNI) para la instancia de administración, comprobar el estado de la instancia, crear una clave SSH y conectarse a la instancia de administración con ella. Puede utilizar una herramienta de script de ejemplo para automatizar la creación de una instancia de administración de Amazon EKS Anywhere y la transferencia de archivos de credenciales y certificados a esta instancia. Consulte [Creación de una instancia de administración de Amazon EKS Anywhere](https://github.com/aws-samples/aws-snow-tools-for-eks-anywhere/tree/main/setup-tools#Create-EKS-Anywhere-admin-instance). Cuando la herramienta de script finaliza, puede obtener acceso a la instancia mediante ssh y crear clústeres; para ello, consulte [Creación y mantenimiento de clústeres en dispositivos Snowball Edge](maintain-eks-a-clusters-snow.md). Si desea configurar la instancia de Amazon EKS Anywhere manualmente, siga estos pasos.

**nota**  
Si está utilizando más de un dispositivo Snowball Edge para aprovisionar el clúster, puede lanzar una instancia de administración de Amazon EKS Anywhere en cualquiera de los dispositivos Snowball Edge.

**Ejecución de una instancia de administración de Amazon EKS Anywhere**

1. Utilice el comando `create-key-pair` para crear una clave SSH para la instancia de administración de Amazon EKS Anywhere. El comando guarda la clave en `$PWD/key-file-name`.

   ```
   aws ec2 create-key-pair --key-name key-name --query 'KeyMaterial' --output text --endpoint http://snowball ip:8008 > key-file-name --profile profile-name
   ```

1. Utilice el comando `describe-images` para buscar en la salida el nombre de la imagen que comienza por `eks-anywhere-admin`.

   ```
   aws ec2 describe-images --endpoint http://snowball-ip:8008 --profile profile-name
   ```

1. Utilice el comando `run-instance` para iniciar una instancia eks-a admin con la imagen de administración de Amazon EKS Anywhere. 

   ```
   aws ec2 run-instances --image-id eks-a-admin-image-id --key-name key-name --instance-type sbe-c.xlarge --endpoint http://snowball-ip:8008 --profile profile-name
   ```

1. Utilice el comando `describe-instances` para comprobar el estado de la instancia de Amazon EKS Anywhere. Espere hasta que el comando indique que el estado de la instancia es `running` antes de continuar.

   ```
   aws ec2 describe-instances --instance-id instance-id --endpoint http://snowball-ip:8008 --profile profile-name
   ```

1. Examine la salida del comando `describe-device` y anote el valor de `PhysicalNetworkInterfaceId` de la interfaz de red física que está conectada a la red. Lo utilizará para crear una VNI.

   ```
    
   PATH_TO_Snowball_Edge_CLIENT/bin/snowballEdge describe-device --endpoint https://snowball-ip --manifest-file path-to-manifest-file --unlock-code unlock-code
   ```

1. Cree una VNI para la instancia de administración de Amazon EKS Anywhere. Utilice el valor de `PhysicalNetworkInterfaceId` como valor del parámetro `physical-network-interface-id`.

   ```
   PATH_TO_Snowball_Edge_CLIENT/bin/snowballEdge create-virtual-network-interface --ip-address-assignment dhcp --physical-network-interface-id PNI --endpoint https://snowball-ip --manifest-file path-to-manifest-file --unlock-code unlock-code
   ```

1. Utilice el valor de `IpAddress` como valor del parámetro `public-ip` del comando `associate-address` para asociar la dirección pública a la instancia de administración de Amazon EKS Anywhere.

   ```
   aws ec2 associate-address --instance-id instance-id --public-ip VNI-IP --endpoint http://snowball-ip:8008 --profile profile-name 
   ```

1. Conéctese a la instancia de administración de Amazon EKS Anywhere mediante SSH.

   ```
   ssh -i path-to-key ec2-user@VNI-IP      
   ```

#### Transfiera los archivos de certificados y credenciales a la instancia de administración de Snowball Edge
<a name="transfer-cred-cert-files"></a>

Cuando la instancia de administración de Amazon EKS Anywhere esté en ejecución, transfiera las credenciales y los certificados de los dispositivos Snowball Edge a la instancia de administración. Ejecute el comando siguiente desde el mismo directorio en el que guardó los archivos de credenciales y certificados en los procedimientos [Cree una clave de acceso y un archivo de credenciales en Snowball Edge](#create-eksa-iam-user-access-key) y [Cree un archivo de certificados para la instancia de administración en Snowball Edge](#create-credentials-for-admin-instance).

```
scp -i path-to-key path-to-credentials-file path-to-certificates-file ec2-user@eks-admin-instance-ip:~        
```

Compruebe el contenido de los archivos en la instancia de administración de Amazon EKS Anywhere. A continuación se muestran ejemplos de los archivos de credenciales y certificados.

```
[192.168.1.1] 
aws_access_key_id = EMGEZDGNBVGY3TQOJQGEZB5ULEAAIWHWUJDXEXAMPLE 
aws_secret_access_key = AUHpqjO0GZQHEYXDbN0neLNlfR0gEXAMPLE 
region = snow 

[192.168.1.2] 
aws_access_key_id = EMGEZDGNBVGY3TQOJQGEZG5O7F3FJUCMYRMI4KPIEXAMPLE 
aws_secret_access_key = kY4Cl8+RJAwq/bu28Y8fUJepwqhDEXAMPLE 
region = snow
```

```
-----BEGIN CERTIFICATE-----                                      
ZWtzYSBzbm93IHRlc3QgY2VydGlmaWNhdGUgZWtzYSBzbm93IHRlc3QgY2VydGlm  
aWNhdGVla3NhIHNub3cgdGVzdCBjZXJ0aWZpY2F0ZWVrc2Egc25vdyB0ZXN0IGNl  
cnRpZmljYXRlZWtzYSBzbm93IHRlc3QgY2VydGlmaWNhdGVla3NhIHNub3cgdGVz  
dCBjZXJ0aWZpY2F0ZQMIIDXDCCAkSgAwIBAgIJAISM0nTVmbj+MA0GCSqGSIb3DQ  
...                                                               
-----END CERTIFICATE-----                                         

-----BEGIN CERTIFICATE-----                                       
KJ0FPl2PAYPEjxr81/PoCXfZeARBzN9WLUH5yz1ta+sYUJouzhzWuLJYA1xqcCPY  
mhVlkRsN4hVdlBNRnCCpRF766yjdJeibKVzXQxoXoZBjrOkuGwqRy3d3ndjK77h4  
OR5Fv9mjGf7CjcaSjk/4iwmZvRSaQacb0YG5GVeb4mfUAuVtuFoMeYfnAgMBAAGj  
azBpMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFL/bRcnBRuSM5+FcYFa8HfIBomdF  
...                                                              
-----END CERTIFICATE-----
```