Gerenciar locatários em vários produtos de SaaS em um único ambiente de gerenciamento - Recomendações da AWS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Gerenciar locatários em vários produtos de SaaS em um único ambiente de gerenciamento

Criado por Ramanna Avancha (AWS), Jenifer Pascal (), Kishan Kavala (AWS) e Anusha Mandava () AWS AWS

Ambiente: PoC ou piloto

Tecnologias: sem servidor

AWSserviços: Amazon API Gateway; Amazon Cognito; AWS Lambda; Step AWS Functions; Amazon DynamoDB

Resumo

Esse padrão mostra como gerenciar os ciclos de vida dos inquilinos em vários produtos de software como serviço (SaaS) em um único plano de controle na nuvem. AWS A arquitetura de referência fornecida pode ajudar as organizações a reduzir a implementação de recursos redundantes e compartilhados em seus produtos SaaS individuais e fornecer eficiências de governança em grande escala.

Grandes empresas podem ter vários produtos SaaS em várias unidades de negócios. Esses produtos geralmente precisam ser provisionados para uso por locatários externos em diferentes níveis de assinatura. Sem uma solução comum para locatários, os administradores de TI devem gastar tempo gerenciando recursos indiferenciados em vários SaaSAPIs, em vez de se concentrarem no desenvolvimento dos principais recursos do produto.

A solução comum para locatários fornecida nesse padrão pode ajudar a centralizar o gerenciamento de muitos dos recursos compartilhados do produto SaaS de uma organização, incluindo o seguinte:

  • Segurança

  • Provisionamento de locatários

  • Armazenamento de dados do locatário

  • Comunicações do locatário

  • Gerenciamento de produtos

  • Registro em log e monitoramento de métricas

Pré-requisitos e limitações

Pré-requisitos

  • Uma AWS conta ativa

  • Conhecimento do Amazon Cognito ou de um provedor de identidades (IdP) terceirizado

  • Conhecimento do Amazon API Gateway

  • Conhecimento de AWS Lambda

  • Conhecimento do Amazon DynamoDB

  • Conhecimento em AWS Identity and Access Management (IAM)

  • Conhecimento de AWS Step Functions

  • Conhecimento AWS CloudTrail da Amazon CloudWatch

  • Conhecimento de bibliotecas e códigos Python

  • Conhecimento de SaaSAPIs, incluindo os diferentes tipos de usuários (organizações, inquilinos, administradores e usuários de aplicativos), modelos de assinatura e modelos de isolamento de inquilinos

  • Conhecimento dos requisitos de SaaS de vários produtos e das assinaturas de vários locatários de sua organização

Limitações

  • As integrações entre a solução de locatário comum e os produtos SaaS individuais não são abordadas nesse padrão.

  • Esse padrão implanta o serviço Amazon Cognito somente em uma AWS única região.

Arquitetura

Pilha de tecnologias de destino

  • Amazon API Gateway

  • Amazon Cognito

  • AWS CloudTrail

  • Amazon CloudWatch

  • Amazon DynamoDB

  • IAM

  • AWSLambda

  • Amazon Simple Storage Service (Amazon S3)

  • Serviço de notificação simples da Amazon (AmazonSNS)

  • AWSFunções de etapa

Arquitetura de destino

O diagrama a seguir mostra um exemplo de fluxo de trabalho para gerenciar os ciclos de vida dos inquilinos em vários produtos SaaS em um único plano de controle na nuvem. AWS

Fluxo de trabalho para gerenciar os ciclos de vida dos inquilinos em um único plano de controle.

