Considerações para configurar o IBM Quantum Platform para uma organização
A IBM Quantum® Platform é o painel para as instâncias e cargas de trabalho do IBM Quantum Compute Service da sua conta IBM Cloud®, e fornece uma visão simplificada do gerenciamento de acesso. A conta IBM Cloud de uma organização pode ter vários usuários e várias instâncias do Quantum Compute, cada uma com sua própria alocação. O Identity and Access Management (IAM) controla quais usuários podem acessar quais instâncias de serviço, para que você possa habilitar a colaboração enquanto restringe a visibilidade quando necessário. O gerenciamento de acesso se torna mais relevante se você tiver instâncias de serviço em planos pagos. Consulte Estrutura da conta IBM Cloud para uma visão geral de como contas, usuários, instâncias e acesso se encaixam. Consulte a documentação do IAM do IBM Cloud para detalhes completos sobre os conceitos de IAM referenciados neste guia, como grupos de acesso, políticas, funções e grupos de recursos.
Este guia descreve as decisões e os prós e contras envolvidos na configuração de acesso para uma organização com várias instâncias de serviço — por exemplo, atribuindo uma instância por equipe ou carga de trabalho.
Se sua organização tiver múltiplas contas do IBM Cloud — por exemplo, contas separadas por unidade de negócio, cada uma com suas próprias instâncias do Quantum Compute — você pode vinculá-las sob uma única conta IBM Cloud Enterprise, que tem uma conta principal responsável pelo faturamento e uma ou mais contas filhas. Para redistribuir a alocação do Premium ou Flex Plan entre contas filhas, entre em contato com o suporte do IBM Quantum através do IBM Cloud Support Center. Veja a documentação da conta IBM Cloud Enterprise para detalhes completos.
Visão geral
O IBM Cloud® oferece diversas maneiras de implementar os mecanismos descritos neste guia. A maioria das etapas é genérica para o IBM Cloud e não específica ao Quantum Compute, exceto pelos detalhes de funções personalizadas.
Personas envolvidas
As seguintes personas são mencionadas neste guia:
-
Usuário: Alguém que obtém acesso aos recursos do Quantum Compute (instâncias de serviço) e pode potencialmente colaborar com outros usuários nesses recursos. O acesso dos usuários é controlado por um administrador, e eles não podem criar ou excluir instâncias de serviço.
-
Administrador de Cloud: Um proprietário de conta IBM Cloud que possui recursos do IBM Quantum Compute e gerencia quais usuários podem acessar esses recursos. Como proprietário dos recursos, o administrador é cobrado por qualquer uso de recursos pagos.
-
Administrador de IDP: Um administrador que define identidades e seus atributos em um provedor de identidade (IDP).
Terminologia
Este guia utiliza os seguintes termos:
-
Recurso: Um termo genérico do IBM Cloud que se refere a um objeto que pode ser gerenciado pela interface de usuário, CLI ou API da Cloud. Neste guia, um recurso é uma instância do Quantum Compute Service.
-
Instância de serviço: Uma instância de serviço é usada para acessar serviços da Cloud - especificamente, computadores quânticos, através do IBM Quantum Compute Service. Ela é definida por meio do catálogo. Você pode definir várias instâncias de serviço com base nos mesmos planos ou em planos diferentes, que oferecem acesso a diferentes backends de computação quântica. Consulte Planos IBM Cloud disponíveis para obter detalhes.
Planeje sua configuração
Antes de configurar o IBM Quantum Platform para sua organização, você precisa tomar as seguintes decisões:
-
Como as identidades dos usuários são definidas? Você pode configurar usuários do IBM Cloud, usuários de outro provedor de identidade (IDP) ou ambos.
-
Se você estiver usando um IDP diferente, o administrador de Cloud ou o administrador de IDP atribui usuários aos grupos de acesso?
-
Se o administrador do IDP atribuir usuários por meio de regras dinâmicas, você precisará de um atributo de usuário do IDP personalizado para usar como chave de correspondência (por exemplo, um atributo
team).
-
-
Quantas instâncias de serviço você precisa, e para que cada uma será usada? Planeje os nomes das suas instâncias com cuidado. Sempre que você criar uma instância de serviço por meio da interface do usuário da IBM Quantum Platform, a plataforma fará uma chamada adicional ao IAM em seu nome para criar um grupo de acesso correspondente (com o mesmo nome da instância, com "Collaborators" anexado) que concede acesso de escrita a essa instância. Portanto, os nomes de instância também se tornam nomes de grupos de acesso. Essa etapa extra ocorre apenas quando você cria uma instância por meio da interface do usuário da IBM Quantum Platform. Isso não acontece se você criar a instância usando o Terraform, a CLI do IBM Cloud ou a API do IBM Cloud.
-
As cargas de trabalho pertencem a instâncias de serviço, e usuários que têm acesso a uma instância podem ver suas cargas de trabalho.
-
Instâncias de serviço podem ser baseadas em planos diferentes, permitindo acesso a diferentes backends e alocações.
-
-
Quais usuários precisam acessar quais instâncias de serviço?
-
Os usuários devem ser capazes de excluir cargas de trabalho? Manter as cargas de trabalho nas instâncias de serviço fornece maior rastreabilidade para os custos de faturamento.
-
Você usará o grupo de acesso criado automaticamente para cada instância, criará grupos de acesso adicionais próprios, atribuirá acesso diretamente a usuários individuais, ou organizará instâncias em grupos de recursos?
-
Grupos de acesso são uma forma conveniente e comum de controlar o acesso do usuário aos recursos do IBM Cloud. Toda instância de serviço que você criar por meio da interface do usuário da IBM Quantum Platform já tem seu próprio grupo de acesso "Collaborators". Você pode usar esse grupo como está, ou criar grupos de acesso adicionais no console do IBM Cloud para agrupar usuários por equipe ou carga de trabalho (por exemplo,
mlefinance) em uma ou mais instâncias. Cada grupo de acesso usa uma função personalizada que permite que os usuários acessem instâncias de serviço ou grupos de recursos específicos. Se você não precisar que um grupo de usuários compartilhe o mesmo acesso, também pode atribuir acesso diretamente a usuários individuais, sem um grupo de acesso.- Se você usar regras dinâmicas baseadas em atributos do IDP para atribuir usuários a grupos de acesso, evite valores de atributo que sejam substrings uns dos outros. Por exemplo, se você usar
mlechemlabcomo valores de atributo, uma regra que corresponda amltambém corresponderia achemlab, concedendo acidentalmente mais acesso do que o esperado. Use valores exclusivos comomlechem-lab, ou adicione prefixos ou sufixos para evitar correspondências de substring não intencionais.
- Se você usar regras dinâmicas baseadas em atributos do IDP para atribuir usuários a grupos de acesso, evite valores de atributo que sejam substrings uns dos outros. Por exemplo, se você usar
-
Grupos de recursos são usados apenas quando você precisa manter uma separação clara das instâncias de serviço. Ao criar uma instância de serviço na IBM Quantum Platform, você pode selecionar a qual grupo de recursos ela pertence (e adicionar tags), mas você deve usar o console do IBM Cloud para criar ou gerenciar os grupos de recursos. Se mais instâncias de serviço forem criadas em um grupo de recursos, todos os usuários que têm acesso ao grupo de recursos as verão automaticamente, sem atualizar os grupos de acesso. Se você optar por usar grupos de recursos, primeiro crie grupos de acesso e depois os atribua aos grupos de recursos.
notaUma instância de serviço pode pertencer a apenas um grupo de recursos, e essa atribuição não pode ser alterada depois que a instância é criada. Portanto, os grupos de recursos podem não oferecer flexibilidade suficiente se as instâncias de serviço precisarem ser movidas entre grupos de recursos posteriormente.
-
Considerações
Você deve compreender as seguintes considerações ao configurar seu ambiente.
Defina funções mais granulares
Funções personalizadas podem ser usadas para um controle de acesso mais granular. Por exemplo, alguns usuários podem precisar de acesso completo para trabalhar nas instâncias de serviço, enquanto outros podem precisar apenas de acesso de leitura às instâncias de serviço, programas e cargas de trabalho.
Para conseguir isso, defina duas funções personalizadas diferentes, como MLreader e MLwriter. Remova todas as ações de cancelamento, exclusão e atualização da função personalizada MLreader e inclua todas as ações na função personalizada MLwriter. Em seguida, adicione as funções a dois grupos de acesso diferentes de forma adequada.
Ao usar regras dinâmicas, ou seja, quando o administrador do IDP gerencia o acesso por meio de atributos de usuário IDP personalizados, não use atributos de usuário IDP personalizados que sejam substrings uns dos outros. Por exemplo, não use ml e mlReader, pois a comparação de strings de ml também aceitaria mlReader. Você poderia usar MLreader e MLwriter para evitar esse conflito.
Para um exemplo, consulte Configurar funções personalizadas.
Acesso compartilhado a cargas de trabalho
O acesso se aplica a instâncias de serviço. Assim, usuários com acesso de escrita a uma instância (incluindo por meio do grupo de acesso "Collaborators" criado automaticamente para instâncias feitas pela interface do usuário da IBM Quantum Platform) podem cancelar suas próprias cargas de trabalho, mas também podem visualizar e cancelar cargas de trabalho de outros usuários nessa instância. Isso decorre do funcionamento do IAM e não pode ser alterado.
Simular estruturas hierárquicas
Por padrão, o acesso de cada instância de serviço é gerenciado independentemente, por exemplo, por meio do grupo de acesso "Collaborators" criado automaticamente para instâncias criadas pela interface do usuário da IBM Quantum Platform. O IAM não tem uma hierarquia de grupos integrada, mas você pode aproximar uma criando grupos de acesso que referenciam as instâncias de serviço de várias equipes. Usuários que precisam de acesso amplo só precisam ser adicionados a um grupo de "nível superior", em vez de a cada grupo de acesso individual de cada equipe.
Implantação consistente e reproduzível da configuração
As etapas neste guia podem ser automatizadas para um gerenciamento consistente e reproduzível de usuários, instâncias de serviço e os mapeamentos de acesso entre eles. Consulte a documentação do Terraform IBM Cloud® Provider para modelos.
Você pode usar o Terraform para definir alocação e limites, bem como restringir o acesso ao backend para instâncias de serviço quantum-computing. Consulte Introdução ao Terraform no IBM Cloud para mais informações.
Exemplo:
resource "ibm_resource_instance" "instance1" {
name = "name"
service = "quantum-computing"
plan = "premium"
location = "us-east"
parameters = {
usage_allocation_seconds = "10" # Mandatory
usage_limit_seconds = "20" # Optional. If omitted, it can
# continue using time after reaching the allocation
backends = ["ibm_boston"] # Optional
}
}
Próximas etapas
- Consulte Configurar o IBM Quantum Platform para uma organização para ver as etapas de configuração do IBM Quantum Platform.
- Entenda os planos disponíveis.
- Crie instâncias.
- Entenda a estrutura da conta IBM Cloud.
- Crie políticas e grupos de acesso.
- Gerencie usuários.
- Documentação do IAM do IBM Cloud para detalhes completos sobre IAM.
- Documentação do IBM Cloud Enterprise para gerenciar várias contas vinculadas.