Ativando notificações de eventos para o Secrets Manager
Como administrador do IBM Cloud® Secrets Manager, talvez você queira enviar notificações de eventos no Secrets Manager para outros usuários ou pessoas por meio de e-mail, SMS ou outros canais de entrega suportados. Além disso, você pode desejar enviar essas notificações de eventos para outros aplicativos para construir a lógica usando programação orientada a eventos, por meio de webhooks, por exemplo. Isso é possível pela integração entre o Secrets Manager e o IBM Cloud® Event Notifications.
Para enviar informações para o Event Notifications, deve-se conectar sua instância de serviço do Secrets Manager ao Event Notifications. Para obter mais informações sobre como trabalhar com o Event Notifications, consulte Introdução ao Event Notifications.
Se você decidir excluir sua instância de serviço Secrets Manager, remova também Secrets Manager como uma origem em sua instância de serviço Event Notifications.
Como os eventos são coletados e enviados pelo Secrets Manager
Quando um evento de interesse ocorre em sua instância do Secrets Manager, o Secrets Manager se comunica com uma instância do Event Notifications conectada para encaminhar uma notificação para um destino suportado.
O Secrets Manager agrega uma lista de suas notificações pendentes por tipo de evento, tipo de segredo e detalhes de validade, se aplicados. A cada 1 a 2 minutos, o serviço verifica e despacha quaisquer notificações pendentes para o serviço Event Notifications conectado. Por exemplo, você pode receber notificações que são semelhantes às mensagens a seguir:
- Você tem 1 segredo arbitrário que expira em 1 dia.
- Você tem 5 segredos de certificados públicos que expiram em 10 dias.
- Você tem 100 segredos de certificados importados que expiram em 30 dias.
O número máximo de segredos dos quais você pode ser notificado em uma única notificação de eventos é 100.
Eventos para o Secrets Manager
A tabela a seguir lista as ações do Secrets Manager que geram um evento.
Dependendo do tipo de segredo com o qual você está trabalhando no serviço, um evento pode não ser gerado pelo Secrets Manager. Por exemplo, você não recebe uma notificação se um certificado for configurado para expirar em menos de 24 horas. Para mais informações, consulte Eventos por tipo de secredo.
| Nome do evento | Tipo de evento | Subtipo | Descrição | Nível de severidade |
|---|---|---|---|---|
| Segredo criado | com.ibm.cloud.secrets-manager.secret_created |
Um evento é enviado quando um segredo é incluído na instância. | low |
|
| Falha na criação do segredo | com.ibm.cloud.secrets-manager.secret_creation_failed |
Um evento é enviado quando uma solicitação de criação de um segredo falha. | low |
|
| Segredo girado | com.ibm.cloud.secrets-manager.secret_rotated |
Um evento é enviado quando um segredo é girado e uma nova versão se torna disponível. | low |
|
| Falha ao girar o segredo | com.ibm.cloud.secrets-manager.secret_rotation_failed |
Um evento é enviado quando uma solicitação para girar um segredo falha. | high |
|
| O segredo expira em 90 dias | com.ibm.cloud.secrets-manager.secret_about_to_expire |
in_90_days |
Um evento é enviado quando um segredo está a 90 dias da expiração. | high |
| O segredo expira em 60 dias | com.ibm.cloud.secrets-manager.secret_about_to_expire |
in_60_days |
Um evento é enviado quando um segredo está a 60 dias da expiração. | high |
| O segredo expira em 30 dias | com.ibm.cloud.secrets-manager.secret_about_to_expire |
in_30_days |
Um evento é enviado quando um segredo está a 30 dias da expiração. | high |
| O segredo expira em 10 dias | com.ibm.cloud.secrets-manager.secret_about_to_expire |
in_10_days |
Um evento é enviado quando um segredo está a 10 dias da expiração. | high |
| Segredo expira em 1 dia | com.ibm.cloud.secrets-manager.secret_about_to_expire |
in_1_day |
Um evento é enviado quando um segredo está a 1 dia a partir da expiração. | high |
| O segredo expira em menos de 1 dia | com.ibm.cloud.secrets-manager.secret_about_to_expire |
in_0_days |
Um evento é enviado quando um segredo está a menos de 1 dia da expiração. | high |
| Segredo expirado | com.ibm.cloud.secrets-manager.secret_expired |
Um evento é enviado quando um segredo atinge sua data e hora de expiração. | high |
|
| Segredo revogado | com.ibm.cloud.secrets-manager.secret_revoked |
Um evento é enviado quando uma versão de um segredo é revogada antes de ser programada para expirar. | low |
|
| Segredo excluído | com.ibm.cloud.secrets-manager.secret_deleted |
Um evento é enviado quando um segredo é excluído de uma instância do Secrets Manager. | low |
|
| Falha na exclusão do segredo.. | com.ibm.cloud.secrets-manager.secret_deletion_failed |
Um evento é enviado quando uma solicitação para excluir um segredo falha. | high |
|
| Exclusão secreta bloqueada | com.ibm.cloud.secrets-manager.secret_deletion_blocked |
Um evento é enviado quando um segredo é incapaz de ser excluído porque ele é bloqueado. | low |
|
| Revogação secreta bloqueada | com.ibm.cloud.secrets-manager.secret_revocation_blocked |
Um evento é enviado quando um segredo é incapaz de ser revogado porque ele está bloqueado. | low |
|
| Rotação secreta bloqueada | com.ibm.cloud.secrets-manager.secret_rotation_blocked |
Um evento é enviado quando um segredo está impossibilitado de ser rodado porque ele está bloqueado. | low |
|
| Expiração secreta bloqueada | com.ibm.cloud.secrets-manager.secret_expiration_blocked |
Um evento é enviado quando um segredo é incapaz de expirar porque ele está bloqueado. | high |
|
| Dados secretos removidos | com.ibm.cloud.secrets-manager.secret_data_removed |
Um evento é enviado quando os dados de um segredo são removidos | low |
|
| Dados da versão secreta excluídos | com.ibm.cloud.secrets-manager.secret_version_data_deleted |
Um evento é enviado quando os dados de uma versão secreta são excluídos. | low |
|
| Tarefa secreta criada | com.ibm.cloud.secrets-manager.secret_task_created |
Um evento é enviado quando uma tarefa é criada para um segredo. | low |
|
| Tarefa secreta bem-sucedida | com.ibm.cloud.secrets-manager.secret_task_succeeded |
Um evento é enviado quando uma tarefa é concluída com êxito. | low |
|
| Falha na tarefa secreta | com.ibm.cloud.secrets-manager.secret_task_failed |
Um evento é enviado quando uma tarefa falha. | high |
|
| Tarefa secreta excluída | com.ibm.cloud.secrets-manager.secret_task_deleted |
Um evento é enviado quando uma tarefa é excluída. | low |
|
| Evento de teste | com.ibm.cloud.secrets-manager.test_event |
Um evento é enviado quando uma notificação de teste é encaminhada para o Event Notifications. | low |
Eventos secret_about_to_expire são enviados apenas uma vez, no dia especificado. Isso significa que, se você especificar que um segredo deve expirar em 10 dias, receberá uma única notificação quando o segredo tiver 10 dias restantes.
Você não recebe uma notificação em nenhum outro momento, por exemplo, quando o segredo tem 9 dias restantes.
Tipos de segredos suportados
A tabela a seguir relaciona os eventos do Secrets Manager que podem ser gerados com base em tipos de segredos que são suportados no serviço.
| Nome do evento | Tipo de evento | Ocorrência | Arbitrário | Credenciais do IAM | Valor da chave | Credenciais do usuário | Certificados importados | Certificados privados | Certificados públicos | Credenciais de serviço | Credenciais customizadas |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Segredo criado | com.ibm.cloud.secrets-manager.secret_created |
Único | |||||||||
| Falha na criação do segredo | com.ibm.cloud.secrets-manager.secret_creation_failed |
Único | |||||||||
| Segredo girado | com.ibm.cloud.secrets-manager.secret_rotated |
Único | |||||||||
| Falha ao girar o segredo | com.ibm.cloud.secrets-manager.secret_rotation_failed |
Único | |||||||||
| Segredo prestes a expirar | com.ibm.cloud.secrets-manager.secret_about_to_expire |
90, 60, 30, 10, 1, 0 dias antes de o segredo expirar | Não aplicável[1] | ||||||||
| Segredo expirado | com.ibm.cloud.secrets-manager.secret_expired |
Diário | Não aplicável[2] | ||||||||
| Segredo revogado | com.ibm.cloud.secrets-manager.secret_revoked |
Único | Não aplicável[3] | Não aplicável[4] | Não aplicável[5] | Não aplicável[6] | Não aplicável[7] | Não aplicável[8] | Não aplicável[9] | Não aplicável[10] | |
| Segredo excluído | com.ibm.cloud.secrets-manager.secret_deleted |
Único | |||||||||
| Exclusão secreta bloqueada | com.ibm.cloud.secrets-manager.secret_deletion_blocked |
Único | |||||||||
| Rotação secreta bloqueada | com.ibm.cloud.secrets-manager.secret_rotation_blocked |
Uma vez[11] Diário [12] |
|||||||||
| Revogação secreta bloqueada | com.ibm.cloud.secrets-manager.secret_revocation_blocked |
Único | Não aplicável[13] | Não aplicável[14] | Não aplicável[15] | Não aplicável[16] | Não aplicável[17] | Não aplicável[18] | Não aplicável[19] | Não aplicável[20] | |
| Expiração secreta bloqueada | com.ibm.cloud.secrets-manager.secret_expiration_blocked |
Uma vez Diário |
Não aplicável[21] | Não aplicável[22] | Não aplicável[23] | Não aplicável[24] | |||||
| Dados da versão secreta excluídos | com.ibm.cloud.secrets-manager.secret_data_removed |
Único | |||||||||
| Tarefa secreta criada | com.ibm.cloud.secrets-manager.secret_task_created |
Único | |||||||||
| Tarefa secreta bem-sucedida | com.ibm.cloud.secrets-manager.secret_task_created |
Único | |||||||||
| Falha na tarefa secreta | com.ibm.cloud.secrets-manager.secret_task_created |
Único | |||||||||
| Tarefa secreta excluída | com.ibm.cloud.secrets-manager.secret_task_created |
Único |
Ativando notificações
Os eventos que são gerados por uma instância do serviço do Secrets Manager podem ser encaminhados para uma instância de serviço do Event Notifications que está disponível na mesma conta. É possível configurar apenas uma instância do Secrets Manager para uma instância de serviço do Event Notifications. Para começar, são necessários:
- Gerente acesso ao serviço no serviço Secrets Manager.
- Acesso de serviço de Gerente no serviço Event Notifications. Para visualizar uma instância de serviço existente do Event Notifications em sua conta, é necessário também acesso à plataforma Viewerr ou superior.
Conectando-se ao Event Notifications na IU
Antes de ativar as notificações para Secrets Manager, certifique-se de que você tenha uma instância de serviço Event Notifications que esteja na mesma conta que a instância Secrets Manager. Em seguida, você pode usar a seção Settings > Event Notifications na interface do usuário Secrets Manager para conectar os serviços.
-
No console, clique no ícone Menu
> Lista de recursos.
-
Na lista de serviços, selecione sua instância do Secrets Manager.
-
Na navegação do Secrets Manager, clique em Configurações.
-
Na seção Event Notifications, clique em Conectar.
-
No painel lateral, revise os detalhes da origem para a conexão. Opcionalmente, forneça uma descrição.
-
Selecione o grupo de recursos e a instância de serviço do Event Notifications que você deseja conectar.
Se uma autorização do IAM entre o Secrets Manager e o Event Notifications não existir em sua conta, um diálogo será exibido. Siga os prompts para conceder acesso entre os serviços.
- Para conceder acesso entre o Secrets Manager e o Event Notifications, clique em Autorizar.
- No painel lateral, selecione o Event Notifications como o serviço de destino.
- Na lista de instâncias, selecione a instância de serviço do Event Notifications que você deseja autorizar.
- Selecione a função Gerente de origem de eventos.
- Clique em Revisar.
- Clique em Designar.
-
Para confirmar a conexão, clique em Conectar.
Uma mensagem de êxito é exibida para indicar que o Secrets Manager agora está conectado ao Event Notifications. Se você precisar se desconectar mais tarde do Event Notifications, é possível usar o menu de opções
> Desconectar para remover o Secrets Manager como um serviço de origem na instância do Event Notifications.
Se você optar por desconectar o Event Notifications, não exclua a autorização do IAM entre o Secrets Manager e o Event Notifications. O Secrets Manager usa a autorização existente para cancelar o registro a partir do Event Notifications. Se uma instância do Event Notifications for excluída, quaisquer autorizações existentes entre o serviço e o Secrets Manager também serão excluídas pelo IAM.
Conectando-se ao Event Notifications com a API
Antes de ativar as notificações para Secrets Manager, certifique-se de que você tenha uma instância de serviço Event Notifications que esteja na mesma conta que a instância Secrets Manager. Em seguida, é possível conectar-se ao Event Notifications programaticamente chamando a API Secrets Manager.
O exemplo a seguir mostra uma consulta que pode ser usada para registrar seus detalhes de origem Secrets Manager com o Event Notifications. Ao chamar a API, substitua as variáveis de ID e o token IAM pelos valores que são específicos para a sua instância do Secrets Manager.
É possível localizar o valor event_notifications_instance_crn no console acessando a lista Recursos e clicando na linha da instância do Event Notifications.
curl -X POST
--H "Authorization: Bearer {iam_token}" \
--H "Accept: application/json" \
--H "Content-Type: application/json" \
--d'{
"event_notifications_instance_crn": "crn:v1:bluemix:public:event-notifications:us-south:a/22018f3c34ff4ff193698d15ca316946:578ad1a4-2fd8-4e66-95d5-79a842ba91f8::",
"event_notifications_source_description": "Optional description of this source in an Event Notifications instance.",
"event_notifications_source_name": "My Secrets Manager"
}' \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/notifications/registration"
Uma solicitação bem-sucedida retorna o valor de CRN de sua instância de serviço do Event Notifications conectada. Para obter mais informações sobre os parâmetros de solicitação opcionais e necessários, consulte os Docs da API.
Conectando-se ao Event Notifications com o Terraform
O exemplo a seguir mostra uma configuração que pode ser usada para registrar os detalhes da fonte Secrets Manager com Event Notifications.
resource "ibm_sm_en_registration" "en_registration" {
instance_id = local.instance_id
region = local.region
name = "test-root-ca"
event_notifications_instance_crn = var.en_instance_crn
event_notifications_source_description = "My event notification source"
event_notifications_source_name = "my_en_source"
}
Enviando um evento de teste para o Event Notifications na IU
Depois de ativar as notificações para o Secrets Manager, teste sua conexão para assegurar que os eventos gerados pelo Secrets Manager estejam sendo encaminhados para o Event Notifications.
Para poder enviar eventos de teste do Secrets Manager, tópicos, destinos e assinaturas deverão ter sido criados em sua instância do Event Notifications. Assegure
que o tipo de evento Evento de teste (com.ibm.cloud.secrets-manager.test_event) esteja incluído como uma condição em seu tópico do Event Notifications.
-
Na IU do Secrets Manager, clique em Configurações.
-
Na seção Event Notifications, clique em Enviar evento de teste.
Uma mensagem de êxito é exibida para indicar que o evento de teste foi encaminhado com sucesso para o Event Notifications.
Enviando um evento de teste para o Event Notifications com a API
Depois de ativar as notificações para o Secrets Manager, teste sua conexão para assegurar que os eventos gerados pelo Secrets Manager estejam sendo encaminhados para o Event Notifications.
Para poder enviar um evento de teste do Secrets Manager, tópicos, destinos e assinaturas deverão ter sido criados em sua instância do Event Notifications.
Assegure que o tipo de evento Evento de teste (com.ibm.cloud.secrets-manager.test_event) esteja incluído como uma condição em seu tópico do Event Notifications.
O exemplo a seguir mostra uma consulta que pode ser usada para enviar um evento de teste do Secrets Manager para o Event Notifications. Ao chamar a API, substitua as variáveis de ID e o token IAM pelos valores que são específicos para a sua instância do Secrets Manager.
curl -X GET
--H "Authorization: Bearer {iam_token}" \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/notifications/registration/test"
Uma solicitação bem-sucedida retorna uma resposta HTTP 200 OK para indicar que um evento de teste foi encaminhado com sucesso para sua instância de serviço do Event Notifications conectada. Para obter mais informações, consulte
os Docs da API.
Entregando notificações para destinos selecionados
Depois de ativar as notificações para o Secrets Manager, crie tópicos e assinaturas no Event Notifications para que os alertas possam ser encaminhados e entregues aos seus destinos selecionados.
Para obter uma lista completa de destinos suportados, consulte a Documentação do Event Notifications.
Notificações por e-mail
É possível usar o Serviço de e-mail do IBM Cloud como um canal de entrega para notificações de eventos do Secrets Manager. Crie uma assinatura do Event Notifications entre um tópico existente e o serviço de e-mail do IBM Cloud para encaminhar seus alertas para vários destinatários por e-mail.
Um e-mail do IBM Cloud que contém informações sobre um evento do Secrets Manager é semelhante ao exemplo a seguir:
Subject: Your 2 public certificate secrets expire in 10 days
Body: You have 2 public certificate secrets that expire in 10 days: my-certificate-1, my-certificate-2. You can view and manage your existing secrets by accessing Secrets Manager in the console, or by using the CLI or APIs. For more information, check out the docs.
Para receber informações detalhadas sobre uma notificação de eventos em seu e-mail, selecione a opção Incluir carga útil de notificação ao criar uma assinatura do Event Notifications. Seu e-mail exibe os detalhes da carga útil de notificação que estão associados ao evento.
Webhooks
É possível configurar um destino de webhook para que uma notificação recebida possa ser consumida programaticamente por um app ou serviço. Para obter mais informações sobre a configuração de webhooks, confira a Documentação do Event Notifications.
Detalhes da carga útil de notificação
Os eventos bem-sucedidos que são gerados pelo Secrets Manager contêm vários campos que ajudam a identificar a origem e os detalhes de um evento.
As notificações de eventos do Secrets Manager contêm apenas propriedades de metadados, como nomes ou identificadores de recursos. Os dados sensíveis, por exemplo, chaves de API ou senhas, não são incluídos nos eventos gerados.
As propriedades que são enviadas para o Event Notifications variam de acordo com o tipo de evento e tipo de segredo. Por exemplo, se um evento secret_about_to_expire:in_10_days ocorre em uma instância para um ou mais segredos do
public_cert, o Secrets Manager envia uma carga útil de notificação para o Event Notifications que é semelhante ao exemplo a seguir.
{
"event_sub_type": "in_10_days",
"event_type": "secret_about_to_expire",
"secret_type": "public_cert",
"secrets": [
{
"domains": "domain1.com",
"event_time": "2022-01-04T00:00:00Z",
"event_triggered_by": "SecretsManager",
"secret_expiration": "2022-01-14T00:00:00Z",
"secret_group_id": "default",
"secret_id": "crn:v1:bluemix:public:secrets-manager:<region>:a/<account_id>:<instance_id>:secret:<secret_id>",
"secret_name": "my-certificate-1",
"serial_number": "1:2:3:4"
},
{
"domains": "domain2.com, domain3.com",
"event_time": "2022-01-04T00:00:00Z",
"event_triggered_by": "SecretsManager",
"secret_expiration": "2022-01-14T00:00:00Z",
"secret_group_id": "default",
"secret_id": "crn:v1:bluemix:public:secrets-manager:<region>:a/<account_id>:<instance_id>:secret:<secret_id>",
"secret_name": "my-certificate-2",
"serial_number": "1:2:3:4"
},
],
"source_instance_api_private_url": "https://<instance_id>.private.<region>.secrets-manager.appdomain.cloud/api",
"source_instance_api_public_url": "https://<instance_id>.<region>.secrets-manager.appdomain.cloud/api",
"source_instance_crn": "crn:v1:bluemix:public:secrets-manager:<region>:a/<account_id>:<instance_id>::",
"source_instance_dashboard_url": "https://cloud.ibm.com/services/secrets-manager/crn%3Av1%3Abluemix%3Apublic%3Asecrets-manager%3A<region>%3Aa%2Fa6cc9f5f21f34323a4175c1117638b40%3A<instance_id>%3A%3A",
"source_service": "SecretsManager"
}
Revise a tabela a seguir para obter mais informações sobre propriedades de notificação de eventos.
| Propriedade | Descrição |
|---|---|
event_sub_type |
O subtipo que corresponde ao tipo de evento que acionou uma notificação. |
event_type |
O tipo de evento que acionou uma notificação. |
secret_type |
O tipo de segredo que está associado ao evento.
Os valores possíveis incluem: |
secrets[] |
Uma lista de objetos que contêm as propriedades de metadados de um segredo que está associado ao evento. As propriedades que são listadas variam de acordo com o tipo de secredo. As propriedades que são enviadas para todos os tipos secretos incluem:
Os eventos para os segredos
Eventos de falha também podem conter:
|
tasks[] |
Uma lista de objetos que contém as propriedades de metadados de uma tarefa secreta associada ao evento. As propriedades que são enviadas para todos os tipos secretos incluem:
Eventos de falha também podem conter:
|
source_instance_api_private_url |
A URL de terminal privado que é designada à sua instância de serviço do Secrets Manager. |
source_instance_api_public_url |
A URL de terminal público que é designada à sua instância de serviço do Secrets Manager. |
source_instance_crn |
O Cloud Resource Name (CRN) que identifica com exclusividade sua instância de serviço do Secrets Manager. |
source_instance_dashboard_url |
A URL para o seu painel de serviços do Secrets Manager no console. |
source_service |
O nome de exibição do serviço que enviou a notificação de eventos. |
-
O evento não é aplicável porque não há um limite de tempo de vida (TTL) para esse tipo de segredo. ↩︎
-
O evento não é aplicável porque não há um limite de tempo de vida (TTL) para esse tipo de segredo. ↩︎
-
O evento não é aplicável porque esse tipo de notificação se aplica apenas aos certificados privados. ↩︎
-
O evento não é aplicável porque esse tipo de notificação se aplica apenas aos certificados privados. ↩︎
-
O evento não é aplicável porque esse tipo de notificação se aplica apenas aos certificados privados. ↩︎
-
O evento não é aplicável porque esse tipo de notificação se aplica apenas aos certificados privados. ↩︎
-
O evento não é aplicável porque esse tipo de notificação se aplica apenas aos certificados privados. ↩︎
-
O evento não é aplicável porque esse tipo de notificação se aplica apenas aos certificados privados. ↩︎
-
O evento não é aplicável porque esse tipo de notificação se aplica apenas aos certificados privados. ↩︎
-
O evento não é aplicável porque esse tipo de notificação se aplica apenas aos certificados privados. ↩︎
-
Você recebe uma notificação que informa que o seu rodízio manual não foi bem sucedido. ↩︎
-
Quando uma rotação automática falha, você é notificado diariamente até que ele seja bem-sucedido. ↩︎
-
O evento não é aplicável porque esse tipo de notificação se aplica apenas aos certificados privados. ↩︎
-
O evento não é aplicável porque esse tipo de notificação se aplica apenas aos certificados privados. ↩︎
-
O evento não é aplicável porque esse tipo de notificação se aplica apenas aos certificados privados. ↩︎
-
O evento não é aplicável porque esse tipo de notificação se aplica apenas aos certificados privados. ↩︎
-
O evento não é aplicável porque esse tipo de notificação se aplica apenas aos certificados privados. ↩︎
-
O evento não é aplicável porque esse tipo de notificação se aplica apenas aos certificados privados. ↩︎
-
O evento não é aplicável porque esse tipo de notificação se aplica apenas aos certificados privados. ↩︎
-
O evento não é aplicável porque esse tipo de notificação se aplica apenas aos certificados privados. ↩︎
-
O evento não é aplicável porque não há um limite de tempo de vida (TTL) para esse tipo de segredo. ↩︎
-
O evento não é aplicável porque a data de expiração não pode ser bloqueada nesse tipo de segredo. ↩︎
-
O evento não é aplicável porque a data de expiração não pode ser bloqueada nesse tipo de segredo. ↩︎
-
O evento não é aplicável porque a data de expiração não pode ser bloqueada nesse tipo de segredo. ↩︎