Configurando o acesso para ligações de serviço

As associações de serviços em Code Engine usam uma ID de serviço para acessar os serviços de IBM Cloud. Um ID de serviço contém as credenciais para se comunicar com uma instância de serviço em nome do seu projeto Code Engine. Antes de vincular uma instância de serviço a uma carga de trabalho do Code Engine, você deve configurar o acesso para as vinculações com base no fato de desejar que o Code Engine crie e gerencie automaticamente a ID de serviço para você ou se deseja usar uma ID de serviço gerenciada por você.

Interessado em configurar seu projeto para que todos os usuários do projeto possam criar e excluir ligações de serviço? Com permissões suficientes, é possível usar as páginas de integrações do Projeto no console para configurar operações de ligação de serviço a partir de uma única página Se você não tiver permissões suficientes para executar essas ações, será possível usar essa página para ajudar a entender as permissões necessárias. Consulte Definindo Configurações do Projeto.

Antes de poder ligar seu app, tarefa ou função a uma instância de serviço específica do IBM Cloud, determine se você deseja criar e gerenciar seu próprio ID de serviço ou se deseja que o Code Engine crie e gerencie automaticamente o ID de serviço para você. Com base em sua escolha, atribua as políticas de acesso adequadas. Code Engine usa um ID de serviço por projeto para trabalhar com ligações de serviço.

Utilização das políticas de acesso padrão para ligação de serviços

Por padrão, Code Engine automaticamente cria um ID de serviço para acessar todos os serviços no grupo de recursos do projeto Code Engine quando sua conta que é usada com seu projeto tem permissões suficientes. O ID do serviço é criado durante a primeira operação de ligação de serviço.

Para usar políticas de acesso de ligação de serviço padrão quando seu projeto Code Engine estiver no grupo de recursos same como a instância de serviço que você deseja ligar, configure o acesso para Code Engine para criar e gerenciar automaticamente o ID de serviço para ligações de serviço.

Configurando o acesso para Code Engine para criar e gerenciar automaticamente o ID de serviço para ligações de serviço

Se a sua instância de serviço estiver no mesmo grupo de recursos do seu projeto Code Engine, e você quiser Code Engine para criar e gerenciar automaticamente o ID de serviço para ligação de serviço para você, então a conta IBM Cloud que é usada com o seu projeto Code Engine deve ter o acesso de serviço Writer e o acesso da plataforma Operator, no mínimo.

Com essas permissões definidas para sua conta, quando você cria uma ligação de serviço, Code Engine verifica e configura automaticamente um ID de serviço com o Operator e Manager acesso para todos os serviços no grupo de recursos do projeto Code Engine. Code Engine usa este ID de serviço para acessar os serviços IBM Cloud com ligações de serviço.

Sempre que Code Engine cria o ID de serviço que é usado para ligações de serviço para o seu projeto, este ID de serviço é reutilizado com ligações de serviços subsequentes dentro do mesmo projeto, a menos que você execute o comando CLI project update para configurar seu projeto para ligar serviços em um grupo de recursos diferente ou você execute o comando CLI project update para usar um ID do serviço personalizado com permissões de acesso para Code Engine ligações de serviço.

Por exemplo, suponha que você deseje Code Engine para criar e gerenciar automaticamente o ID de serviço para ligações de serviço para uma instância de serviço IBM Cloudant. Além disso, suponha que a conta my-user que é usada com o seu projeto Code Engine e a instância de serviço IBM Cloudant estejam ambos no mesmo grupo de recursos.

