> ## Documentation Index
> Fetch the complete documentation index at: https://docs.basaltic.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Desativar e excluir uma chave

> Desativar, a janela de exclusão que torna uma chave recuperável, e o que o cancelamento não dá de volta.

<a id="turning-a-key-off" />

## Desligar uma tecla

```mermaid theme={null}
stateDiagram-v2
    [*] --> enabled: create
    enabled --> disabled: disable
    disabled --> enabled: enable
    enabled --> pending_deletion: schedule-deletion
    disabled --> pending_deletion: schedule-deletion
    pending_deletion --> disabled: cancel-deletion
    pending_deletion --> [*]: window elapses
```

<Columns cols={2}>
  <Card title="Desabilitar" icon="pause">
    `POST /v1/keys/{key_id}/disable` recusa todas as operações de criptografia com `409 KMS_KEY_DISABLED` enquanto deixa o material intacto. Este é o movimento reversível: pare uma chave suspeita de comprometimento agora, mantenha a capacidade de ler o texto cifrado histórico após a reativação.
  </Card>

  <Card title="Agendar a exclusão" icon="clock">
    `POST /v1/keys/{key_id}/schedule-deletion` inicia uma contagem regressiva. `recovery_window_days` é **7 a 30, padrão para 7**. A chave recusa operações de criptografia para toda a janela, então o material e o registro são destruídos.
  </Card>
</Columns>

<Tabs>
  <Tab title="Console">
    Abra a chave de **KMS**. **Disable** e **Enable** estão no cabeçalho. **Schedule key deletion** está na **Danger zone** na guia **Settings**: leva uma **Recovery window (days)** e faz você digitar o nome da chave antes que **Schedule Deletion** seja aceita.
  </Tab>

  <Tab title="API">
    ```bash theme={null}
    POST /v1/keys/{key_id}/schedule-deletion
    { "recovery_window_days": 30 }
    ```

    `recovery_window_days` é opcional — omita-o e você obtém o mínimo de 7 dias, que é a janela mais curta, não a mais segura.
  </Tab>

  <Tab title="CLI">
    ```bash theme={null}
    basaltic kms key schedule-deletion <key-id> --recovery-window-days 30
    ```
  </Tab>

  <Tab title="Go">
    ```go theme={null}
    key, err := kms.New(cfg).ScheduleKeyDeletion(ctx, keyID, &kms.ScheduleKeyDeletionRequest{
        PendingWindowInDays: basaltic.Int(30),
    })
    ```
  </Tab>
</Tabs>

<Warning>
  A exclusão destrói o material chave. Cada texto cifrado produzido sob a chave — incluindo cada chave de dados que você envolveu com ela — se torna permanentemente ilegível. A janela existe porque não é desfechável depois, então use-a: agende a exclusão, observe o que quebra e só deixe que ela passe quando nada acontecer.
</Warning>

<ResponseField name="deleted_at" type="timestamp | null">
  Quando a exclusão foi solicitada. Nulo para chaves ativas e chaves cuja exclusão foi agendada antes que os tempos de solicitação fossem registrados.
</ResponseField>

<ResponseField name="scheduled_purge_at" type="timestamp">
  O prazo para cancelar a exclusão. Os prazos existentes são preservados.
</ResponseField>

<ResponseField name="recovery_window_days" type="integer, 7–30 | null">
  A janela escolhida, padrão para 7 no agendamento. Nulo para chaves ativas e exclusões pendentes históricas cuja janela escolhida é desconhecida.
</ResponseField>

O KMS espelha o mínimo de 7 dias do AWS KMS porque sua exclusão afeta todos os textos cifrados protegidos pela chave. Segredos permite 1 dia porque sua exclusão é limitada a esse segredo. Ambos os máximos são de 30 dias.

<a id="cancelling" />

### Cancelamento

<Tabs>
  <Tab title="Console">
    Uma tecla dentro da janela mostra **Cancel Deletion** em seu cabeçalho, onde **Disable** ou **Enable** de outra forma seria.
  </Tab>

  <Tab title="API">
    ```bash theme={null}
    POST /v1/keys/{key_id}/cancel-deletion
    ```
  </Tab>

  <Tab title="CLI">
    ```bash theme={null}
    basaltic kms key cancel-deletion <key-id>
    ```
  </Tab>

  <Tab title="Go">
    ```go theme={null}
    key, err := kms.New(cfg).CancelKeyDeletion(ctx, keyID)
    ```
  </Tab>
</Tabs>

Cancelar sai da janela em qualquer ponto antes de `scheduled_purge_at`.

<Note>
  Uma chave cancelada retorna **`disabled`, não `enabled`**. Nada começa a funcionar novamente até que você chame explicitamente `enable`. A janela foi aberta porque alguém queria que a chave fosse removida; recuperá-la não deve restaurar silenciosamente o tráfego para ela. Isso corresponde deliberadamente ao AWS KMS; restaurar um segredo, por comparação, o coloca diretamente de volta ao serviço. O cancelamento limpa todos os três campos de exclusão.
</Note>

Duas consequências de como a cota é contabilizada valem a pena saber antes de você confiar no cancelamento:

* A programação de uma exclusão **libera a cota da chave imediatamente**, para que você possa criar uma substituição dentro do mesmo limite sem esperar por uma janela.
* Cancelar, portanto, tem que pegar essa cota de volta, e **falha com `403 QUOTA_EXCEEDED` se sua conta está agora em seu limite**. Se você criou uma chave de substituição, libere um slot antes de cancelar.

<Warning>
  Uma chave em `pending_deletion` não reserva mais seu **nome**, então uma nova chave pode ser criada com o mesmo imediatamente. Como um CRN de KMS é criado a partir do nome (`crn:kms:<region>:<account>:key/<name>`), a chave antiga e a nova chave compartilham um CRN e uma política do IAM que a nomeia corresponde a ambas. Dê um nome diferente à substituição se essa distinção for importante para suas políticas.
</Warning>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.