# Secretos


Los secretos son una variante de las [configuraciones (configs)](/reference/compose-file/secrets/configs/) centrada en datos confidenciales, con restricciones específicas para este uso.

Los servicios solo pueden acceder a los secretos cuando se les concede explícitamente mediante un [atributo `secrets`](/reference/compose-file/secrets/services/#secrets) dentro del elemento de nivel superior `services`.

La declaración `secrets` de nivel superior define o hace referencia a datos confidenciales que se conceden a los servicios en tu aplicación de Compose. La fuente del secreto es `file` o `environment`.

- `file`: El secreto se crea con el contenido del archivo en la ruta especificada.
- `environment`: El secreto se crea con el valor de una variable de entorno en el host. Esto solo es compatible con Docker Compose. No es compatible al realizar el despliegue con [`docker stack deploy`](/engine/swarm/stack-deploy/).

## Ejemplo 1

El secreto `server-certificate` se crea como `<nombre_proyecto>_server-certificate` cuando se despliega la aplicación, registrando el contenido de `server.cert` como un secreto de la plataforma.

```yml
secrets:
  server-certificate:
    file: ./server.cert
```

## Ejemplo 2

El secreto `token` se crea como `<nombre_proyecto>_token` cuando se despliega la aplicación, registrando el contenido de la variable de entorno `OAUTH_TOKEN` como un secreto de la plataforma.

```yml
secrets:
  token:
    environment: "OAUTH_TOKEN"
```

> [!NOTE]
> Los secretos de tipo `environment` no son compatibles al realizar el despliegue con `docker stack deploy`. En su lugar, usa `file` o `external` como fuente del secreto.

## Recursos adicionales

Para obtener más información, consulta [Cómo usar secretos en Compose](/compose/how-tos/use-secrets/).