As etapas a seguir descrevem uma maneira de configurar as permissões de acesso necessárias para que Code Engine possa criar e gerenciar automaticamente o ID de serviço para ligações de serviço para my-user. O proprietário da conta para a instância de serviço conclui as seguintes etapas para designar permissões para my-user.

  1. Criar um grupo de recursos IAM para usuários que criam ligações de serviço Code Engine.

    1. Lançar Visão Geral do Access(IAM).
    2. Selecione Gerenciar > Conta > Grupos de Recursos > Criar grupo de recursos.
    3. Criar um grupo de recursos; por exemplo, CodeEngine_servicebindings_resourcegroup.
  2. Crie as instâncias de serviço que você deseja ligar no mesmo grupo de recursos. Para este exemplo, crie uma instância de serviço IBM Cloudant no grupo de recurso CodeEngine_servicebindings_resource group.

  3. Criar um grupo de acesso IAM para usuários que criam ligações de serviço Code Engine.

    1. Lançar Visão Geral do Access(IAM).

    2. Selecione Gerenciar > Acesso (IAM) > Grupos de acesso.

    3. Crie um grupo; por exemplo, CodeEngine_servicebindings_accessgroup.

    4. De dentro deste novo grupo de acesso, clique na aba Acesso e atribua as duas políticas de acesso a seguir ao grupo de acesso. Para a primeira política de acesso,

      • Na opção “Serviço”, selecione “ All Identity and Access enabled services ”.
      • Para Recursos, selecione o grupo de recursos específicos que você criou na etapa anterior; por exemplo, CodeEngine_servicebindings_resourcegroup.
      • Para acesso ao grupo de Recursos, selecione Viewer.
      • Para Funções e ações, selecione Plataforma Acesso de Administrator.
      • Clique em Adicionar para adicionar a política de acesso a este grupo de acesso.
    5. Atribua a segunda política de acesso para este grupo de acesso.

      • Na opção “Serviço”, selecione “ Code Engine ”.
      • Para Recursos, selecione o grupo de recursos específicos que você criou na etapa anterior; por exemplo, CodeEngine_servicebindings_resourcegroup.
      • Para acesso ao grupo de Recursos, selecione Viewer.
      • Para Funções e ações, selecione o acesso ao serviço de Writer e acesso à plataforma de Operator.
      • Clique em Adicionar para adicionar a política de acesso a este grupo de acesso.
    6. Clique em Designar para atribuir as políticas de acesso a este grupo de acesso.

  4. Adicio o usuário my-user a este grupo de acesso.

Agora você está pronto para criar ligações de serviço em Code Engine em que Code Engine automaticamente cria um ID de serviço com permissões suficientes para criar credenciais de serviço às suas instâncias de serviço especificadas. Consulte ligar uma instância de serviço a uma carga de trabalho de app, tarefa ou função.

Configurando um Projeto para Ligar serviços em um grupo de recursos diferente

Por padrão, Code Engine automaticamente cria um ID de serviço para acessar todos os serviços no grupo de recursos do projeto Code Engine quando sua conta que é usada com seu projeto tem permissões suficientes. O ID do serviço é criado durante a primeira operação de ligação de serviço.

No entanto, se a instância de serviço do IBM Cloud que você deseja ligar à sua carga de trabalho do Code Engine estiver em um grupo de recursos diferente do grupo de recursos do Code Engine projeto para sua carga de trabalho e você desejar que o Code Engine crie e gerencie automaticamente o ID de serviço para a ligação de serviço em seguida, deve-se concluir as seguintes ações antes de criar a ligação de serviços.

Por exemplo, se o seu projeto Code Engine estiver no grupo de recursos Default, e você quiser se ligar a uma instância de serviço que existe no grupo de recursos dev, você deve atualizar o projeto Code Engine para que Code Engine possa acessar instâncias de serviços em outros grupos de recursos.

Atualizar o projeto para acessar instâncias de serviços em outros grupos de recursos

Quando os recursos que você deseja ligar estão em um grupo de recursos diferente, configure seu projeto Code Engine com o CLI para que ele possa acessar recursos no grupo de recursos diferentes. Use o comando ibmcloud ce project update e especifique a opção --binding-resource-group para configurar um projeto Code Engine para acesso de ligação de serviço para todas as instâncias de serviço em um grupo de recursos. Este comando informa ao seu Code Engine projeto qual grupo de recursos que ele pode ligar. Você pode atualizar o seu projeto para ligar serviços a um grupo de recursos diferente apenas com a CLI.

