Gerenciando o acesso do IAM para o Event Notifications
Como titular da conta, você pode gerenciar o acesso à instância do Event Notifications em sua conta por meio do link IBM Cloud® Identity and Access Management.
Como um proprietário da conta, é possível configurar políticas dentro de sua conta para criar diferentes níveis de acesso para diferentes usuários. Por exemplo, certos usuários podem ter acesso Read only a uma instância, mas acesso
Write a outro. É possível decidir quem pode criar, atualizar e excluir instâncias do Event Notifications.
Event Notifications adotou o IAM. Não são geradas chaves secretas de aplicativo para novas instâncias. Use chaves de API, em vez disso.
Funções de usuário
O escopo de uma política de acesso é baseado na função designada a um usuário.
As políticas permitem que o acesso seja concedido em diferentes níveis. Algumas das opções são as seguintes:
- Acesso em todas as instâncias do serviço em sua conta
- Acesso a uma instância de serviço individual em sua conta
- Acesso a um recurso específico dentro de uma instância
- Acesso a todos os serviços ativados para o IAM em sua conta
As funções de gerenciamento de plataforma permitem que os usuários executem tarefas em recursos de serviço no nível de plataforma. Por exemplo, as funções podem ser designadas para determinar quem pode criar ou excluir IDs, criar instâncias e ligar instâncias a apps. A tabela a seguir classifica as ações conforme são designadas para funções de gerenciamento de plataforma.
| Função da plataforma | Permissões | Ações de exemplo |
|---|---|---|
| Visualizador | Visualizar instâncias do Event Notifications. | É possível ver os dados de um usuário do Diretório da nuvem ou a configuração do provedor de identidade. |
| Editor | Visualizar e ligar instâncias do Event Notifications. | É possível ligar aplicativos a uma instância do Event Notifications. |
| Operador | Criar, excluir, editar, suspender, continuar, visualizar ou ligar instâncias do Event Notifications. | É possível criar ou excluir uma instância do Event Notifications por meio do catálogo. |
| Administrador | Todas as ações de gerenciamento para todos os serviços na conta. | É possível executar todas as ações do operador e a capacidade de designar políticas para outros usuários. |
A tabela a seguir detalha as ações que são mapeadas para as funções de acesso de serviço. As funções de acesso ao serviço permitem o acesso dos usuários ao Event Notifications e também chamam a API Event Notifications.
| Função de serviço | Permissões | Ações de exemplo |
|---|---|---|
| Leitor | Visualizar dados da instância do Event Notifications | Visualize detalhes da instância de serviço tais como origens, regras, tópicos e canais |
| Gravador | Visualize e edite uma instância do Event Notifications |
|
| Editor de canal | Visualize, crie e exclua assinaturas do Event Notifications | Visualize, crie, atualize e exclua assinaturas do Event Notifications |
| Gerente | Visualize, edite e exclua dados em uma instância do Event Notifications |
|
| Leitor de configuração de serviço | Leia a configuração dos serviços para Gerenciamento de governança. | Configurações de serviços de visualização |
| Gerenciador de origem de eventos | Integração de fonte com o Event Notifications usando autorização entre serviços |
|
| Editor do Event Notifications | Crie uma notificação e visualize a contagem de notificações | Envie notificações e visualize a contagem de notificações |
| Gerenciador de dispositivos | Função customizada para manipular registro de dispositivo push com o serviço do Event Notifications |
|
Para obter mais informações sobre como designar funções de usuário na IU, veja Gerenciando o acesso ao IAM.
Políticas de acesso do Event Notifications
Cada usuário que acessa o serviço do Event Notifications em sua conta deve ter uma política de acesso designada com uma função de usuário do IAM definida. Essa política determina quais ações o usuário pode executar dentro do contexto do serviço ou instância que você seleciona.
As ações são customizadas e definidas pelo serviço do IBM Cloud como operações permitidas no serviço. As ações são então mapeadas para as funções de usuário do IAM. É possível controlar algumas das ações tomadas com o serviço Activity Tracker. Na tabela aseguir, as ações e as permissões necessárias para o Event Notifications são mapeadas.
| Ação de serviço | Nome de exibição | Função | Descrição |
|---|---|---|---|
event-notifications.sources.create |
POST /event-notifications/v1/instances/{instanceID}/sources |
Gerenciador, Administrador, Gerenciador de fonte de evento | Criar Fonte para a instância do Event Notifications |
event-notifications.sources.read |
GET /event-notifications/v1/instances/{instanceID}/sources/{sourceID} |
Gerenciador, Administrador, Evento-Origem-Gerenciador, Canal-Editor | Obter fonte para a instância do Event Notifications |
event-notifications.sources.update |
PUT /event-notifications/v1/instances/{instanceID}/sources/{sourceID} |
Gerenciador, Administrador, Gerenciador de fonte de evento | Atualizar fonte para a instância do Event Notifications |
event-notifications.sources.delete |
DELETE /event-notifications/v1/instances/{instanceID}/sources/{sourceID} |
Gerenciador, Administrador, Gerenciador de fonte de evento | Excluir fonte da instância do Event Notifications |
event-notifications.sources.list |
GET /event-notifications/v1/instances/{instanceID}/sources |
Gerenciador, Administrador, Evento-Origem-Gerenciador, Editor de Canal | Obter todas as fontes de instância do Event Notifications |
event-notifications.topics.create |
POST /event-notifications/v1/instances/{instanceID}/topics |
Gerenciador, Gravador, Administrador | Criar tópico para a instância do Event Notifications |
event-notifications.topics.read |
GET /event-notifications/v1/instances/{instanceID}/topics/{topicID} |
Gerenciador, Leitor, Gravador, Administrador, Canal-Editor | Obter tópico para a instância do Event Notifications |
event-notifications.topics.update |
PUT /event-notifications/v1/instances/{instanceID}/topic/{topicID} |
Gerenciador, Gravador, Administrador | Atualizar tópico para a instância do Event Notifications |
event-notifications.topics.delete |
DELETE /event-notifications/v1/instances/{instanceID}/topic/{topicID} |
Gerenciador, Administrador | Excluir tópico da instância do Event Notifications |
event-notifications.topics.list |
GET /event-notifications/v1/instances/{instanceID}/topics |
Gerenciador, Leitor, Gravador, Administrador, Canal-Editor | Obter todos os tópicos para a instância do Event Notifications |
event-notifications.rules.create |
POST /event-notifications/v1/instances/{instanceID}/rules |
Gerenciador, Gravador, Administrador | Criar regra para a instância do Event Notifications |
event-notifications.rules.read |
GET /event-notifications/v1/instances/{instanceID}/rules/{ruleID} |
Gerenciador, Leitor, Gravador, Administrador, Canal-Editor | Obter regra para a instância do Event Notifications |
event-notifications.rules.update |
PUT /event-notifications/v1/instances/{instanceID}/rules/{ruleID} |
Gerenciador, Gravador, Administrador | Regra de atualização para a instância do Event Notifications |
event-notifications.rules.delete |
DELETE /event-notifications/v1/instances/{instanceID}/rules/{ruleID} |
Gerenciador, Administrador | Excluir regra da instância do Event Notifications |
event-notifications.rules.list |
GET /event-notifications/v1/instances/{instanceID}/rules |
Gerenciador, Leitor, Gravador, Administrador, Canal-Editor | Obter todas as regras para a instância do Event Notifications |
event-notifications.destinations.create |
POST /event-notifications/v1/instances/{instanceID}/destinations |
Gerenciador, Gravador, Administrador | Criar destino para a instância do Event Notifications |
event-notifications.destinations.read |
GET /event-notifications/v1/instances/{instanceID}/destinations/{destinationID} |
Gerenciador, Leitor, Gravador, Administrador, Canal-Editor | Obter destino para a instância do Event Notifications |
event-notifications.destinations.update |
PUT /event-notifications/v1/instances/{instanceID}/destinations/{destinationID} |
Gerenciador, Gravador, Administrador | Atualizar destino para a instância do Event Notifications |
event-notifications.destinations.delete |
DELETE /event-notifications/v1/instances/{instanceID}/destinations/{destinationID} |
Gerenciador, Administrador | Excluir destino da instância do Event Notifications |
event-notifications.destinations.list |
GET /event-notifications/v1/instances/{instanceID}/destinations |
Gerenciador, Leitor, Gravador, Administrador, Canal-Editor | Obter todos os destinos para a instância do Event Notifications |
event-notifications.subscriptions.create |
POST /event-notifications/v1/instances/{instanceID}/subscriptions |
Gerenciador, Gravador, Administrador, Canal-Editor | Criar assinatura para a instância do Event Notifications |
event-notifications.subscriptions.read |
GET /event-notifications/v1/instances/{instanceID}/subscriptions/{subscriptionID} |
Gerenciador, Leitor, Gravador, Administrador, Canal-Editor | Obter assinatura para a instância do Event Notifications |
event-notifications.subscriptions.update |
PUT /event-notifications/v1/instances/{instanceID}/subscriptions/{subscriptionID} |
Gerenciador, Gravador, Administrador, Canal-Editor | Atualizar assinatura para a instância do Event Notifications |
event-notifications.subscriptions.delete |
DELETE /event-notifications/v1/instances/{instanceID}/subscriptions/{subscriptionID} |
Gerenciador, Administrador, Canal-Editor | Excluir assinatura da instância do Event Notifications |
event-notifications.subscriptions.list |
GET /event-notifications/v1/instances/{instanceID}/subscriptions |
Gerenciador, Leitor, Gravador, Administrador, Canal-Editor | Obter todas as assinaturas para a instância do Event Notifications |
event-notifications.notifications.post |
POST /event-notifications/v1/instances/{{instance_id}}/notifications |
Gerenciador, Gravador, Administrador, Evento-Origem-Gerenciador, Evento-Notificação-Editor | Enviar notificação para a instância do Event Notifications |
event-notifications.counts.get |
GET /event-notifications/v1/instances/{instanceID}/counts |
Gerenciador, Leitor, Evento-Origem-Gerenciador, Canal-Editor, Evento-Notificação-Editor | Obter todas as notificações para a instância do Event Notifications |
event-notifications.events.create |
GET /event-notifications/v1/instances/{instanceID}/events/{eventID}?sourceID=* |
Gerenciador, Administrador, Gerenciador de fonte de evento | Obter evento para a instância do Event Notifications |
event-notifications.events.read |
POST /event-notifications/v1/instances/{instanceID}/sources |
Gerenciador, Administrador, Gerenciador de fonte de evento | |
event-notifications.events.list |
GET /event-notifications/v1/instances/{instanceID}/events?sourceID=* |
Gerenciador, Administrador, Gerenciador de fonte de evento | Obter todos os eventos para a instância do Event Notifications |
event-notifications.events.delete |
DELETE /event-notifications/v1/instances/{instanceID}/events/{eventID}?sourceID=* |
Gerenciador, Administrador, Gerenciador de fonte de evento | Excluir eventos da instância do Event Notifications |
event-notifications.publickey.read |
GET /event-notifications/v1/instances/{instanceID}/destinations/{destinationID}/public_key |
Gerenciador, Leitor, Gravador, Administrador, Canal-Editor | Ler a chave pública usada para assinar o webhook |
event-notifications.severities.create |
POST /event-notifications/v1/instances/{instanceID}/severities |
Gerente de fonte de evento | Criar severidades customizadas |
event-notifications.severities.read |
GET /event-notifications/v1/instances/{instanceID}/severities/{severity_id}?sourceID=* |
Gerente de fonte de evento | Obter uma severidade com base na fonte |
event-notifications.severities.list |
GET /event-notifications/v1/instances/{instanceID}/severities?sourceID=* |
Gerente, Leitor, Administrador, Gerente de fonte de evento | Obter todas as severidades com base na fonte |
event-notifications.severities.delete |
DELETE /event-notifications/v1/instances/{instanceID}/severities/{severity_id}?sourceID=* |
Gerente de fonte de evento | Excluir uma severidade com base na fonte |
event-notifications.email-status.create |
POST /event-notifications/v1/instances/{instanceID}/email-status/sources/{sourceID}/notifications/{notificationID} |
Relator de status | Criar/atualizar status atual de um e-mail enviado |
event-notifications.sms-status.create |
POST /event-notifications/v1/instances/{instanceID}/sms-status/sources/{sourceID}/notifications/{notificationID} |
Relator de status | Criar/atualizar status atual de uma SMS enviada |
event-notifications.webhook-status.create |
POST /event-notifications/v1/instances/{instanceID}/webhook-status/sources/{sourceID}/notifications/{notificationID} |
Relator de status | Criar/atualizar status atual de um webhook enviado |
event-notifications.devices.create |
POST /event-notifications/v1/instances/{instanceID}/destinations/{id}/devices |
Gerente, Administrador, Gerente de dispositivo | Criar um dispositivo em um destino FCM de notificações de push |
event-notifications.devices.read |
GET /event-notifications/v1/instances/{instanceID}/destinations/{id}/devices/{device_id} |
Gerente, Administrador, Gerente de dispositivo | Obter um único dispositivo em um destino FCM de notificações de push |
event-notifications.devices.list |
GET /event-notifications/v1/instances/{instanceID}/destinations/{id}/devices |
Gerente, Administrador, Gerente de dispositivo | Criar todos os dispositivos em um destino FCM de notificações de push |
event-notifications.devices.update |
PUT /event-notifications/v1/instances/{instanceID}/destinations/{id}/devices/{device_id} |
Gerente, Administrador, Gerente de dispositivo | Atualizar um dispositivo existente em um destino FCM de notificações de push |
event-notifications.devices.delete |
POST /event-notifications/v1/instances/{instanceID}/destinations/{id}/devices/{device_id} |
Gerente, Administrador, Gerente de dispositivo | Excluir um dispositivo existente em um destino FCM de notificações de push |
event-notifications.tag-subscriptions.list |
GET /event-notifications/v1/instances/{instanceID}/destinations/{id}/tag_subscriptions |
Gerenciador, Administrador | listar todas as assinaturas de um destino push do DCM |
event-notifications.tag-subscriptions.devices.list |
GET /event-notifications/v1/instances/{instanceID}/destinations/{id}/tag_subscriptions/devices/{device_id} |
Gerente, Administrador, Gerente de dispositivo | Obter um único dispositivo de assinaturas de identificações em um destino FCM de notificações de push |
event-notifications.tag-subscriptions.create |
POST /event-notifications/v1/instances/{instanceID}/destinations/{id}/tag_subscriptions |
Gerente, Administrador, Gerente de dispositivo | Criar uma assinatura de identificação em um destino FCM de notificações de push |
event-notifications.tag-subscriptions.delete |
DELETE /event-notifications/v1/instances/{instanceID}/destinations/{id}/tag_subscriptions |
Gerente, Administrador, Gerente de dispositivo | Excluir assinaturas de identificação em um destino FCM de notificações de push |
event-notifications.channel-groups.create |
POST /event-notifications/v1/instances/{instance_id}/destinations/{id}/fcm_channel_groups |
Gerente, Administrador, Gerente de dispositivo | Criar um grupo de canais em um destino FCM de notificações de push |
event-notifications.channel-groups.read |
POST /event-notifications/v1/instances/{instance_id}/destinations/{id}/fcm_channel_groups/{group_id} |
Gerente, Administrador, Gerente de dispositivo | Obter um novo grupo de canais em um destino FCM de notificações de push |
event-notifications.channel-groups.list |
GET /event-notifications/v1/instances/{instance_id}/destinations/{id}/fcm_channel_groups |
Gerente, Administrador, Gerente de dispositivo | Listar todos os grupos de canais em um destino FCM de notificações de push |
event-notifications.channel-groups.update |
PUT /event-notifications/v1/instances/{instance_id}/destinations/{id}/fcmChannelGroups/{group_id} |
Gerente, Administrador, Gerente de dispositivo | Atualizar um grupo de canais existente em um destino FCM de notificações de push |
event-notifications.channel-groups.delete |
DELETE /event-notifications/v1/instances/{instance_id}/destinations/{id}/fcm_channel_groups/{group_id} |
Gerenciador, Administrador | Excluir um grupo de canais existente em um destino FCM de notificações de push |
event-notifications.integrations.list |
GET /event-notifications/v1/instances/{instance_id}/integrations |
Gerente, Administrador, Gerente de dispositivo | Listar todas as integrações do Key Management Services |
event-notifications.integrations.read |
GET /event-notifications/v1/instances/{instance_id}/integrations/{id} |
Gerente, Administrador, Gerente de dispositivo | Obtenha uma única integração do Key Management Services |
event-notifications.integrations.update |
PUT /event-notifications/v1/instances/{instance_id}/integrations/{id} |
Gerente, Administrador, Gerente de dispositivo | Atualizar uma integração existente do Key Management Services |
Trabalhando com chaves API
Ao criar credenciais de serviço, é possível notar que uma apiKey é exibida, em vez do appSecret.
Para usar qualquer API de REST, é necessário gerar o token de acesso usando o seguinte comando cURL:
Parâmetros
curl -k -X POST \
--header "Content-Type: application/x-www-form-urlencoded" \
--header "Accept: application/json" \
--data-urlencode "grant_type=urn:ibm:params:oauth:grant-type:apikey" \
--data-urlencode "apikey=G2c7oaUuOjul1RbmbjAeI7YwJSUCW_hmfif3GhLabYPE" \
"https://iam.cloud.ibm.com/identity/token"
Resposta
{
"access_token": "eyJraWQiOiIyMDE3MTAzMC0wMDowMDowMCIsImFsZyI6IlJTMjU2In0.eyJpYW1faWQiOiJpYW0tU2VydmljZUlkLTcwMTgzMDYwLWY3NWUtNGQ5Yy04NjY5LTA4NTNkYzc2NDQyMSIsImlkIjoiaWFtLVNlcnZpY2VJZC03MDE4MzA2MC1mNzVlLTRkOWMtODY2OS0wODUzZGM3NjQ0MjEiLCJyZWFsbWlkIjoiaWFtIiwiaWRlbnRpZmllciI6IlNlcnZpY2VJZC03MDE4MzA2MC1mNzVlLTRkOWMtODY2OS0wODUzZGM3NjQ0MjEiLCJzdWIiOiJTZXJ2aWNlSWQtNzAxODMwNjAtZjc1ZS00ZDljLTg2NjktMDg1M2RjNzY0NDIxIiwic3ViX3R5cGUiOiJTZXJ2aWNlSWQiLCJhY2NvdW50Ijp7ImJzcyI6IjJmZDIwM2E1M2Q5MDI1ZDI4NTU5YjZhZDFhM2JhMTNjIn0sImlhdCI6MTUzNDc2MDIwNywiZXhwIjoxNTM0NzYzODA3LCJpc3MiOiJodHRwczovL2lhbS5ibHVlbWl4Lm5ldC9pZGVudGl0eSIsImdyYW50X3R5cGUiOiJ1cm46aWJtOnBhcmFtczpvYXV0aDpncmFudC10eXBlOmFwaWtleSIsInNjb3BlIjoiaWJtIG9wZW5pZCIsImNsaWVudF9pZCI6ImltZnB1c2giLCJhY3IiOjEsImFtciI6WyJwd2QiXX0.MSUIk3KvFKeidTa4Qf9Ydf-7_boRwPRyigRjBkF0KWT2AVxeQ7oDVOgSEvApzy1tKSoi4N-bAIDpsOkd-BYnYtZnAFJxn9IGSnHli4YXOabLnLIuXbvYJBqCeAWVZoTiqQO6H7ZY__8Nf1YlfGms-iV4FFRPVAq1bx_9BylY1t2gq6WhTWciSGhoq5CHr_bdbc3qK6NRHDzvOfqBP5hDRDo9WAVFSSqtMJNttGR1Dj92jM0o9yADWe32WoVXbxMDX7VZ-wEAbvIJIW1ZcQPPKG9rfW57XOthZSWSbE4MxrUkoHvrBiGqcJfm_yV_mZD_Ynbm4yDSW4q0HbHOB1K7mg",
"refresh_token": "J1D6UZp3fEhxRdPCzhY4kvt7ojXIdUHjmO8x9pxGMgSZt0XpGd15F098WFKKUwp_v0pktQxdOZtcBGx3sL5THYUxU-PlkxELZ3gKX78dWf4P7lYDLDXR2x_n48fPIvRQoDD0ZJAKewO3o1IcegmNdf_InSgvu2M3Ra3FwlJPDN9mRH6-2e8pHnvq4e1rdY6pV0ufxweKc9dGqU-U7VU765BCg84kr8tkb9kpZnnPseDJ89gf5lhkZteKoNVkn-uiLUF0L-yv33tgtoDrdU5-FqaV00TUbLBoJEeTTnUD1fgIGB6SfphIImCQ0368gTU2emGBe3lzlQBnvkOXaMoBds3Nc2YL6px2LhqBWFd_ho68P4ahz1cbTn1rhqIjZMokeN88sreAKsRWhH7nVgBpfN3FS7OJBrVTx55j44vrZdH3vFJ-glLNb3FBwI6_6N_i2lVz7W-_W9xHW2CTYO7e3PYEZorQDBRZFIPImES6v7UV7YyaYG5ikktHHsOZsMzb6UYP-Kg1k2z_UTOumBkCDYxeV9GxukgSSK7Nckpysi5DJt4VgEnyxlbnfmWhtVeSzl8vjIBLJFE7oe7QDn3YyfCDP4QS4cIkTAvvpE5916pXk-rU9NLbIp6mmJw4PwY8__ao6CmCZJ4IDlr6GsDu4Ocn72yGgsNSwI-sq-dJyMuYG494CQ3MOooWsUjzhLTIHGsuHOkouMh07yR-v-D0dNrBeRmXM-JyF6BmtAS-rcivztjjbfJV3NNZcjC9RJvgf7OW5kp7dSRXMlohHu4tAxgVy16ON3Hm1TFnZt5jsaYLcwxuC6s2Qv7N4QEf2VIWLI5UWjbuj1IFi_Jq4RAkCCNgdvKo6RWaMbvZ8XL-3VKaDiJ60oy7wjGwZmWAWIFBZ1S3Br5waaT51T6mFV_s0VTu-68HhFpdIb1WFCXrU8DEcsamkUU7XRiTtBEIFNWQWnDDGMtn_vFGJCFygOd8CMsj",
"token_type": "Bearer",
"expires_in": 3600,
"expiration": 1534763807,
"scope": "ibm openid"
}
Após gerar o token de acesso usando o comando curl anterior, utilize as APIs REST passando o Bearer <value of access_token> no cabeçalho Authorization.
Por exemplo:
curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Authorization: Bearer eyJraWQiOiIyMDE3MTAzMC0wMDowMDowMCIsImFsZyI6IlJTMjU2In0.eyJpYW1faWQiOiJpYW0tU2VydmljZUlkLTYxZDdhNzJkLWM3YzAtNGNlZS05Zjg0LWI2ZDc1NzgzMWM2NSIsImlkIjoiaWFtLVNlcnZpY2VJZC02MWQ3YTcyZC1jN2MwLTRjZWUtOWY4NC1iNmQ3NTc4MzFjNjUiLCJyZWFsbWlkIjoiaWFtIiwiaWRlbnRpZmllciI6IlNlcnZpY2VJZC02MWQ3YTcyZC1jN2MwLTRjZWUtOWY4NC1iNmQ3NTc4MzFjNjUiLCJzdWIiOiJTZXJ2aWNlSWQtNjFkN2E3MmQtYzdjMC00Y2VlLTlmODQtYjZkNzU3ODMxYzY1Iiwic3ViX3R5cGUiOiJTZXJ2aWNlSWQiLCJhY2NvdW50Ijp7ImJzcyI6Ijk3MDg5MjkzNTg0OTg1NzBhYjYxMjUwNDk3ZjBmMDI2In0sImlhdCI6MTUzNTM2NTQ5MywiZXhwIjoxNTM1MzY5MDkzLCJpc3MiOiJodHRwczovL2lhbS5ibHVlbWl4Lm5ldC9pZGVudGl0eSIsImdyYW50X3R5cGUiOiJ1cm46aWJtOnBhcmFtczpvYXV0aDpncmFudC10eXBlOmFwaWtleSIsInNjb3BlIjoiaWJtIG9wZW5pZCIsImNsaWVudF9pZCI6ImRlZmF1bHQiLCJhY3IiOjEsImFtciI6WyJwd2QiXX0.ASKxD9Wrz5--OYVkPIsufKK9RNKKhJKuvRldm5mnGNv6PSH7sPBB6NiRG-SSGzEC0ZIei1WqtRE-0TRHwzSnIjXPb3yffBcvNtXuG9wT8GT8zsvxQ7bJk0ovge_0Xrrcym4cCTq2jO6ROWzOZ275wkH0h4fIzukbPv7YpT2Z-DdxIwHY_uALxqcCY83xODtMIs21PO6YwQ3KX4YfNEpKUminJpo45T8po4k049PODQKEK65YrqHYK1_voCJUu9xt9uVoGd-r962fhnbuxeEAe6di9KGVfOGfEdZFHgexoG__wXHa0Rmv9dCl-nNI4WMZfCTj8jgfEOhuZstpW7pW2g' --header 'Accept-Language: en-US' -d '{ \
"message": { \
"alert": "Notification alert message" \
} \
}' 'https://us-east.imfpush.cloud.ibm.com/imfpush/v1/apps/4809d407-85ff-4d11-ae4b-0fcdf8a833f1/messages'
Para obter mais informações sobre o IAM, consulte Acesso do IAM..