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.
-
Se você quiser Code Engine para criar e gerenciar automaticamente o ID de serviço para você, então configure políticas padrão de acesso de ligação de serviço. Certidão-se de que políticas de acesso adequado são designadas para a conta IBM Cloud que é usada com o seu projeto Code Engine.
- Se o seu projeto Code Engine está no grupo de recursos mesmo como a instância de serviço que você deseja ligar, então você precisa configurar políticas de acesso de ligação de serviço padrão.
- Se o seu projeto Code Engine estiver em um grupo de recursos diferente da instância de serviço que você deseja ligar, você precisará configurar políticas padrão de acesso de ligação de serviço para Code Engine para criar e gerenciar automaticamente o ID de serviço para ligações de serviço, e você precisa configurar seu projeto para ligar serviços em um grupo de recursos diferente.
-
Se você quiser mais controle sobre políticas de acesso, você pode optar por usar um ID de serviço personalizado para ligações de serviço que esteja configurado em sua instância de serviço. Neste caso, atribua políticas de acesso ao ID do serviço personalizado. Você precisará configurar o seu projeto para usar o ID de serviço personalizado.
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.
-
Criar um grupo de recursos IAM para usuários que criam ligações de serviço Code Engine.
- Lançar Visão Geral do Access(IAM).
- Selecione Gerenciar > Conta > Grupos de Recursos > Criar grupo de recursos.
- Criar um grupo de recursos; por exemplo,
CodeEngine_servicebindings_resourcegroup.
-
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. -
Criar um grupo de acesso IAM para usuários que criam ligações de serviço Code Engine.
-
Lançar Visão Geral do Access(IAM).
-
Selecione Gerenciar > Acesso (IAM) > Grupos de acesso.
-
Crie um grupo; por exemplo,
CodeEngine_servicebindings_accessgroup. -
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.
- Na opção “Serviço”, selecione “
-
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
Writere acesso à plataforma deOperator. - Clique em Adicionar para adicionar a política de acesso a este grupo de acesso.
- Na opção “Serviço”, selecione “
-
Clique em Designar para atribuir as políticas de acesso a este grupo de acesso.
-
-
Adicio o usuário
my-usera 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.
- Configure o acesso para Code Engine para criar e gerenciar automaticamente o ID de serviço para ligações de serviço.
- Atualize o projeto para acessar instâncias de serviço em outros grupos de recursos.
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 abcdabcdabcdabcdabcdabcdabcdabcdPara 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,
- Criar um ID de serviço personalizado com permissões de acesso para Code Engine ligações de serviços.
- Configure seu projeto para usar o ID do serviço personalizado.
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.
-
Criar um grupo de recursos IAM para usuários que criam ligações de serviço Code Engine.
- Lançar Visão Geral do Access(IAM).
- Selecione Gerenciar > Conta > Grupos de Recursos > Criar grupo de recursos.
- Criar um grupo de recursos; por exemplo,
CodeEngine_servicebindings_resourcegroup.
-
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. -
Criar um grupo de acesso IAM para usuários que criam ligações de serviço Code Engine.
- Lançar Visão Geral do Access(IAM).
- Selecione Gerenciar > Acesso (IAM) > Grupos de acesso.
- Crie um grupo; por exemplo,
CodeEngine_servicebindings_accessgroup. - 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
Writere acesso à plataforma deOperator. - Clique em Adicionar para adicionar a política de acesso a este grupo de acesso.
- Clique em Designar para atribuir as políticas de acesso a este grupo de acesso.
- 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.
-
Adicio o usuário
my-usera este grupo de acesso. -
Crie um ID de serviço para a instância de serviço que você deseja ligar.
- Lançar Visão Geral do Access(IAM).
- Selecione Gerenciar > Access (IAM) > IDs de serviço.
- Crie um ID de serviço; por exemplo,
CodeEngine_servicebindings_serviceid. - 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
Managere acesso à plataforma deOperator. - Clique em Adicionar para adicionar a política de acesso a este ID de serviço.
- 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.
-
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. -
Execute o comando
ibmcloud ce project update. Por exemplo, se o ID do seu serviço forServiceId-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.