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

Ramanna Avancha, Kishan Kavala, Anusha Mandava e Jenifer Pascal, da Amazon Web Services

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 ambiente de gerenciamento 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 SaaS APIs, 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 conta AWS ativa

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

  • Conhecimento do Amazon API Gateway

  • Conhecimento do AWS Lambda

  • Conhecimento do Amazon DynamoDB

  • Conhecimento do AWS Identity and Access Management (IAM)

  • Conhecimento do AWS Step Functions

  • Conhecimento da AWS CloudTrail e da Amazon CloudWatch

  • Conhecimento de bibliotecas e códigos Python

  • Conhecimento de SaaS APIs, incluindo os diferentes tipos de usuários (organizações, locatários, 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 única região da AWS.

Arquitetura

Pilha de tecnologias de destino

  • Amazon API Gateway

  • Amazon Cognito

  • AWS CloudTrail

  • Amazon CloudWatch

  • Amazon DynamoDB

  • IAM

  • AWS Lambda

  • Amazon Simple Storage Service (Amazon S3)

  • Amazon Simple Notification Service (Amazon SNS)

  • AWS Step Functions

Arquitetura de destino

O diagrama a seguir mostra um exemplo de fluxo de trabalho para gerenciar os ciclos de vida dos locatários em vários produtos SaaS em um único ambiente de gerenciamento 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 usuário da AWS inicia o provisionamento de locatários, o provisionamento de produtos ou ações relacionadas à administração fazendo uma chamada para um endpoint do API Gateway.

  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 do Lambda que são integradas aos endpoints da API Gateway 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. As permissões do IAM 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 é invocado 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 recursos da AWS talvez precisem ser provisionados usando um modelo da AWS CloudFormation .

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

  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 do Amazon SNS.

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

  13. Em seguida, o Amazon SNS envia a atualização do status do fluxo de trabalho para o usuário da AWS.

  14. Os registros das ações de cada serviço da AWS, incluindo uma trilha de auditoria das chamadas de API, 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 CloudFormation modelos da AWS no Guia CloudFormation do usuário da AWS.

Ferramentas

Serviços da AWS

  • O Amazon API Gateway ajuda você a criar, publicar, manter, monitorar e proteger REST, HTTP e 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.

  • CloudTrailA AWS ajuda você a auditar a governança, a conformidade e o risco operacional da sua conta da AWS.

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

  • O Amazon DynamoDB é um serviço de banco de dados NoSQL totalmente gerenciado que fornece performance rápida, previsível e escalável.

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

  • O AWS Lambda é um serviço de computação que ajuda você a executar código sem exigir provisionamento ou gerenciamento de 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 (Amazon SNS) ajuda você a coordenar e gerenciar a troca de mensagens entre publicadores e clientes, incluindo servidores web e endereços de e-mail.

  • O AWS Step Functions é um serviço de orquestração com tecnologia sem servidor que permite combinar funções do AWS Lambda e outros serviços da AWS para criar aplicações essenciais aos 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

  • Perfis

  • Produtos de SaaS

  • Assinaturas

  • Trocas de perfis

Arquiteto de nuvem, administrador de sistemas da AWS

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 políticas do IAM necessárias.

Crie as políticas do IAM necessárias para o seu caso de uso. Em seguida, mapeie as políticas para funções do IAM 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, segurança do AWS IAM

Configure as permissões de API necessárias.

Configure as permissões de acesso ao API Gateway usando perfis e políticas do IAM e autorizadores do Lambda.

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

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 AWS Lambda.

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 Guia do desenvolvedor do AWS Step Functions.

  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 blog da AWS.

  3. Implemente as etapas do fluxo de trabalho usando as funções do Lambda. Para instruções, consulte Criação de uma máquina de estado Step Functions que usa o Lambda no Guia do desenvolvedor do AWS Step Functions.

  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 o Amazon SNS.

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

Crie tópicos do Amazon SNS.

Crie tópicos do Amazon SNS para receber notificações sobre:

  • Status do fluxo de trabalho

  • Erros

  • Repetições

Para obter mais informações, consulte Criar um tópico do SNS no Guia do desenvolvedor do Amazon SNS.

Proprietário do aplicativo, arquiteto de nuvem

Assine endpoints em cada tópico do Amazon SNS.

Para receber mensagens publicadas em um tópico do Amazon SNS, você precisa inscrever um endpoint em cada tópico.

Para obter instruções, consulte Assinatura de um tópico do Amazon SNS no Guia do desenvolvedor do Amazon SNS.

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 instruções, consulte:

nota

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

Desenvolvedor de aplicativos, administrador de sistemas da AWS, 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 CloudFormation do usuário da AWS.

Desenvolvedor de aplicativos, DevOps engenheiro, CloudFormation desenvolvedor

Recursos relacionados