Criando regras dinâmicas para grupos de acesso

É possível criar regras dinâmicas para incluir automaticamente usuários federados nos grupos de acesso com base em atributos de identidade específicos. Quando seus usuários efetuam login com um ID federado, os dados do provedor de identidade (IdP) mapeiam dinamicamente seus usuários para um grupo de acesso com base nas regras definidas.

Os usuários já possuem informações de identidade específicas no domínio de sua empresa e, quando eles efetuam login com um ID federado, esses dados podem ser transmitidos usando asserções do SAML. As asserções do SAML ou as instruções de atributo que são configuradas dentro do IdP fornecem os dados usados para criar cada regra. Por exemplo, você pode ter uma declaração de atributo verdadeira ou falsa que define os usuários como um gerenciador. Essas informações podem ser usadas para incluir todos os usuários que são gerenciadores em um grupo de acesso específico para gerenciadores que você criou em sua conta IBM Cloud®. Para obter mais informações, consulte o tutorial sobre como controlar o acesso aos recursos da nuvem e uma regra de exemplo.

Apenas usuários que já foram convidados para a conta podem ser mapeados para acessar grupos usando regras dinâmicas.

Configurando regras usando o console

As regras dinâmicas são criadas configurando-se condições que devem ser correspondidas pelos dados configurados dentro do IdP e transmitidos com o ID federado de um usuário durante o login. É possível incluir mais de uma condição para uma regra. Todas as condições configuradas na regra devem ser atendidas para que um usuário seja incluído em um grupo de acesso.

Para criar uma regra, siga essas etapas:

  1. No console do IBM Cloud, clique em Gerenciar > Acesso (IAM) e selecione Grupos de acesso.
  2. Selecione o nome do grupo de acesso para o qual deseja criar uma regra. Esta ação abre a página Detalhes do grupo.
  3. Selecione Regras dinâmicas.
  4. Clique em Incluir regra.
  5. Insira as informações do seu IdP que é fornecido dinamicamente na página Incluir regra. A lista a seguir fornece detalhes para cada campo obrigatório.

Você pode pensar em uma regra de grupo de acesso como um par chave:valor. A chave é o que você inclui no campo Add users when e o valor é o que você insere no campo Values.

Para obter mais informações sobre os campos que são usados para criar regras dinâmicas, consulte Propriedades de condição de IAM.

Configurando regras usando o Terraform

Antes de configurar regras usando o Terraform, certifique-se de ter concluído o seguinte:

  • Instale a CLI do Terraform e configure o plug-in do provedor IBM Cloud para o Terraform. Para obter mais informações, consulte o tutorial Getting started with Terraform em IBM Cloud®. O plug-in abstrai as APIs do IBM Cloud que são usadas para concluir esta tarefa.
  • Crie um arquivo de configuração do Terraform que seja denominado main.tf. Nesse arquivo, você define os recursos usando a HashiCorp Configuration Language. Para obter mais informações, consulte a documentação do Terraform.

As regras dinâmicas são criadas configurando-se condições que devem ser correspondidas pelos dados configurados dentro do IdP e transmitidos com o ID federado de um usuário durante o login. É possível incluir mais de uma condição para uma regra. Todas as condições configuradas na regra devem ser atendidas para que um usuário seja incluído em um grupo de acesso.

Para criar uma regra usando o Terraform, siga estas etapas:

  1. Crie um argumento em seu arquivo main.tf. O exemplo a seguir cria uma nova regra dinâmica para um grupo de acesso usando o recurso ibm_iam_access_group_dynamic_rule, em que name é um nome exclusivo para identificar a regra dinâmica.

     resource "ibm_iam_access_group_dynamic_rule" "rule1" {
       name              = "newrule"
       access_group_id   = "AccessGroupId-dsnd4bvsaf"
       expiration        = 4
       identity_provider = "test-idp.com"
       conditions {
         claim    = "blueGroups"
         operator = "CONTAINS"
         value    = "\"test-bluegroup-saml\""
       }
     }
    

    Para obter mais informações, consulte os detalhes de referência do argumento na página Documentação do Terraform.

Automatize a associação dinâmica com o módulo IAM Access Groups para gerenciamento de usuários federados. Saiba mais sobre o Terraform IBM Modules.

O exemplo a seguir demonstra como usar o Terraform IBM Modules (TIM) para criar um grupo de acesso com regras dinâmicas:

module "access_group" {
  source  = "terraform-ibm-modules/iam-access-group/ibm"
  version = "X.X.X" # Replace with the latest version

  access_group_name        = "federated-managers"
  access_group_description = "Access group for federated managers"

  dynamic_rules = [
    {
      name              = "manager-rule"
      expiration        = 12
      identity_provider = "https://idp.example.org/SAML2"
      conditions = [
        {
          claim    = "isManager"
          operator = "EQUALS"
          value    = "true"
        }
      ]
    }
  ]
}

Para obter mais opções de configuração e exemplos, consulte a documentação do módulo IAM Access Groups.

  1. Depois de concluir a criação do arquivo de configuração, inicialize a CLI do Terraform. Para obter mais informações, consulte Inicialização de diretórios de trabalho.

    terraform init
    
  2. Provisione os recursos do arquivo main.tf. Para obter mais informações, consulte Provisionamento de infraestrutura com o Terraform.

    1. Execute terraform plan para gerar um plano de execução do Terraform para visualizar as ações propostas.

      terraform plan
      
    2. Execute o site terraform apply para criar os recursos definidos no plano.

      terraform apply
      

Para obter mais informações sobre os campos que são usados para criar regras dinâmicas, consulte Propriedades de condição de IAM.

Visualizando membros dinâmicos de grupos de acesso

É possível visualizar os usuários que são incluídos em um grupo de acesso usando regras dinâmicas. Para visualizar membros dinâmicos de grupos de acesso, acesse Gerenciar > Acesso (IAM) > Grupos de acesso no console da IBM Cloud. Selecione um grupo de acesso e clique em Usuários. Os usuários incluídos dinamicamente são indicados pelo tipo Dynamic.

Os usuários a seguir não aparecerão na tabela:

  • Usuários adicionados dinamicamente que ainda não estão conectados.
  • Usuários adicionados dinamicamente cuja sessão expirou.

Usuários dinâmicos que tiveram logout efetuado, mas cujas sessões ainda são válidas, continuam a aparecer na tabela até que suas sessões expiram.

Não é possível remover manualmente um usuário dinâmico. Para remover um usuário dinâmico, ajuste suas regras dinâmicas.

Visualizando a associação dinâmica de um usuário

Também é possível visualizar uma lista de grupos de acesso aos quais um usuário é incluído com base em regras dinâmicas concluindo as etapas a seguir:

  1. Acesse Gerenciar > Acesso (IAM) > Usuários no console da IBM Cloud.
  2. Clique em um usuário.
  3. Clique em Access (Acesso ).
  4. Os grupos de acesso dos quais um usuário é membro dinâmico são indicados pelo tipo Dynamic.

Regra de exemplo

O exemplo a seguir inclui valores para cada um dos campos de uma regra dinâmica. Nesta regra, os usuários que forem identificados como gerenciadores dentro do IdP federado serão mapeados para um grupo de acesso do IBM Cloud que tem acesso específico configurado apenas para os gerenciadores.

Exemplo de regra dinâmica para grupos de acesso
Campo Valor
Nome Regra do grupo de gerenciador
Provedor de identidade https://idp.example.org/SAML2
Expiração (em horas) 12
Incluir usuários quando (nome do atributo) isManager
Comparador Igual a
Valor verdadeiro