O project update comando funciona dentro do projeto selecionado como contexto atual. Antes de usar o comando project update confirme que você está no projeto que deseja. Use o comando ibmcloud ce project current para exibir detalhes do projeto que é atualmente destinado. Se necessário, use o ibmcloud ce project select comando para selecionar seu projeto como o contexto atual.

  • Para configurar o acesso de ligação de serviços para todas as instâncias de serviço no grupo de recursos Padrão,

    ibmcloud ce project update --binding-resource-group Default
    
  • Para configurar o acesso de ligação de serviço para todas as instâncias de serviço em um grupo de recursos, especificando o ID do grupo de recursos,

    ibmcloud ce project update --binding-resource-group-id abcdabcdabcdabcdabcdabcdabcdabcd
    

    Para obter uma lista de seus grupos de recursos, incluindo os IDs do grupo de recursos, execute ibmcloud resource groups.

  • Para configurar o acesso à ligação de serviço para todas as instâncias de serviço em todos os grupos de recursos:

    ibmcloud ce project update --binding-resource-group "*"
    

Ao executar o project update comando, é criado um ID de serviço para o projeto, que é usado para configurar o projeto atual para ligações de serviço. Se você não tem permissão para criar este ID de serviço, então você recebe um erro de que seu projeto não está pronto para trabalhar com ligações de serviço. Converse com seu administrador de contas sobre suas políticas de acesso, ou peça ao administrador para configurar o acesso para Code Engine para criar e gerenciar automaticamente o ID de serviço para ligações de serviço.

Como usar um ID de serviço personalizado para ligações de serviço

Se você quiser mais controle sobre políticas de acesso ou grupos de recursos, você pode criar um ID de serviço personalizado para a sua instância de serviço.

Sua organização pode optar por usar um ID de serviço personalizado para acessar uma instância de serviço específica se o proprietário da conta não quiser conceder o acesso Administrator para um usuário aos Todos os serviços habilitados e de acesso dentro de um grupo de recursos, o qual é necessário para Code Engine para criar e gerenciar automaticamente o ID de serviço para ligações de serviço. O proprietário da conta pode querer escoar o acesso do usuário a um tipo de serviço ou instância de serviço específica. Nestes casos, um ID de serviço personalizado fornece esse controle.

Para usar um ID de serviço personalizado para ligações de serviço,

Criação de um ID de serviço personalizado com permissões de acesso para ligações de serviço Code Engine

Quando você estiver usando um ID de serviço personalizado, você deve dar o acesso da plataforma personalizada ID do serviço Operator para que este ID de serviço possa criar as credenciais de serviço para ligações de serviço.

Por exemplo, suponha que você queira criar uma ligação de serviços para ligar uma carga de trabalho Code Engine a uma instância de serviço IBM Cloudant. No entanto, você não quer dar ao usuário Administrator acesso para todos os Todos os serviços habilitados e de acesso dentro de um grupo de recursos. No entanto, deseja-se dar acesso ao usuário a uma instância específica de IBM Cloudant.