O diagrama mostra o seguinte fluxo de trabalho:

  1. Um AWS usuário inicia o provisionamento de inquilinos, o provisionamento de produtos ou ações relacionadas à administração fazendo uma chamada para um endpoint do Gateway. API

  2. O usuário é autenticado por um token de acesso restaurado de um grupo de usuários do Amazon Cognito ou de outro IdP.

  3. As tarefas individuais de provisionamento ou administração são executadas por funções Lambda integradas aos endpoints do Gateway. API API

  4. A administração da solução comum APIs para inquilinos (para inquilinos, produtos e usuários) reúne todos os parâmetros de entrada, cabeçalhos e tokens necessários. Em seguida, a administração APIs invoca as funções Lambda associadas.

  5. IAMas permissões para as funções de administração APIs e do Lambda são validadas pelo serviço. IAM

  6. As funções do Lambda armazenam e recuperam dados dos catálogos (para locatários, produtos e usuários) no DynamoDB e no Amazon S3.

  7. Depois que as permissões são validadas, um fluxo de trabalho do AWS Step Functions é chamado para realizar uma tarefa específica. O exemplo no diagrama mostra um fluxo de trabalho de provisionamento de locatários.

  8. As tarefas individuais do fluxo de trabalho do AWS Step Functions são executadas em um fluxo de trabalho predeterminado (máquina de estado).

  9. Todos os dados essenciais necessários para executar a função do Lambda associada a cada tarefa de fluxo de trabalho são recuperados do DynamoDB ou do Amazon S3. Outros AWS recursos talvez precisem ser provisionados usando um AWS CloudFormation modelo.

  10. Se necessário, o fluxo de trabalho envia uma solicitação para provisionar AWS recursos adicionais para um produto SaaS específico para a conta desse produto. AWS

  11. Quando a solicitação é bem-sucedida ou falha, o fluxo de trabalho publica a atualização de status como uma mensagem para um tópico da AmazonSNS.

  12. A Amazon SNS está inscrita no SNS tópico Amazon do fluxo de trabalho Step Functions.

  13. A Amazon SNS então envia a atualização do status do fluxo de trabalho de volta para o AWS usuário.

  14. Registros das ações de cada AWS serviço, incluindo uma trilha de auditoria de API chamadas, são enviados para CloudWatch. Regras e alarmes específicos podem ser configurados CloudWatch para cada caso de uso.

  15. Os logs são arquivados em buckets do Amazon S3 para fins de auditoria.

Automação e escala

Esse padrão usa um CloudFormation modelo para ajudar a automatizar a implantação da solução comum para locatários. O modelo também pode ajudá-lo a aumentar ou reduzir rapidamente os recursos associados.

Para obter mais informações, consulte Como trabalhar com AWS CloudFormation modelos no Guia AWS CloudFormation do usuário.

Ferramentas

AWSserviços

  • O Amazon API Gateway ajuda você a criar, publicar, manter, monitorar e proteger RESTHTTP, WebSocket APIs em qualquer escala.

  • O Amazon Cognito fornece autenticação, autorização e gerenciamento de usuários para suas aplicações Web e móveis.

  • AWS CloudTrailajuda você a auditar a governança, a conformidade e o risco operacional de sua AWS conta.

  • CloudWatchA Amazon ajuda você a monitorar as métricas dos seus AWS recursos e dos aplicativos em que você executa AWS em tempo real.

  • O Amazon DynamoDB é um serviço SQL sem banco de dados totalmente gerenciado que fornece desempenho rápido, previsível e escalável.

  • AWSO Identity and Access Management (IAM) ajuda você a gerenciar com segurança o acesso aos seus AWS recursos controlando quem está autenticado e autorizado a usá-los.

  • AWSO Lambda é um serviço de computação que ajuda você a executar código sem precisar provisionar ou gerenciar servidores. Ele executa o código somente quando necessário e dimensiona automaticamente, assim, você paga apenas pelo tempo de computação usado.

  • O Amazon Simple Storage Service (Amazon S3) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.

  • O Amazon Simple Notification Service (AmazonSNS) ajuda você a coordenar e gerenciar a troca de mensagens entre editores e clientes, incluindo servidores web e endereços de e-mail.

  • AWSO Step Functions é um serviço de orquestração sem servidor que ajuda você a combinar funções AWS Lambda e outros AWS serviços para criar aplicativos essenciais para os negócios.

Práticas recomendadas

A solução nesse padrão usa um único ambiente de gerenciamento para gerenciar a integração de vários locatários e fornecer acesso a vários produtos SaaS. O ambiente de gerenciamento ajuda os usuários administrativos a gerenciar outros quatro ambientes específicos de atributos:

  • Plano de segurança

  • Plano de fluxo de trabalho

  • Plano de comunicação

  • Registro e ambiente de monitoramento

Épicos

TarefaDescriçãoHabilidades necessárias

Estabeleça os requisitos para sua plataforma SaaS multilocatária.

Estabeleça requisitos detalhados para:

  • Locatários

  • Usuários

  • Funções

  • Produtos de SaaS

  • Assinaturas

  • Trocas de perfis

Arquiteto de nuvem, administrador AWS de sistemas

Configurar o serviço do Amazon Cognito.

Siga as instruções em Introdução ao Amazon Cognito no Guia do Desenvolvedor do Amazon Cognito.

Arquiteto de nuvem

Configure as IAM políticas necessárias.

Crie as IAM políticas necessárias para seu caso de uso. Em seguida, mapeie as políticas para IAM funções no Amazon Cognito.

Para obter mais informações, consulte Gerenciamento de acesso usando políticas e Controle de acesso baseado em funções no Guia do Desenvolvedor do Amazon Cognito.

Administrador de nuvem, arquiteto de nuvem, AWS IAM segurança

