> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/cli/it/guide/understand/security-model.md).

# Che cosa resta nascosto e che cosa no

Veda quali comandi di Devolutions CLI tengono un segreto fuori dalla vista, quali consegnano il valore e da che cosa Devolutions CLI non può proteggerla.

Ogni comando di Devolutions CLI che usa un segreto deve mettere il valore **da qualche parte**: nell’ambiente di un programma, nel terminale, in un file, nella shell o nel contesto di un modello di IA. Dove finisce decide chi può vederlo. `devo secret run` tiene il valore lontano da lei, dalla shell e dai file. Altri comandi lo consegnano di proposito, perché a volte è ciò che serve.

## Dove ogni comando mette il valore

<table><thead><tr><th width="230">QUANDO USA</th><th>IL VALORE FINISCE</th><th width="140">NASCOSTO A LEI?</th></tr></thead><tbody><tr><td><code>devo secret run</code></td><td>Nell’ambiente, o nell’input standard, dell’unico programma che avvia. Quando stampa il valore, vede <code>&#x3C;concealed by Devolutions></code> al suo posto.</td><td>Sì. Solo il programma lo riceve.</td></tr><tr><td><code>devo secret read</code><br><code>devo secret get</code></td><td>Stampato nel terminale, oppure nell’output JSON o YAML. Con <code>--out-file</code>, scritto in un file invece.</td><td>No.</td></tr><tr><td><code>devo secret inject</code></td><td>Scritto in testo normale nel modello compilato, sull’output standard o nel file <code>--out-file</code>.</td><td>No.</td></tr><tr><td><code>devo secret shell enter</code></td><td>Nelle variabili d’ambiente della shell corrente e di ogni programma che avvia da essa, finché non esegue <code>devo secret shell leave</code>. Nulla viene mascherato.</td><td>No.</td></tr><tr><td><code>devo secret set</code></td><td>Il nuovo valore proviene da una variabile d’ambiente (<code>--value-env</code>) o da un file (<code>--value-file</code>) che prepara, mai dalla riga di comando.</td><td>Non dalla riga di comando né dalla cronologia della shell. La variabile o il file che ha preparato lo contiene ancora.</td></tr><tr><td>Un client IA si è connesso con <code>devo mcp</code></td><td>Lo strumento <code>RDM_resolve_secret_reference</code> restituisce il valore al client IA, che lo mette nel contesto del modello.</td><td>No. Il modello, e la sua trascrizione, vedono il valore.</td></tr><tr><td>SecretSpec</td><td>Devolutions CLI restituisce il valore a SecretSpec, che decide dove va dopo.</td><td>Dipende da come usa SecretSpec. Devolutions CLI non lo maschera.</td></tr></tbody></table>

{% hint style="warning" %}
`devo mcp --read-only` non tiene i valori lontani dal modello: `RDM_resolve_secret_reference` legge soltanto, quindi resta disponibile. Per tenere i valori dei segreti fuori dal contesto del modello, aggiunga `--deny-tool RDM_resolve_secret_reference`. Consulti [Limitare ciò che un agente può fare](/cli/it/guide/ai-agents/limit-tools.md).
{% endhint %}

## Che cosa significa per lei

**Preferisca `devo secret run` ogni volta che un programma può leggere il segreto da una variabile d’ambiente.** Il valore va solo a quel programma, mai alla shell, e sparisce quando il programma termina. Consulti [Eseguire un comando con i suoi segreti](/cli/it/guide/secrets/run-with-secrets.md).

**I riferimenti sono rifiutati negli argomenti del comando.** Se scrive un riferimento `devo://` dopo `--`, `devo secret run` si ferma e chiede di usare `--env-ref`, `--stdin-reference` o un manifesto di avvio.

**I file che contengono un segreto sono privati per lei.** Quando `devo secret read`, `devo secret get` o `devo secret inject` scrive su `--out-file`, il file è leggibile e scrivibile solo dal suo account su macOS e Linux. Su Windows, solo il suo account, gli amministratori e l’account di sistema possono aprirlo. Il valore è comunque in testo in chiaro: elimini il file quando ha finito. Consulti [Compilare un file di configurazione da un modello](/cli/it/guide/secrets/fill-a-template.md).

**Scelga il comando che corrisponde a quanto vuole esporre.** Leggere un segreto, compilare un modello o caricarlo nella shell è a volte l’unica opzione, per esempio per uno strumento che legge un file di configurazione. Sappia solo che da quel momento il valore è nel terminale, nel file o nella sessione. Consulti [Usare i segreti nella shell corrente](/cli/it/guide/secrets/current-shell.md).

## Come funziona il mascheramento e i suoi limiti

Per impostazione predefinita, `devo secret run` osserva tutto ciò che il programma scrive sull’output standard e sull’errore standard e sostituisce ogni valore risolto con `<concealed by Devolutions>` prima che raggiunga il terminale o il log.

Il mascheramento è una rete di sicurezza per ciò che il programma **stampa**. Non protegge da ciò che il programma **fa**:

* Viene sostituito solo il valore esatto. Se il programma ne stampa una parte, lo codifica (per esempio in Base64) o lo modifica, il risultato non viene mascherato.
* Un file che il programma scrive, o una richiesta che invia sulla rete, non viene mascherato.
* I processi figlio del programma ereditano il suo ambiente, quindi ricevono anche il valore.
* `--no-masking` disattiva il mascheramento. Lo usi solo quando ha bisogno dell’output esatto, mai in un log condiviso.

## Di chi si fida Devolutions CLI

Devolutions CLI si fida dell’account utente del sistema operativo. Il processo in background viene eseguito con l’account e parla con `devo` su un canale locale del computer. Quel canale accetta l’account e, su Windows, l’account di sistema (veda [Devolutions CLI su Windows, macOS e Linux](/cli/it/guide/understand/platforms.md) per l’eccezione). Ogni richiesta, tranne un controllo dello stato, deve anche portare un token di sessione che Devolutions CLI conserva nella cartella di configurazione. I contesti salvati sono nella cartella di configurazione e le sessioni di accesso sono protette dall’archivio sicuro del sistema operativo. Consulti [Quali dati invia Devolutions CLI](/cli/it/guide/understand/privacy.md).

Questo ha una conseguenza: qualsiasi altro programma in esecuzione con il suo account è considerato attendibile allo stesso modo. Può eseguire `devo` e chiedere un segreto, proprio come lei.

## Da che cosa Devolutions CLI non può proteggerla

* **Un programma che riceve un segreto può divulgarlo.** Può scrivere il valore in un file, inviarlo in rete o stamparlo in una forma che il mascheramento non intercetta. Esegua con i segreti solo programmi di cui si fida.
* **Altri programmi in esecuzione come lei.** Un malware o uno strumento non attendibile in esecuzione con l’account può usare i contesti come lei. Devolutions CLI non separa i programmi eseguiti come lo stesso utente.
* **Valori che ha consegnato.** Una volta che legge un segreto nel terminale, lo scrive in un file, lo carica nella shell o lo dà a un modello IA, Devolutions CLI non controlla più dove va.
* **Un computer compromesso.** Come qualsiasi strumento, Devolutions CLI è sicuro solo quanto il computer e l’account utente su cui viene eseguito.

## Successivo

* [Run a command with its secrets](/cli/it/guide/secrets/run-with-secrets.md)
* [Give an agent a credential without exposing it](/cli/it/guide/ai-agents/run-an-agent.md)
* [Limit what an agent can do](/cli/it/guide/ai-agents/limit-tools.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.devolutions.net/cli/it/guide/understand/security-model.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
