Autorização de recursos com perfis confiáveis do IAM
Nuvem privada virtual Infraestrutura clássica Satellite
Saiba como configurar o acesso aos seus recursos ou para eles usando perfis confiáveis.
É possível ativar perfis confiáveis do IAM executando o comando ibmcloud oc cluster master refresh.
- No IAM
- Comece criando um perfil confiável do IAM. Em seguida, vincule-o ao seu recurso de cálculo do Red Hat OpenShift on IBM Cloud selecionando condições correspondentes aos seus clusters, incluindo uma conta de serviço e um espaço de nomes do Kubernetes nos clusters. Finalmente, atribua políticas de acesso aos serviços do IBM Cloud que deseja que seus aplicativos usem.
- No cluster
- Por meio da Projeção de volume de token da conta do serviço Kubernetes, os apps que são executados no Namespace do kubernetes do cluster vinculado e que usam a conta do serviço do namespace podem trocar a chave pública da conta do serviço para obter um token de acesso do IBM Cloud IAM. Seu aplicativo pode usar este token de acesso para autenticar solicitações de API para serviços IBM Cloud, como bancos de dados, o Watson ou a infraestrutura de VPC. Por meio das políticas de acesso do perfil confiável, você controla quais ações o token permite ao aplicativo.
Criação de um perfil confiável do IAM
Para criar um perfil confiável em sua conta, consulte Criação de perfis confiáveis na documentação do IAM. Observe que, para criar um perfil confiável, você deve ser o proprietário da conta. Além disso, são necessárias as seguintes funções de acesso.
- Função de administrador para todos os serviços de gerenciamento de contas.
- Função de administrador no serviço de identidade do IAM. Para obter mais informações, consulte Serviço de identidade do IAM.
- Funções adicionais necessárias para seus recursos e componentes específicos.
Definir o perfil confiável padrão para o cluster
Para definir um perfil confiável para um único cluster, execute o comando ibmcloud oc experimental trusted-profile set.
Se quiser que todos os clusters em um grupo de recursos usem o mesmo perfil confiável, execute o comando ibmcloud oc experimental trusted-profile default set.
Veja os detalhes do seu perfil confiável
Para obter o perfil confiável padrão para clusters no mesmo grupo de recursos, execute o comando ibmcloud oc experimental trusted-profile default get.
Configure seus pods de aplicativo para a autenticação com os serviços IBM Cloud
Conceda aos pods de aplicativos que são executados no seu cluster do Red Hat® OpenShift® on IBM Cloud® acesso aos serviços do IBM Cloud usando perfis confiáveis no IBM Cloud Identity and Access Management (IAM). Como desenvolvedor, é possível configurar seus pods de aplicativo para a autenticação com serviços IBM Cloud em clusters vinculados a um perfil de confiança do IAM que esteja configurado.
Para concluir essas etapas, não é necessário ter a função de acesso de administrador. No entanto, você deve atender aos seguintes requisitos: Função de acesso à plataforma de visualização; Função de acesso ao serviço Writer para o cluster no IBM Cloud IAM para Kubernetes Service; as ações
iam-identity.profile.create iam-identity.profile.linkToResource e para o serviço de identidade IAM.
Antes de Iniciar:
- Acesse o seu Red Hat OpenShift cluster.
- Certifique-se de que o administrador da conta tenha criado um perfil confiável do IAM para o cluster.
Para configurar seus pods de aplicativo para a autenticação com os serviços IBM Cloud:
-
Configure seu arquivo de configuração do pod para utilizar a projeção de volume do token da conta de serviço.
- Na seção
containers, monte o token de identidade na seçãovolumeMounts.
... volumeMounts: - mountPath: /var/run/secrets/tokens name: sa-token ``` 1. Na seção `volumes`, configure a projeção de volume de token da conta de serviço. Modifique o campo `expirationSeconds` para controlar o tempo de validade do token. Para recuperar os tokens IAM, o prazo de validade do token da conta de serviço deve ser de 1 hora ou menos. {: tip} ```yaml {: codeblock} ... volumes: - name: sa-token projected: sources: - serviceAccountToken: path: sa-token expirationSeconds: 3600 audience: iam ... ``` - Na seção
-
Projete seu aplicativo afim de trocar o token projetado da conta de serviço por um token do IAM a ser usado em chamadas de API subsequentes para serviços IBM Cloud. Revise a solicitação de autenticação de exemplo a seguir. Substitua
${profile_id}pelo ID do perfil confiável ao qual o cluster está vinculado. Para listar os IDs de perfil disponíveis, você ou o administrador de conta pode usar o comandoibmcloud iam tps, oGET 'https://iam.cloud.ibm.com/v1/profiles/?account_id=<account_id>'ou você pode visualizar os perfis confiáveis no Console do IAM.curl -s -X POST \ -H "Content-Type: application/x-www-form-urlencoded" \ -H "Accept: application/json" \ -d grant_type=urn:ibm:params:oauth:grant-type:cr-token \ -d cr_token=$(cat /var/run/secrets/tokens/sa-token) \ -d profile_id=${profile_id} \ https://iam.cloud.ibm.com/identity/token -
Antes de seu app ser implementado, tente a tarefa de Kubernetes de exemplo a seguir para testar a troca de token: Na tarefa do Kubernetes a seguir, um pod
curlfaz uma solicitação de API para o IAM da IBM Cloud para verificar se a chave pública do cluster é trocada por um token de acesso IAM. Seu aplicativo pode chamar outros serviços IBM Cloud autorizados pelo perfil confiável.apiVersion: batch/v1 kind: Job metadata: name: token-exchange-job namespace: default spec: template: spec: containers: - name: curl image: curlimages/curl:7.77.0 command: ["/bin/sh"] args: ["-c", "curl -s -H \"Content-Type: application/x-www-form-urlencoded\" -H \"Accept: application/json\" -d grant_type=urn:ibm:params:oauth:grant-type:cr-token -d cr_token=$(cat /var/run/secrets/tokens/sa-token) -d profile_id=<profile_id> https://iam.cloud.ibm.com/identity/token"] volumeMounts: - mountPath: /var/run/secrets/tokens name: sa-token restartPolicy: Never serviceAccountName: default volumes: - name: sa-token projected: sources: - serviceAccountToken: path: sa-token expirationSeconds: 3600 audience: iam -
Implementar a tarefa.
kubectl apply -f exchange-job.yaml -
Revise os detalhes da tarefa para verificar se foi bem-sucedida.
oc describe job token-exchange-job -
Revise a saída das mensagens
job completedesucceededpara verificar se a tarefa foi bem-sucedida. -
Se a tarefa foi bem-sucedida, verifique seus eventos globais Activity Tracker em Frankfurt para verificar a linha de log com detalhes sobre a solicitação de Perfil Confiável. Se a tarefa falhou, revise sua configuração e tente novamente.