

Aviso de fin de soporte: el 7 de octubre de 2026, AWS suspenderemos el soporte para AWS IoT Greengrass Version 1. Después del 7 de octubre de 2026, ya no podrá acceder a los AWS IoT Greengrass V1 recursos. Para obtener más información, visita [Migrar desde AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html).

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.

# Despliega los secretos hasta la AWS IoT Greengrass médula
<a name="secrets"></a>

Esta función está disponible para AWS IoT Greengrass Core v1.7 y versiones posteriores.

AWS IoT Greengrass le permite autenticarse con servicios y aplicaciones desde dispositivos Greengrass sin necesidad de codificar contraseñas, tokens u otros secretos.

AWS Secrets Manager es un servicio que puede utilizar para almacenar y gestionar de forma segura sus secretos en la nube. AWS IoT Greengrass extiende Secrets Manager a los dispositivos principales de Greengrass, de modo que sus [conectores](connectors.md) y funciones de Lambda puedan usar secretos locales para interactuar con servicios y aplicaciones. Por ejemplo, el conector de notificaciones de Twilio utiliza un token de autenticación almacenado localmente.

Para integrar un secreto en un grupo de Greengrass, cree un recurso de grupo que haga referencia al secreto de Secrets Manager. Este *recurso de secretos* hace referencia al secreto en la nube por ARN. Para aprender a crear, administrar y utilizar recursos de secretos, consulte [Uso de recursos de secretos](secrets-using.md).

AWS IoT Greengrass cifra sus secretos mientras están en tránsito y en reposo. Durante el despliegue del grupo, AWS IoT Greengrass obtiene el secreto de Secrets Manager y crea una copia local cifrada en el núcleo de Greengrass. Después de rotar los secretos en la nube en Secrets Manager, vuelva a implementar el grupo para propagar los valores actualizados en el núcleo.

En el siguiente diagrama se muestra el proceso general de implementación de un secreto en el núcleo. Los secretos se cifran en reposo y en tránsito.