Configure as API permissões necessárias.

Configure as permissões de acesso ao API Gateway usando IAM funções, políticas e autorizadores Lambda.

Para obter instruções, consulte as seguintes seções do Amazon API Gateway Developer Guide:

Administrador de nuvem, arquiteto de nuvem
TarefaDescriçãoHabilidades necessárias

Crie os catálogos de dados necessários.

  1. Crie tabelas do DynamoDB para armazenar dados para os catálogos de usuários. Certifique-se de incluir atributos e funções do usuário. Além disso, certifique-se de realizar a modelagem de dados nas tabelas do catálogo para manter os atributos obrigatórios e opcionais para cada usuário e função.

  2. Crie tabelas do DynamoDB para armazenar dados para os catálogos de produtos. Certifique-se de modelar os casos de uso específicos para seus produtos SaaS.

  3. Crie tabelas do DynamoDB para armazenar dados para os catálogos de locatários. Certifique-se de configurar modelos de assinatura para locatários, produtos e licenciamento para assinaturas e tags de vários SaaS.

Para obter mais informações, consulte Configuração do DynamoDB no Guia do desenvolvedor Amazon DynamoDB.

DBA
TarefaDescriçãoHabilidades necessárias

Crie funções Lambda e API Gateway APIs para executar as tarefas necessárias do plano de controle.

Crie funções Lambda e API Gateway separados APIs para adicionar, excluir e gerenciar o seguinte:

  • Usuários

  • Locatários

  • Produtos

Para obter mais informações, consulte Como usar o AWS Lambda com o Amazon API Gateway no Guia do desenvolvedor do AWSLambda.

Desenvolvedor de aplicativos
TarefaDescriçãoHabilidades necessárias

Identifique as tarefas que os fluxos de trabalho do AWS Step Functions devem executar.

Identifique e documente os requisitos detalhados do fluxo de trabalho do AWS Step Functions para o seguinte:

  • Usuários

  • Locatários

  • Produtos

Importante: certifique-se de que as principais partes interessadas aprovem os requisitos.

Proprietário do App

Crie os fluxos de trabalho necessários do AWS Step Functions.

  1. Crie os fluxos de trabalho necessários para usuários, locatários e produtos no AWS Step Functions. Para obter mais informações, consulte o AWSStep Functions Developer Guide.

  2. Identifique os mecanismos de repetição e tratamento de erros. Para obter mais informações, consulte Tratamento de erros, novas tentativas e adição de alertas a Step Function State Machines no AWS blog.

  3. Implemente as etapas do fluxo de trabalho usando as funções do Lambda. Para obter instruções, consulte Como criar uma máquina de estado do Step Functions que usa o Lambda no AWSStep Functions Developer Guide.

  4. Integre quaisquer serviços externos com o AWS Step Functions conforme necessário.

  5. Mantenha o status de cada fluxo de trabalho em uma tabela do DynamoDB e comunique o status de cada fluxo de trabalho usando a Amazon. SNS

Desenvolvedor de aplicativos, líder de criação
TarefaDescriçãoHabilidades necessárias

Crie SNS tópicos da Amazon.

Crie SNS tópicos da Amazon para receber notificações sobre o seguinte:

  • Status do fluxo de trabalho

  • Erros

  • Repetições

Para obter mais informações, consulte Criação de um SNS tópico no Amazon SNS Developer Guide.

Proprietário do aplicativo, arquiteto de nuvem

Assine endpoints para cada SNS tópico da Amazon.

Para receber mensagens publicadas em um SNS tópico da Amazon, você deve inscrever um endpoint para cada tópico.

Para obter mais informações, consulte Assinatura de um SNS tópico da Amazon no Amazon SNS Developer Guide.

Desenvolvedor de aplicativos, arquiteto de nuvem
TarefaDescriçãoHabilidades necessárias

Ative o registro para cada componente da solução comum de locatário.

Ative o registro no nível do componente para cada recurso na solução de locatário comum que você criou.

Para obter instruções, consulte:

Observação: você pode consolidar os registros de cada recurso em uma conta de registro centralizada usando IAM políticas. Para obter mais informações, consulte Registro centralizado e barreiras de proteção de várias contas.

Desenvolvedor de aplicativos, administrador AWS de sistemas, administrador de nuvem
TarefaDescriçãoHabilidades necessárias

Crie CloudFormation modelos.

Automatize a implantação e a manutenção da solução de locatário comum completa e de todos os seus componentes usando CloudFormation modelos.

Para obter mais informações, consulte o Guia AWS CloudFormation do usuário.

Desenvolvedor de aplicativos, DevOps engenheiro, CloudFormation desenvolvedor

Recursos relacionados