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ções e permissõ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.

Mapeamento de ações para funções de acesso ao serviço
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
  • Executar todas as ações do Leitor
  • Editar os dados da instância de serviço, tais como fontes, regras, tópicos e canais
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
  • Executar todas as ações do Gravador
  • Excluir dados de instância de serviço como fontes, regras, tópicos, canais
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
  • Realizar registro entre serviços, de fonte
  • Visualizar, editar e excluir fontes e eventos
  • Enviar notificações
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
  • Visualizar, criar, editar e excluir Dispositivos push usando cliente SDKs do Event Notifications.
    *Visualizar, criar e excluir Identificações para Dispositivos push usando a API do Event Notifications API.
  • Visualizar, criar e excluir grupos de canal para Dispositivos push usando a API do Event Notifications.
  • Visualizar, criar e excluir Canais para Dispositivos push usando as APIs 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ções mapeadas para diferentes funções
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..