![\[AWS IoT Greengrass obtiene un secreto AWS Secrets Manager y lo despliega como un recurso secreto en el dispositivo principal, donde está disponible para los conectores y las funciones Lambda.\]](http://docs.aws.amazon.com/es_es/greengrass/v1/developerguide/images/deploy-local-secret.png)


Usarlo AWS IoT Greengrass para almacenar sus secretos de forma local ofrece las siguientes ventajas:
+ **Se desacoplan del código (sin codificar de forma rígida).** Es compatible con las credenciales administradas de manera centralizada y ayuda a proteger la información confidencial para que no se filtre.
+ **Disponible para situaciones sin conexión** Los conectores y las funciones pueden acceder de manera segura al software y a los servicios locales cuando están desconectados de Internet.
+ **Acceso controlado a los secretos.** Solo las funciones y los conectores autorizados en el grupo pueden acceder a los secretos. AWS IoT Greengrass utiliza cifrado de clave privada para proteger los secretos. Los secretos se cifran en reposo y en tránsito. Para obtener más información, consulte [Cifrado de secretos](#secrets-encryption).
+ **Rotación controlada.** Después de rotar los secretos en Secrets Manager, vuelva a implementar el grupo de Greengrass para actualizar las copias locales de los secretos. Para obtener más información, consulte [Creación y administración de secretos](secrets-using.md#secrets-create-manage).
**importante**  
AWS IoT Greengrass no actualiza automáticamente los valores de los secretos locales una vez cambiadas las versiones en la nube. Para actualizar los valores locales, debe volver a implementar el grupo.

## Cifrado de secretos
<a name="secrets-encryption"></a>

AWS IoT Greengrass cifra los secretos en tránsito y en reposo.

**importante**  
Asegúrese de que las funciones de Lambda definidas por el usuario gestionen los secretos de forma segura y no registren ningún dato confidencial almacenado en el secreto. Para obtener más información, consulte [Mitigar los riesgos de registrar y depurar la función de Lambda](https://docs.aws.amazon.com/secretsmanager/latest/userguide/best-practices.html#best-practice_lamda-debug-statements) en la *Guía del usuario de AWS Secrets Manager *. Si bien esta documentación se refiere específicamente a las funciones de rotación, la recomendación también se aplica a las funciones de Lambda de Greengrass.

**Cifrado en tránsito**  
AWS IoT Greengrass utiliza Transport Layer Security (TLS) para cifrar todas las comunicaciones a través de Internet y la red local. De esta forma se protegen los secretos en tránsito, que se producen cuando se recuperan los secretos de Secrets Manager y se implementan en el núcleo. Para ver conjuntos de cifrado TLS compatibles, consulte [Compatibilidad con conjuntos de cifrado TLS](gg-sec.md#gg-cipher-suites).

**Cifrado en reposo**  
AWS IoT Greengrass utiliza la clave privada especificada [`config.json`](gg-core.md#config-json)para cifrar los secretos que se almacenan en el núcleo. Por este motivo, el almacenamiento seguro de la clave privada es fundamental para proteger secretos locales. En el [modelo de responsabilidad AWS compartida](https://aws.amazon.com/compliance/shared-responsibility-model/), es responsabilidad del cliente garantizar el almacenamiento seguro de la clave privada en el dispositivo principal.  
AWS IoT Greengrass admite dos modos de almacenamiento de claves privadas:  
+ Uso de módulos de seguridad de hardware. Para obtener más información, consulte [Integración de la seguridad de hardware](hardware-security.md).
**nota**  
Actualmente, solo AWS IoT Greengrass admite el mecanismo de relleno [PKCS \$11 v1.5](https://tools.ietf.org/html/rfc2313) para el cifrado y descifrado de secretos locales cuando se utilizan claves privadas basadas en hardware. Si sigue las instrucciones del proveedor para generar manualmente claves privadas basadas en hardware, asegúrese de elegir PKCS \$11 v1.5. AWS IoT Greengrass no admite el relleno de cifrado asimétrico óptimo (OAEP).
+ Uso de permisos del sistema de archivos (predeterminado).
La clave privada se utiliza para proteger la clave de datos, que se utiliza para cifrar secretos locales. La clave de datos se rota con cada implementación de grupo.  
El AWS IoT Greengrass núcleo es la única entidad que tiene acceso a la clave privada. Los conectores de Greengrass o las funciones de Lambda afiliados a un recurso de secreto obtienen el valor del secreto del núcleo.

## Requisitos
<a name="secrets-reqs"></a>

Estos son los requisitos para admitir los secretos locales:
+ Debe utilizar AWS IoT Greengrass Core v1.7 o una versión posterior.
+ Para obtener los valores de los secretos locales, las funciones de Lambda definidas por el usuario deben AWS IoT Greengrass usar Core SDK v1.3.0 o una versión posterior.
+ La clave privada utilizada para el cifrado de secretos locales deben especificarse en el archivo de configuración de Greengrass. De forma predeterminada, AWS IoT Greengrass utiliza la clave privada principal almacenada en el sistema de archivos. Para proporcionar su propia clave privada, consulte [Especificación de la clave privada para el cifrado de secretos](#secrets-config-private-key). Solo se admite el tipo de claves RSA.
**nota**  
Actualmente, solo AWS IoT Greengrass admite el mecanismo de relleno [PKCS \$11 v1.5](https://tools.ietf.org/html/rfc2313) para el cifrado y descifrado de secretos locales cuando se utilizan claves privadas basadas en hardware. Si sigue las instrucciones del proveedor para generar manualmente claves privadas basadas en hardware, asegúrese de elegir PKCS \$11 v1.5. AWS IoT Greengrass no admite el relleno de cifrado asimétrico óptimo (OAEP).
+ AWS IoT Greengrass debes tener permiso para obtener tus valores secretos. Esto permite AWS IoT Greengrass obtener los valores durante el despliegue del grupo. Si utilizas el rol de servicio predeterminado de Greengrass, entonces AWS IoT Greengrass ya tienes acceso a secretos con nombres que comienzan por *greengrass* -. Para personalizar el acceso, consulte [Permite obtener valores secretos AWS IoT Greengrass](#secrets-config-service-role).
**nota**  
Le recomendamos que utilice esta convención de nomenclatura para identificar los secretos a los que AWS IoT Greengrass se permite acceder, incluso si personaliza los permisos. La consola utiliza distintos permisos para leer tus datos secretos, por lo que es posible que puedas seleccionar aquellos secretos en la consola que AWS IoT Greengrass no tengas permiso para recuperarlos. El uso de una convención de nomenclatura puede ayudarle a evitar un permiso conflicto, lo que provoca un error de implementación.

## Especificación de la clave privada para el cifrado de secretos
<a name="secrets-config-private-key"></a>

En este procedimiento, debe proporcionar la ruta a una clave privada que se utiliza para el cifrado secreto local. Debe ser una clave RSA con una longitud mínima de 2048 bits. Para obtener más información sobre las claves privadas que se utilizan en el AWS IoT Greengrass núcleo, consulte[AWS IoT Greengrass principios básicos de seguridad](gg-sec.md#gg-principals). 

AWS IoT Greengrass admite dos modos de almacenamiento de claves privadas: basado en hardware o basado en un sistema de archivos (predeterminado). Para obtener más información, consulte [Cifrado de secretos](#secrets-encryption).

**Siga este procedimiento** solo si desea cambiar la configuración predeterminada, que utiliza la clave privada del núcleo en el sistema de archivos. Estos pasos se han redactado partiendo del supuesto de que creó el grupo y el núcleo tal y como se describe en el [módulo 2](module2.md) del tutorial de introducción.

1. Abra el archivo [`config.json`](gg-core.md#config-json) situado en el directorio `/greengrass-root/config`.
**nota**  
*greengrass-root*representa la ruta en la que está instalado el software AWS IoT Greengrass principal en el dispositivo. Normalmente, este es el directorio `/greengrass`.

1. En el objeto `crypto.principals.SecretsManager` de la propiedad `privateKeyPath`, escriba la ruta de la clave privada:
   + Si su clave privada se almacena en el sistema de archivos, especifique la ruta absoluta a la clave. Por ejemplo:

     ```
     "SecretsManager" : {
       "privateKeyPath" : "file:///somepath/hash.private.key"
     }
     ```
   + Si la clave privada se almacena en un módulo de seguridad de hardware (HSM), especifique la ruta con el esquema de URI [RFC 7512 PKCS\$111](https://tools.ietf.org/html/rfc7512). Por ejemplo:

     ```
     "SecretsManager" : {
       "privateKeyPath" : "pkcs11:object=private-key-label;type=private"
     }
     ```

     Para obtener más información, consulte [Configuración de seguridad de hardware para un núcleo AWS IoT Greengrass](hardware-security.md#configure-hardware-security).
**nota**  
Actualmente, solo AWS IoT Greengrass admite el mecanismo de relleno [PKCS \$11 v1.5](https://tools.ietf.org/html/rfc2313) para el cifrado y descifrado de secretos locales cuando se utilizan claves privadas basadas en hardware. Si sigue las instrucciones del proveedor para generar manualmente claves privadas basadas en hardware, asegúrese de elegir PKCS \$11 v1.5. AWS IoT Greengrass no admite el relleno de cifrado asimétrico óptimo (OAEP).

## Permite obtener valores secretos AWS IoT Greengrass
<a name="secrets-config-service-role"></a>

En este procedimiento, añadirá una política en línea al rol de servicio de Greengrass que AWS IoT Greengrass le permitirá obtener los valores de sus secretos.

**Siga este procedimiento solo** si quiere conceder permisos AWS IoT Greengrass personalizados a sus secretos o si su función de servicio de Greengrass no incluye la política `AWSGreengrassResourceAccessRolePolicy` gestionada. `AWSGreengrassResourceAccessRolePolicy`permite el acceso a los secretos cuyos nombres comiencen por *greengrass-*.

1. Ejecute el siguiente comando de la CLI para obtener el ARN del rol de servicio de Greengrass:

   ```
   aws greengrass get-service-role-for-account --region region
   ```

   El ARN que se devuelve contendrá el nombre del rol.

   ```
   {
     "AssociatedAt": "time-stamp",
     "RoleArn": "arn:aws:iam::account-id:role/service-role/role-name"
   }
   ```

   En el siguiente paso usará el ARN o el nombre.

1. Añada una política en línea que permita la acción `secretsmanager:GetSecretValue`. Para obtener instrucciones, consulte [Añadir y eliminar políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) en la *Guía del usuario de IAM*.

   Puede conceder acceso detallado enumerando explícitamente los secretos o usando un esquema de nomenclatura `*`, o bien puede conceder acceso condicional a secretos con control de versiones o etiquetados. Por ejemplo, la siguiente política permite AWS IoT Greengrass leer solo los secretos especificados.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "secretsmanager:GetSecretValue"
               ],
               "Resource": [
               "arn:aws:secretsmanager:us-east-1:123456789012:secret:greengrass-SecretA-abc",
       "arn:aws:secretsmanager:us-east-1:123456789012:secret:greengrass-SecretB-xyz"
               ]
           }
       ]
   }
   ```

------
**nota**  
Si utiliza una AWS KMS clave gestionada por el cliente para cifrar los secretos, su función de servicio de Greengrass también debe permitir la acción. `kms:Decrypt`

Para obtener más información sobre las políticas de IAM para Secrets Manager, consulte [Autenticación y control de acceso para AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html) y [Acciones, recursos y claves de contexto que puede utilizar en una política de IAM o política secreta para AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html) en la *Guía del usuario de AWS Secrets Manager *.

## Véase también
<a name="secrets-seealso"></a>
+ [AWS Secrets Manager¿Qué es?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) en la *Guía AWS Secrets Manager del usuario*
+ [PKCS \$11: Cifrado RSA versión 1.5](https://tools.ietf.org/html/rfc2313)

# Uso de recursos de secretos
<a name="secrets-using"></a>

AWS IoT Greengrass utiliza *recursos secretos* para integrar los secretos de AWS Secrets Manager un grupo de Greengrass. Un recurso de secreto es una referencia a un secreto de Secrets Manager. Para obtener más información, consulte [Despliega los secretos hasta la AWS IoT Greengrass médula](secrets.md).

En el dispositivo AWS IoT Greengrass principal, los conectores y las funciones Lambda pueden usar el recurso secreto para autenticarse con servicios y aplicaciones, sin necesidad de codificar contraseñas, tokens u otras credenciales.

## Creación y administración de secretos
<a name="secrets-create-manage"></a>

En un grupo Greengrass, un recurso secreto hace referencia al ARN de un secreto de Secrets Manager. Cuando el recurso de secretos se implementa en el núcleo, el valor del secreto se cifra y se pone a disposición de los conectores afiliados y las funciones Lambda. Para obtener más información, consulte [Cifrado de secretos](secrets.md#secrets-encryption).

Puede utilizar Secrets Manager para crear y administrar las versiones en la nube de los secretos. Se utiliza AWS IoT Greengrass para crear, administrar e implementar sus recursos secretos.

**importante**  
Le recomendamos que siga la práctica recomendada de rotación de secretos en Secrets Manager. A continuación, implemente el grupo de Greengrass para actualizar las copias locales de los secretos. Para obtener más información, consulta [Cómo cambiar tus AWS Secrets Manager secretos](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html) en la *Guía del AWS Secrets Manager usuario*.

**Para poner un secreto a disposición del núcleo de Greengrass, siga estos pasos:**

1. Cree un secreto en Secrets Manager. Esta es la versión en la nube del secreto, que se almacena y administra de forma centralizada en Secrets Manager. Entre las tareas de administración se incluyen la rotación de valores de secretos y la aplicación de políticas de recursos.

1. Crea un recurso secreto en AWS IoT Greengrass. Se trata de un tipo de recurso de grupo que hace referencia al secreto en la nube por ARN. Solo puede hacer referencia a un secreto por grupo.

1. Configure el conector o la función de Lambda. Debe afiliar el recurso con un conector o una función especificando los parámetros o las propiedades correspondientes. Esto les permite obtener el valor del recurso de secretos implementado localmente. Para obtener más información, consulte [Uso de secretos locales en conectores y funciones de Lambda](#secrets-access).

1. Implemente el grupo de Greengrass. Durante la implementación, AWS IoT Greengrass recupera el valor del secreto en la nube y crea secreta (o actualiza) el secreto locales en el núcleo.

Secrets Manager registra un evento AWS CloudTrail cada vez que AWS IoT Greengrass recupera un valor secreto. AWS IoT Greengrass no registra ningún evento relacionado con la implementación o el uso de secretos locales. Para obtener más información sobre el registro de Secrets Manager, consulte [Supervisar el uso de sus AWS Secrets Manager secretos](https://docs.aws.amazon.com/secretsmanager/latest/userguide/monitoring.html) en la *Guía del AWS Secrets Manager usuario*.

### Incluir etiquetas de ensayo en recursos de secretos
<a name="secret-resources-labels"></a>

Secrets Manager utiliza etiquetas de ensayo para especificar las versiones de un valor de secretos. Las etiquetas de preparación pueden estar definidas por el sistema o definidas por el usuario. Secrets Manager asigna la etiqueta `AWSCURRENT` a la versión más reciente del valor del secreto. Las etiquetas de ensayo se utilizan habitualmente para administrar la rotación de secretos. Para obtener más información acerca del control de versiones de Secrets Manager, consulte los [Términos y conceptos clave de AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/terms-concepts.html) en la *Guía del usuario de AWS Secrets Manager *.

Los recursos de secretos siempre incluyen la etiqueta de ensayo `AWSCURRENT` y también pueden incluir otras etiquetas de ensayo si las requiere una función de Lambda o un conector. Durante el despliegue del grupo, AWS IoT Greengrass recupera los valores de las etiquetas de almacenamiento provisional a las que se hace referencia en el grupo y, a continuación, crea o actualiza los valores correspondientes en el núcleo.

### Creación y administración de recursos de secretos (consola)
<a name="create-manage-secret-resource-console"></a>

#### Creación de recursos de secretos (consola)
<a name="create-manage-secret-resource-console-create"></a>

En la AWS IoT Greengrass consola, los recursos secretos se crean y administran desde la pestaña **Secretos** de la página de **recursos** del grupo. Para ver tutoriales que crean un recurso de secretos y lo añaden a un grupo, consulte [Cómo crear un recurso de secreto (consola)](secrets-console.md) y [Introducción a los conectores de Greengrass (consola)](connectors-console.md).

![\[Un recurso de secretos en la pestaña Secretos de la página Recursos.\]](http://docs.aws.amazon.com/es_es/greengrass/v1/developerguide/images/connectors/secret-resource-twilio-auth-token.png)


**nota**  
Como alternativa, la consola le permite crear un secreto y un recurso secreto al configurar un conector o una función de Lambda. Puede hacerlo desde la página **Configurar parámetros** del conector o desde la página **Recursos** de la función de Lambda.

#### Administración de recursos de secretos (consola)
<a name="create-manage-secret-resource-console-manage"></a>

Las tareas de administración de los recursos de secretos de su grupo de Greengrass incluyen añadir recursos de secretos al grupo, eliminar recursos de secretos del grupo y cambiar el conjunto de [etiquetas de preparación](#secret-resources-labels) que se incluyen en un recurso de secretos.

Si apunta a otro secreto de Secrets Manager, también debe editar los conectores que utilicen el secreto:

1. En la página de configuración del grupo, elija **Connectors (Conectores)**.

1. En el menú contextual del conector, elija **Edit (Editar)**.

1. La página **Edit parameters (Editar parámetros)** muestra un mensaje para informarle de que el ARN de secretos ha cambiado. Elija **Guardar** para confirmar el cambio.

Si elimina un secreto en Secrets Manager, elimine el recurso de secreto correspondiente del grupo y de los conectores y funciones de Lambda que hacen referencia a él. De lo contrario, durante la implementación del grupo, AWS IoT Greengrass devuelve un error que indica que no se puede encontrar el secreto. Actualice también su código de función de Lambda según sea necesario.

### Creación y administración de recursos de secretos (CLI)
<a name="create-manage-secret-resource-cli"></a>

#### Creación de recursos de secretos (CLI)
<a name="create-manage-secret-resource-cli-create"></a>

En la AWS IoT Greengrass API, un secreto es un tipo de recurso grupal. En el siguiente ejemplo se crea una definición de recursos con una versión inicial que incluye un recurso de secretos llamado "`MySecretResource`". Para ver un tutorial que crea un recurso de secretos y lo añade a una versión de grupo, consulte [Introducción a los conectores de Greengrass (CLI)](connectors-cli.md).

El recurso de secretos hace referencia al ARN del secreto de Secrets Manager correspondiente e incluye dos etiquetas de ensayo, además de `AWSCURRENT`, que siempre se incluye.

```
aws greengrass create-resource-definition --name MyGreengrassResources --initial-version '{
    "Resources": [
        {
            "Id": "my-resource-id",
            "Name": "MySecretResource",
            "ResourceDataContainer": {
                "SecretsManagerSecretResourceData": {
                    "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:greengrass-SomeSecret-KUj89s",
                    "AdditionalStagingLabelsToDownload": [
                        "Label1",
                        "Label2"
                    ]
                }
            }
        }
    ]
}'
```

#### Administración de recursos de secretos (CLI)
<a name="create-manage-secret-resource-cli-manage"></a>

Las tareas de administración de los recursos de secretos de su grupo de Greengrass incluyen añadir recursos de secretos al grupo, eliminar recursos de secretos del grupo y cambiar el conjunto de [etiquetas de preparación](#secret-resources-labels) que se incluyen en un recurso de secretos.

En la AWS IoT Greengrass API, estos cambios se implementan mediante versiones.

La AWS IoT Greengrass API usa versiones para administrar los grupos. Las versiones son inmutables, por lo que para añadir o cambiar los componentes del grupo (por ejemplo, los dispositivos cliente, las funciones y los recursos del grupo), debe crear versiones de los componentes nuevos o actualizados. A continuación, cree e implemente una versión de grupo que contenga la versión de destino de cada componente. Para obtener más información acerca de los grupos, consulte [AWS IoT Greengrass grupos](what-is-gg.md#gg-group).

Por ejemplo, para cambiar el conjunto de etiquetas de ensayo de un recurso de secretos, siga estos pasos:

1. Cree una definición de recursos que contenga el recurso de secretos actualizado. En el siguiente ejemplo se añade una tercera etiqueta de ensayo el recurso de secretas de la sección anterior.
**nota**  
Para añadir más recursos a la versión, inclúyalos en la matriz `Resources`.

   ```
   aws greengrass create-resource-definition --name MyGreengrassResources --initial-version '{
       "Resources": [
           {
               "Id": "my-resource-id",
               "Name": "MySecretResource",
               "ResourceDataContainer": {
                   "SecretsManagerSecretResourceData": {
                       "ARN": "arn:aws:secretsmanager:us-west-2:123456789012:secret:greengrass-SomeSecret-KUj89s",
                       "AdditionalStagingLabelsToDownload": [
                           "Label1",
                           "Label2",
                           "Label3"
                       ]
                   }
               }
           }
       ]
   }'
   ```

1. Si el ID del recurso de secretos cambia, actualice los conectores y las funciones que utilizan el recurso de secretos. En las nuevas versiones, actualice el parámetro o la propiedad que se corresponde con el ID de recurso. Si el ARN del secreto cambia, también debe actualizar el parámetro correspondiente para los conectores que utilicen el secreto.
**nota**  
El ID de recurso es un identificador arbitrario que proporciona el cliente.

1. Crear una versión de grupo que contenga la versión de destino de cada componente que desea enviar al núcleo.

1. Implemente la versión de grupo.

Para ver un tutorial que muestre cómo crear e implementar recursos de secretos, conectores y funciones, consulte [Introducción a los conectores de Greengrass (CLI)](connectors-cli.md).

Si elimina un secreto en Secrets Manager, elimine el recurso de secreto correspondiente del grupo y de los conectores y funciones de Lambda que hacen referencia a él. De lo contrario, durante la implementación del grupo, AWS IoT Greengrass devuelve un error que indica que no se puede encontrar el secreto. Actualice también su código de función de Lambda según sea necesario. Puede eliminar un secreto local mediante la implementación de una versión de una definición de recursos que no contenga el recurso de secretos correspondiente.

## Uso de secretos locales en conectores y funciones de Lambda
<a name="secrets-access"></a>

Los conectores de Greengrass y las funciones de Lambda utilizan secretos locales para interactuar con servicios y aplicaciones. El valor `AWSCURRENT` se utiliza de forma predeterminada, pero los valores de otras [etiquetas de ensayo](#secret-resources-labels) incluido en el recurso de secretos también están disponibles.

Los conectores y las funciones deben configurarse antes de que puedan acceder a secretos locales. De este modo, el recurso de secretos se afilia con el conector o la función.

**Connectors**  
Si un conector requiere acceso a un secreto local, proporciona parámetros que configura con la información que necesita para acceder al secreto.  
+ Para obtener información sobre cómo hacerlo en la AWS IoT Greengrass consola, consulte[Introducción a los conectores de Greengrass (consola)](connectors-console.md).
+ Para obtener información sobre cómo hacerlo con la AWS IoT Greengrass CLI, consulte[Introducción a los conectores de Greengrass (CLI)](connectors-cli.md).
Para obtener información acerca de los requisitos de conectores individuales, consulte [conectores de Greengrass proporcionados por AWS](connectors-list.md).  
La lógica para acceder y utilizar el secreto está integrada en el conector.

**Funciones de Lambda**  
Para permitir que una función de Lambda acceda a un secreto local, debe configurar las propiedades de la función.  
+ Para obtener información sobre cómo hacerlo en la AWS IoT Greengrass consola, consulte[Cómo crear un recurso de secreto (consola)](secrets-console.md).
+ Para ello en la AWS IoT Greengrass API, debe proporcionar la siguiente información en la `ResourceAccessPolicies` propiedad.
  + `ResourceId`: el ID del recurso de secretos en el grupo de Greengrass. Se trata del recurso que hace referencia al ARN del secreto de Secrets Manager correspondiente.
  + `Permission`: el tipo de acceso que la función tiene al recurso. Solo el permiso `ro` (solo lectura) es compatible con los recursos de secretos.

  En el siguiente ejemplo, se crea una función de Lambda que puede acceder al recurso de secretos de `MyApiKey`.

  ```
  aws greengrass create-function-definition --name MyGreengrassFunctions --initial-version '{
      "Functions": [
          {
              "Id": "MyLambdaFunction",
              "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:myFunction:1",
              "FunctionConfiguration": {
                  "Pinned": false,
                  "MemorySize": 16384,
                  "Timeout": 10,
                  "Environment": {
                      "ResourceAccessPolicies": [
                          {
                              "ResourceId": "MyApiKey",
                              "Permission": "ro"
                          }                          
                      ],
                      "AccessSysfs": true
                  }
              }
          }
      ]
  }'
  ```

   

  Para acceder a los secretos locales en tiempo de ejecución, las funciones Lambda de Greengrass llaman a la `get_secret_value` función desde el `secretsmanager` cliente del SDK AWS IoT Greengrass principal (versión 1.3.0 o posterior).

  El siguiente ejemplo muestra cómo usar el SDK AWS IoT Greengrass principal para Python para obtener un secreto. Transfiere el nombre del secreto a la función `get_secret_value`. `SecretId` puede ser el nombre o ARN del secreto de Secrets Manager (no el recurso de secreto).

  ```
  import greengrasssdk
  
  secrets_client = greengrasssdk.client("secretsmanager")
  secret_name = "greengrass-MySecret-abc"
  
  
  def function_handler(event, context):
      response = secrets_client.get_secret_value(SecretId=secret_name)
      secret = response.get("SecretString")
  ```

  Para secretos de tipo de texto, la función de Lambda `get_secret_value`devuelve una cadena. Para secretos de tipo binario, devuelve una cadena codificada en base64.
**importante**  
Asegúrese de que las funciones de Lambda definidas por el usuario gestionen los secretos de forma segura y no registren ningún dato confidencial almacenado en el secreto. Para obtener más información, consulte [Mitigar los riesgos de registrar y depurar la función de Lambda](https://docs.aws.amazon.com/secretsmanager/latest/userguide/best-practices.html#best-practice_lamda-debug-statements) en la *Guía del usuario de AWS Secrets Manager *. Si bien esta documentación se refiere específicamente a las funciones de rotación, la recomendación también se aplica a las funciones de Lambda de Greengrass.

  El valor actual del secreto se devuelve de forma predeterminada. Esta es la versión a la que está asociada la etiqueta de ensayo `AWSCURRENT`. Para acceder a una versión diferente, transfiera el nombre de la etiqueta de ensayo correspondiente para el argumento `VersionStage` opcional. Por ejemplo:

  ```
  import greengrasssdk
  
  secrets_client = greengrasssdk.client("secretsmanager")
  secret_name = "greengrass-TestSecret"
  secret_version = "MyTargetLabel"
  
  
  # Get the value of a specific secret version
  def function_handler(event, context):
      response = secrets_client.get_secret_value(
          SecretId=secret_name, VersionStage=secret_version
      )
      secret = response.get("SecretString")
  ```

  Para otra función de ejemplo que llame a `get_secret_value`, consulte [Creación de un paquete de implementación de la función de Lambda](secrets-console.md#secrets-console-create-deployment-package).

# Cómo crear un recurso de secreto (consola)
<a name="secrets-console"></a>

Esta función está disponible para AWS IoT Greengrass Core v1.7 y versiones posteriores.

En este tutorial se muestra cómo utilizar el Consola de administración de AWS para añadir un *recurso secreto* a un grupo de Greengrass. Un recurso secreto es una referencia a un secreto de AWS Secrets Manager. Para obtener más información, consulte [Despliega los secretos hasta la AWS IoT Greengrass médula](secrets.md).

En el dispositivo AWS IoT Greengrass principal, los conectores y las funciones Lambda pueden usar el recurso secreto para autenticarse con servicios y aplicaciones, sin necesidad de codificar contraseñas, tokens u otras credenciales.

En este tutorial, empezará por crear un secreto en la consola. AWS Secrets Manager A continuación, en la consola de AWS IoT Greengrass , añada un recurso secreto a un grupo de Greengrass de la página **Recursos**. Este recurso secreto hace referencia al secreto de Secrets Manager. Posteriormente, asocie un recurso secreto a una función de Lambda, que permite a la función obtener el valor del secreto local.

**nota**  
Como alternativa, la consola le permite crear un secreto y un recurso secreto al configurar un conector o una función de Lambda. Puede hacerlo desde la página **Configurar parámetros** del conector o desde la página **Recursos** de la función de Lambda.  
Solo los conectores que contienen los parámetros de secretos pueden acceder a los secretos. Para obtener un tutorial que muestra la forma en que el conector de notificaciones Twilio utiliza un token de autenticación almacenado localmente, consulte [Introducción a los conectores de Greengrass (consola)](connectors-console.md).

El tutorial contiene los siguientes pasos generales:

1. [Crear un secreto en Secrets Manager](#secrets-console-create-secret)

1. [Agregar un recurso de secreto a un grupo](#secrets-console-create-resource)

1. [Creación de un paquete de implementación de la función de Lambda](#secrets-console-create-deployment-package)

1. [Crear una función de Lambda](#secrets-console-create-function)

1. [Agregar la función al grupo](#secrets-console-create-gg-function)

1. [Asociar el recurso de secreto a la función](#secrets-console-affiliate-gg-function)

1. [Agregar suscripciones al grupo](#secrets-console-create-subscription)

1. [Implementar el grupo](#secrets-console-create-deployment)

1. [Prueba de la función de Lambda](#secrets-console-test-solution)

Completar el tutorial debería tomarle aproximadamente 20 minutos.

## Requisitos previos
<a name="secrets-console-prerequisites"></a>

Para completar este tutorial, se necesita lo siguiente:
+ Un grupo de Greengrass y un núcleo de Greengrass (versión 1.7 o posterior). Para obtener información acerca de cómo crear un núcleo y un grupo de Greengrass, consulte [Empezar con AWS IoT Greengrass](gg-gs.md). El tutorial de introducción también incluye los pasos para instalar el software AWS IoT Greengrass principal.
+ AWS IoT Greengrass debe configurarse para admitir secretos locales. Para obtener más información, consulte [Requisitos de secretos](secrets.md#secrets-reqs).
**nota**  
Este requisito incluye permitir el acceso a sus secretos de Secret Manager. Si utiliza el rol de servicio predeterminado de Greengrass, Greengrass tiene permiso para obtener los valores de los secretos cuyos nombres empiecen por *greengrass-*.
+ Para obtener los valores de los secretos locales, las funciones de Lambda definidas por el usuario deben AWS IoT Greengrass usar Core SDK v1.3.0 o una versión posterior.

## Paso 1: Creación de un secreto de Secrets Manager
<a name="secrets-console-create-secret"></a>

En este paso, utilizará la AWS Secrets Manager consola para crear un secreto.

1. <a name="create-secret-step-signin"></a>Inicie sesión en la [consola de AWS Secrets Manager](https://console.aws.amazon.com/secretsmanager/).
**nota**  
Para obtener más información sobre este proceso, consulte [Paso 1: Crear y almacenar el secreto en AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/tutorials_basic.html) en la *Guía del usuario de AWS Secrets Manager *.

1. <a name="create-secret-step-create"></a>Elija **Almacenar un secreto nuevo**.

1. <a name="create-secret-step-othertype"></a>En **Seleccionar tipo de secreto**, elija **Otro tipo de secreto**.

1. En **Specify the key-value pairs to be stored for this secret (Especificar los pares clave-valor que se almacenarán para este secreto)**:
   + En **Clave**, escriba **test**.
   + En **Valor**, introduzca **abcdefghi**.

1. <a name="create-secret-step-encryption"></a>Mantenga **aws/secretsmanager** seleccionado para la clave de cifrado y, a continuación, seleccione **Siguiente**.
**nota**  
No se te cobrará nada AWS KMS si utilizas la clave AWS gestionada predeterminada que Secrets Manager crea en tu cuenta.

1. En **Secret name (Nombre del secreto)**, escriba **greengrass-TestSecret** y, a continuación, seleccione **Next (Siguiente)**.
**nota**  
De forma predeterminada, el rol de servicio Greengrass permite AWS IoT Greengrass obtener el valor de los secretos con nombres que comienzan por *greengrass* -. Para obtener más información, consulte [requisitos de secretos](secrets.md#secrets-reqs).

1. <a name="create-secret-step-rotation"></a>Este tutorial no requiere rotación, así que elija desactivar la rotación automática y, a continuación, seleccione **Siguiente**.

1. <a name="create-secret-step-review"></a>En la página **Review (Revisar)**, revise los ajustes y, a continuación, seleccione **Store (Almacenar)**.

   A continuación, se crea un recurso de secreto en su grupo de Greengrass que hace referencia al secreto.

## Paso 2: Agregar un recurso de secreto a un grupo de Greengrass
<a name="secrets-console-create-resource"></a>

En este paso, debe configurar un recurso de grupo que hace referencia al secreto de Secrets Manager.

1. <a name="console-gg-groups"></a>En el panel de navegación de la AWS IoT consola, en **Administrar**, expanda **los dispositivos Greengrass** y, a continuación, elija **Grupos (V1)**.

1. <a name="create-secret-resource-step-choosegroup"></a>Elija el grupo al que desee añadir el recurso de secreto.

1. <a name="create-secret-resource-step-secretstab"></a>En la página de configuración del grupo, elija la pestaña **Recursos** y, a continuación, desplácese hacia abajo hasta la sección **Secretos**. La sección **Secretos** muestra los recursos secretos que pertenecen al grupo. Puede añadir, editar y quitar los recursos de secreto de esta sección.
**nota**  
Como alternativa, la consola le permite crear un secreto y un recurso secreto al configurar un conector o una función de Lambda. Puede hacerlo desde la página **Configurar parámetros** del conector o desde la página **Recursos** de la función de Lambda.

1. <a name="create-secret-resource-step-addsecretresource"></a>Seleccione **Añadir** en la sección **Secretos**.

1. En la página **Añadir un recurso secreto**, introduzca **MyTestSecret** el **Nombre del recurso**.

1. En **Secreto**, elija **greengrass-**. TestSecret

1. <a name="create-secret-resource-step-selectlabels"></a>En la sección **Seleccionar etiquetas (opcional)**, la AWSCURRENT etiqueta provisional representa la última versión del secreto. Esta etiqueta siempre está incluida en un recurso de secreto.
**nota**  
Este tutorial solo requiere la AWSCURRENT etiqueta. De forma opcional, puede incluir etiquetas que requieran su función de Lambda o un conector.

1. Seleccione **Add resource** (Añadir recurso).

## Paso 3: Creación de un paquete de implementación de la función de Lambda
<a name="secrets-console-create-deployment-package"></a>

Para crear una función de Lambda, primero debe crear un *paquete de implementación* de funciones de Lambda que contenga el código de la función y las dependencias. Las funciones de Lambda de Greengrass requieren el [SDK de AWS IoT Greengrass Core](lambda-functions.md#lambda-sdks-core) para tareas como la comunicación con los mensajes de MQTT en el entorno principal y el acceso a los secretos locales. En este tutorial se crea una característica de Python para que utilice la versión Python del SDK en el paquete de implementación.

**nota**  
Para obtener los valores de los secretos locales, las funciones de Lambda definidas por el usuario deben AWS IoT Greengrass usar Core SDK v1.3.0 o una versión posterior.

1. <a name="download-ggc-sdk"></a> Desde la página de descargas del [SDK AWS IoT Greengrass principal](what-is-gg.md#gg-core-sdk-download), descarga el SDK AWS IoT Greengrass básico para Python en tu ordenador.

1. <a name="unzip-ggc-sdk"></a>Descomprima el paquete descargado para obtener el SDK. El SDK es la carpeta `greengrasssdk`.

1. Guarde la siguiente función de código de Python en un archivo local llamado "`secret_test.py`".

   ```
   import greengrasssdk
   
   secrets_client = greengrasssdk.client("secretsmanager")
   iot_client = greengrasssdk.client("iot-data")
   secret_name = "greengrass-TestSecret"
   send_topic = "secrets/output"
   
   
   def function_handler(event, context):
       """
       Gets a secret and publishes a message to indicate whether the secret was
       successfully retrieved.
       """
       response = secrets_client.get_secret_value(SecretId=secret_name)
       secret_value = response.get("SecretString")
       message = (
           f"Failed to retrieve secret {secret_name}."
           if secret_value is None
           else f"Successfully retrieved secret {secret_name}."
       )
       iot_client.publish(topic=send_topic, payload=message)
       print("Published: " + message)
   ```

   La función `get_secret_value` admite el nombre o ARN del secreto del Secrets Manager para el valor `SecretId`. En este ejemplo se utiliza el nombre del secreto. Para este secreto de ejemplo, AWS IoT Greengrass devuelve el par clave-valor:. `{"test":"abcdefghi"}`
**importante**  
Asegúrese de que las funciones de Lambda definidas por el usuario gestionen los secretos de forma segura y no registren ningún dato confidencial almacenado en el secreto. Para obtener más información, consulte [Mitigar los riesgos de registrar y depurar la función de Lambda](https://docs.aws.amazon.com/secretsmanager/latest/userguide/best-practices.html#best-practice_lamda-debug-statements) en la *Guía del usuario de AWS Secrets Manager *. Si bien esta documentación se refiere específicamente a las funciones de rotación, la recomendación también se aplica a las funciones de Lambda de Greengrass.

1. Comprima en un archivo ZIP los siguientes elementos en un archivo denominado "`secret_test_python.zip`". Al crear el archivo ZIP, incluya únicamente el código y sus dependencias, no la carpeta donde se encuentran.
   + **secret\$1test.py**. Lógica de la aplicación.
   + **greengrasssdk**. Biblioteca necesaria para todas las funciones de Lambda de Greengrass de Python.

   Este es el paquete de implementación de la función de Lambda.

## Paso 4: Crear una función de Lambda
<a name="secrets-console-create-function"></a>

En este paso, utilizará la AWS Lambda consola para crear una función Lambda y configurarla para que utilice su paquete de despliegue. A continuación, publicará una versión de la característica y creará un alias.

1. Primero, cree la función de Lambda.

   1. <a name="lambda-console-open"></a>En Consola de administración de AWS, elija **Servicios** y abra la AWS Lambda consola.

   1. <a name="lambda-console-create-function"></a>Elija **Crear función**, y, a continuación, elija **Autor desde cero**.

   1. En la sección **Basic information (Información básica)**, utilice los siguientes valores:
      + En **Function name** (Nombre de la característica), introduzca **SecretTest**.
      + En **Runtime** (Tiempo de ejecución), elija **Python 3.7**.
      + En **Permisos**, mantenga la configuración predeterminada. Esto crea un rol de ejecución que otorga permisos Lambda básicos. Este rol no lo usa AWS IoT Greengrass.

   1. <a name="lambda-console-save-function"></a>En la parte inferior de la página, elija **Create function**.

1. A continuación, registre el controlador y cargue el paquete de implementación de la función de Lambda.

   1. <a name="lambda-console-upload"></a>En la pestaña **Código**, en **Código fuente**, seleccione **Cargar desde**. En el menú desplegable, seleccione un **archivo .zip.**  
![\[La carga del menú desplegable con el archivo .zip resaltado.\]](http://docs.aws.amazon.com/es_es/greengrass/v1/developerguide/images/lra-console/upload-deployment-package.png)

   1. Seleccione **Cargar** y, a continuación, elija su paquete de implementación de `secret_test_python.zip`. A continuación, elija **Guardar**.

   1. <a name="lambda-console-runtime-settings-para"></a>En la pestaña **Código** de la función, en **Configuración de tiempo de ejecución**, elija **Editar** y, a continuación, introduzca los siguientes valores.
      + En **Runtime** (Tiempo de ejecución), elija **Python 3.7**.
      + En **Handler (Controlador)**, escriba **secret\$1test.function\$1handler**.

   1. <a name="lambda-console-save-config"></a>Seleccione **Save**.
**nota**  
El botón de **prueba** de la AWS Lambda consola no funciona con esta función. El SDK AWS IoT Greengrass principal no contiene los módulos necesarios para ejecutar las funciones de Greengrass Lambda de forma independiente en la consola. AWS Lambda Estos módulos (por ejemplo, `greengrass_common`) se suministran a las funciones una vez desplegados en el núcleo de Greengrass.

1. Ahora, publique la primera versión de su función de Lambda y cree un [alias para la versión](https://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html).
**nota**  
Los grupos de Greengrass pueden hacer referencia a una función de Lambda por versión o alias (recomendado). El uso de un alias facilita la gestión de las actualizaciones del código porque no tiene que cambiar la tabla de suscripción o la definición del grupo cuando se actualiza el código de la función. En su lugar, basta con apuntar el alias a la nueva versión de la función.

   1. <a name="shared-publish-function-version"></a>En el menú **Actions**, elija **Publish new version**.

   1. <a name="shared-publish-function-version-description"></a>En **Version description (Descripción de versión)**, escriba **First version** y, a continuación, elija **Publish (Publicar)**.

   1. En la página de configuración **SecretTest: 1**, en el menú **Acciones**, seleccione **Crear** alias.

   1. En la página **Create a new alias**, utilice los valores siguientes:
      + En **Nombre**, escriba **GG\$1SecretTest**.
      + En **Version (Versión)**, elija **1**.
**nota**  
AWS IoT Greengrass **no admite los alias de Lambda para las versiones \$1LATEST.**

   1. Seleccione **Crear**.

Ahora está preparado para añadir la función de Lambda al grupo de Greengrass y asociar el recurso secreto.

## Paso 5: Adición de la función de Lambda al grupo de Greengrass
<a name="secrets-console-create-gg-function"></a>

En este paso, va a añadir la función de Lambda al grupo de Greengrass en la consola de AWS IoT .

1. <a name="choose-add-lambda"></a>En la página de configuración del grupo, elija la pestaña **Funciones de Lambda**.

1. En la sección **Mis funciones de Lambda**, seleccione **Añadir**.

1. Para la **función Lambda, elija**. **SecretTest**

1. Para la **versión de la función de Lambda**, elija el alias de la versión que publicó.

A continuación, configure el ciclo de vida de la función de Lambda.

1. En la sección de **Configuración de la función de Lambda**, realice las siguientes actualizaciones.
**nota**  
 Le recomendamos que ejecute la función de Lambda sin creación de contenedores, a menos que su modelo de negocio lo requiera. Esto permite el acceso a la GPU y la cámara del dispositivo sin necesidad de configurar los recursos del dispositivo. Si ejecuta sin contenedorización, también debe conceder acceso root a las funciones de Lambda AWS IoT Greengrass . 

   1. **Para ejecutar sin creación de contenedores:**
      + En **Usuario y grupo del sistema**, elija **Another user ID/group ID**. En **ID de usuario del sistema**, introduzca **0**. Para el **ID de grupo del sistema**, introduzca **0**.

        Esto permite que la función de Lambda se ejecute como raíz. Para obtener más información sobre cómo ejecutar como raíz, consulte [Configuración de la identidad de acceso predeterminada para las funciones de Lambda de un grupo](lambda-group-config.md#lambda-access-identity-groupsettings).
**sugerencia**  
También debe actualizar el archivo `config.json` para conceder acceso raíz a la función de Lambda. Para el procedimiento, consulte [Ejecución de una función de Lambda como raíz](lambda-group-config.md#lambda-running-as-root).
      + Para la **Creación de contenedores de la función de Lambda**, elija **Sin contenedor**.

        Para obtener más información sobre la ejecución sin creación de contenedores, consulte [Consideraciones a la hora de elegir la creación de contenedores de la función de Lambda.](lambda-group-config.md#lambda-containerization-considerations).
      + En **Tiempo de espera**, escriba **10 seconds**.
      + En **Ancladas**, elija **Verdadero**

        Para obtener más información, consulte [Configuración del ciclo de vida de las funciones de Lambda de Greengrass](lambda-functions.md#lambda-lifecycle).
      + En **Parámetro adicional**, para **Acceso de lectura al directorio /sys**, elija **Activado**.

   1.  **Para ejecutarlo en modo contenerizado, en su lugar:** 
**nota**  
No recomendamos ejecutarlo en modo contenerizado a menos que su modelo de negocio lo requiera.
      + En **Usuario y grupo del sistema**, seleccione **Usar grupo predeterminado**.
      + Para la **Creación de contenedores de funciones de Lambda**, elija **Usar grupo por defecto**.
      + En **Límite de memoria**, escriba **1024 MB**.
      + En **Tiempo de espera**, escriba **10 seconds**.
      + En **Ancladas**, elija **Verdadero**

        Para obtener más información, consulte [Configuración del ciclo de vida de las funciones de Lambda de Greengrass](lambda-functions.md#lambda-lifecycle).
      + En **Parámetros adicionales**, para **Acceso de lectura al directorio /sys**, elija **Activado**.

1.  Elija **Añadir función de Lambda**.

A continuación, asocie el recurso de secreto con la función.

## Paso 6: Asociar el recurso de secreto a la función de Lambda
<a name="secrets-console-affiliate-gg-function"></a>

En este paso, asocie el recurso secreto a la función de Lambda en su grupo de Greengrass. Esto asocia el recurso con la función, que permite a la función obtener el valor del secreto local.

1. En la página de configuración del grupo, elija la pestaña **Funciones de Lambda**.

1. Elija la función. **SecretTest**

1. En la página de detalles de la función, seleccione **Recursos**.

1. Vaya a la sección **Secretos** y seleccione **Asociar**.

1. Elija y **MyTestSecret**, a continuación, elija **Asociar**.

## Paso 7: Agregar suscripciones al grupo de Greengrass
<a name="secrets-console-create-subscription"></a>

En este paso, se añaden las suscripciones que permiten el intercambio de mensajes AWS IoT y la función Lambda. Una suscripción permite AWS IoT invocar la función y otra permite que la función envíe los datos de salida a. AWS IoT

1. <a name="shared-subscriptions-addsubscription"></a>En la página de configuración del grupo, elija la pestaña **Suscripciones** y, a continuación, elija **Añadir suscripción**.

1. Cree una suscripción que permita AWS IoT publicar mensajes en la función.

   En la página de configuración del grupo, elija la pestaña **Suscripciones** y, a continuación, elija **Añadir suscripción**.

1. En la página **Crear una suscripción**, configure el origen y el destino de la siguiente manera:

   1. En **Tipo de origen**, elija **Función de Lambda** y, a continuación, elija **Nube IoT**.

   1. En **Tipo de destino**, selecciona **Servicio** y, a continuación, selecciona **SecretTest**.

   1. En **Filtro por temas**, introduzca **secrets/input** y, a continuación, seleccione **Crear suscripción.** 

1. Añadir una segunda suscripción. Seleccione la pestaña **Suscripciones**, elija **Agregar suscripción** y configure el origen y el destino de la siguiente manera: 

   1. En **Tipo de origen**, elija **Servicios** y, a continuación, elija **SecretTest**.

   1. En **Tipo de destino**, elija **función de Lambda** y, a continuación, elija **Nube IoT**.

   1. En **Filtro por temas**, introduzca **secrets/output** y, a continuación, seleccione **Crear suscripción.**

## Paso 8: Implementar el grupo de Greengrass
<a name="secrets-console-create-deployment"></a>

Implemente el grupo en el dispositivo del núcleo. Durante el despliegue, AWS IoT Greengrass obtiene el valor del secreto de Secrets Manager y crea una copia local cifrada en el núcleo.

1. <a name="shared-deploy-group-checkggc"></a>Asegúrese de que el AWS IoT Greengrass núcleo esté funcionando. Ejecute los siguientes comandos en el terminal de Raspberry Pi según sea necesario.

   1. Para comprobar si el daemon está en ejecución:

      ```
      ps aux | grep -E 'greengrass.*daemon'
      ```

      Si la salida contiene una entrada `root` para `/greengrass/ggc/packages/ggc-version/bin/daemon`, el daemon está en ejecución.
**nota**  
La versión de la ruta depende de la versión del software AWS IoT Greengrass principal que esté instalada en el dispositivo principal.

   1. Inicio de daemon:

      ```
      cd /greengrass/ggc/core/
      sudo ./greengrassd start
      ```

1. <a name="shared-deploy-group-deploy"></a>En la página de configuración de grupo, elija **Implementar**.

1. <a name="shared-deploy-group-ipconfig"></a>

   1. En la pestaña **Funciones de Lambda**, en la sección **Funciones de Lambda del sistema**, seleccione **Detector IP** y elija **Editar.**

   1. En el cuadro de diálogo **Editar configuración del detector IP**, seleccione **Detectar y anular automáticamente los puntos de conexión del agente MQTT**.

   1. Seleccione **Save**.

      Esto permite a los dispositivos adquirir automáticamente la información de conexión del dispositivo principal, como la dirección IP, el DNS y el número de puerto. Se recomienda la detección automática, pero AWS IoT Greengrass también es compatible con los puntos finales especificados manualmente. Solo se le solicitará el método de detección la primera vez que se implemente el grupo.
**nota**  
Si se le solicita, conceda permiso para crear el [rol de servicio de Greengrass](service-role.md) y asócielo al suyo Cuenta de AWS en el actual. Región de AWS Este rol le permite acceder AWS IoT Greengrass a sus recursos en los AWS servicios.

      En la página **Deployments** (Implementaciones), se muestra la marca temporal, el ID de versión y el estado de la implementación. Una vez terminada, la implementación debería mostrar el estado **Completado**.

      Para obtener ayuda sobre la resolución de problemas, consulte [Solución de problemas AWS IoT Greengrass](gg-troubleshooting.md).

## Prueba de la función de Lambda
<a name="secrets-console-test-solution"></a>

1. <a name="choose-test-page"></a>En la página de inicio de la AWS IoT consola, selecciona **Probar**.

1. Para **Suscribirse al tema**, utilice los siguientes valores y, a continuación, seleccione **Suscribirse**.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/greengrass/v1/developerguide/secrets-console.html)

1. Para **Publicar en tema**, utilice los siguientes valores y, a continuación, seleccione **Publicar** para invocar la función.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/greengrass/v1/developerguide/secrets-console.html)

   Si se ejecuta correctamente, la función publica un mensaje de "Success (Correcto)".

## Véase también
<a name="secrets-console-see-also"></a>
+ [Despliega los secretos hasta la AWS IoT Greengrass médula](secrets.md)