As etapas a seguir descrevem uma maneira de configurar um ID de serviço personalizado com as permissões de acesso necessárias para que Code Engine possa criar ligações de serviço para my-user. O proprietário da conta para a instância de serviço conclui as seguintes etapas para criar um ID de serviço personalizado.

  1. Criar um grupo de recursos IAM para usuários que criam ligações de serviço Code Engine.

    1. Lançar Visão Geral do Access(IAM).
    2. Selecione Gerenciar > Conta > Grupos de Recursos > Criar grupo de recursos.
    3. Criar um grupo de recursos; por exemplo, CodeEngine_servicebindings_resourcegroup.
  2. Crie as instâncias de serviço que você deseja ligar no mesmo grupo de recursos. Para este exemplo, crie uma instância de serviço IBM Cloudant no grupo de recurso CodeEngine_servicebindings_resource group.

  3. Criar um grupo de acesso IAM para usuários que criam ligações de serviço Code Engine.

    1. Lançar Visão Geral do Access(IAM).
    2. Selecione Gerenciar > Acesso (IAM) > Grupos de acesso.
    3. Crie um grupo; por exemplo, CodeEngine_servicebindings_accessgroup.
    4. De dentro deste novo grupo de acesso, clique na guia Acesso e atribua a seguinte política de acesso para o serviço Code Engine.
      • Para Service, selecione Code Engine.
      • Para Recursos, selecione o grupo de recursos específicos que você criou na etapa anterior; por exemplo, CodeEngine_servicebindings_resourcegroup.
      • Para acesso ao grupo de Recursos, selecione Viewer.
      • Para Funções e ações, selecione o acesso ao serviço de Writer e acesso à plataforma de Operator.
      • Clique em Adicionar para adicionar a política de acesso a este grupo de acesso.
    5. Clique em Designar para atribuir as políticas de acesso a este grupo de acesso.
    6. Crie as instâncias de serviço que você deseja ligar no mesmo grupo de recursos. Para este exemplo, crie uma instância de serviço IBM Cloudant no grupo de recurso CodeEngine_servicebindings_resource group.
  4. Adicio o usuário my-user a este grupo de acesso.

  5. Crie um ID de serviço para a instância de serviço que você deseja ligar.

    1. Lançar Visão Geral do Access(IAM).
    2. Selecione Gerenciar > Access (IAM) > IDs de serviço.
    3. Crie um ID de serviço; por exemplo, CodeEngine_servicebindings_serviceid.
    4. De dentro deste novo ID de serviço, clique no grupo Designar. A partir da página de acesso Assign, selecione Política de acesso. Não selecione Grupos de Acesso. Designar a seguinte política de acesso,
      • Para Service, selecione a instância de serviço que deseja ligar; por exemplo, instância de serviço IBM Cloudant.
      • Para Recursos, selecione o grupo de recursos específicos que você criou para os usuários que podem criar ligações de serviço a este serviço.
      • Para acesso ao grupo de Recursos, selecione Viewer.
      • Para Funções e ações, selecione o acesso ao serviço de Manager e acesso à plataforma de Operator.
      • Clique em Adicionar para adicionar a política de acesso a este ID de serviço.
    5. Clique em Designar para designar as políticas de acesso a este ID de serviço.

Agora que você tem um ID de serviço personalizado para ligações de serviço, você deve configurar seu projeto Code Engine para usar o ID de serviço personalizado.

Configurando um Projeto para usar um ID de serviço personalizado

Para configurar um projeto Code Engine para ligação de serviço para usar um ID de serviço personalizado que você gerencia, use o comando CLI ibmcloud ce project update e especifique a opção --binding-service-id. Você pode atualizar seu projeto para usar um ID de serviço personalizado apenas com a CLI.

O project update comando funciona dentro do projeto selecionado como contexto atual. Antes de usar o comando project update confirme que você está no projeto que deseja. Use o comando ibmcloud ce project current para exibir detalhes do projeto que é atualmente destinado. Se necessário, use o ibmcloud ce project select comando para selecionar seu projeto como o contexto atual.

  1. Descubra o ID do seu serviço personalizado clicando em “Detalhes” na página do ID do serviço no console ou execute o comando da CLI ibmcloud iam service-ids .

  2. Execute o comando ibmcloud ce project update. Por exemplo, se o ID do seu serviço for ServiceId-12a3456b-c78d-901e-f2a3b4cabcde:

    ibmcloud ce project update --binding-service-id ServiceId-12a3456b-c78d-901e-f2a3b4cabcde
    

Sempre que você executar o comando project update --binding-service-id, Code Engine substitui qualquer ID de serviço existente e usa este ID de serviço para ligações de serviço.

Próximas etapas

Agora que o acesso para ligações de serviços está configurado, você está pronto para ligar uma instância de serviço a um app, tarefa ou carga de trabalho de função.