Um produto é um conjunto de recursos da Nuvem AWS que você deseja disponibilizar para implantação na AWS. Um produto pode incluir um ou mais recursos da AWS, como instâncias do EC2, volumes de armazenamento, bancos de dados, configurações de monitoramento e componentes de rede ou produtos empacotados do AWS Marketplace. Um produto pode ser uma única instância de computação executando o AWS Linux, uma aplicação web multicamada totalmente configurada em execução em seu próprio ambiente ou qualquer opção entre esses dois exemplos. Usando o AWS Service Catalog, você pode criar produtos de várias maneiras, incluindo modelos do AWS CloudFormation ou configurações do Terraform. Os modelos e configurações definem os recursos da AWS exigidos para o produto, os relacionamentos entre os recursos e os parâmetros que o usuário final pode ativar ao inicializar o produto para configurar grupos de segurança, criar pares de chaves e fazer outras personalizações.
Os produtos do AWS Service Catalog são produtos do tipo AWS CloudFormation ou produtos do tipo código aberto do Terraform ou Terraform Cloud. Os produtos do tipo AWS CloudFormation são inicializados como uma pilha do AWS CloudFormation, que é um conjunto de recursos provisionados para essa instância do produto. Para produtos do tipo código aberto do Terraform ou Terraform Cloud, os recursos subjacentes são armazenados e marcados com tags no AWS Resource Groups. As pilhas do AWS CloudFormation e do AWS Resource Groups facilitam o gerenciamento do ciclo de vida do seu produto ao permitir que você provisione, marque com tags, atualize e encerre a instância do seu produto como uma só unidade.
Um portfólio é um conjunto de produtos, que contém informações sobre configuração. Os portfólios ajudam a gerenciar a configuração do produto e quem pode utilizar produtos específicos e como eles podem utilizá-los. Com o AWS Service Catalog você pode criar um portfólio personalizado para cada tipo de usuário em sua empresa e seletivamente conceder acesso ao portfólio adequado. Ao adicionar uma nova versão de um produto a um portfólio, essa versão é disponibilizada automaticamente para todos os usuários atuais naquele portfólio. Você também pode compartilhar seus portfólios com outras contas da AWS e permitir que o administrador dessas contas distribua seus portfólios com restrições adicionais. Por exemplo, para desenvolvedores, você pode definir um portfólio de ambientes de desenvolvimento, como uma pilha LAMP com versões aprovadas que os usuários podem utilizar para desenvolvimento e teste de software. Você também pode definir um portfólio para empresas de marketing que inclua sites de campanha e aplicações de análise de marketing. Um portfólio pode conter uma combinação de produtos de diferentes tipos, incluindo produtos do tipo AWS CloudFormation ou produtos do tipo código aberto do Terraform e Terraform Cloud.
O AWS Service Catalog permite que você gerencie várias versões de produtos no seu catálogo. Isso permite que você adicione novas versões de modelos e recursos associados com base nas atualizações de software ou alterações de configuração. Ao criar uma nova versão de um produto, a atualização e distribuída automaticamente a todos os usuários que tenham acesso ao produto, permitindo que o usuário selecione que versão do produto utilizar. Os usuários podem atualizar instâncias de produto em execução para a nova versão rápido e facilmente.
A concessão de acesso a um portfólio para o usuário permite que esse usuário navegue no portfólio e inicialize os produtos contidos nele. Você aplica permissões do AWS Identity and Access Management (IAM) para controlar quem pode visualizar e modificar seus produtos e portfólios. As permissões IAM podem ser atribuídas a usuários, grupos e perfis do IAM. Quando um usuário inicializa um produto que tem um perfil do IAM atribuído a ele, o AWS Service Catalog usa o perfil para inicializar os recursos de nuvem do produto. Ao atribuir uma função de IAM para cada produto, você pode evitar a concessão de permissões a usuários para a execução de operações não aprovadas e permitir que eles provisionem recursos usando o catálogo.
As restrições limitam os modos em que recursos específicos da AWS podem ser implantados para um produto. Você pode usá-los para aplicar limites aos produtos para realizar a governança e o controle de custos. Existem dois tipos de restrições: modelo e inicialização. As restrições de modelo limitam os parâmetros de configuração disponíveis para o usuário durante a inicialização do produto (por exemplo, tipos de instância do EC2 ou intervalos de IPs). As restrições de modelo permitem que você reutilize modelos genéricos de infraestrutura como código (IaC) para produtos e aplique restrições aos modelos por produto ou por portfólio. As restrições de inicialização permitem que você especifique um perfil para um produto em um portfólio. Essa função é usada para provisionar os recursos durante a inicialização, de modo que você possa restringir permissões de usuários sem prejudicar a capacidade de os usuários provisionarem produtos do catálogo. Por exemplo, para usuários de marketing, você pode permitir a criação de sites de campanha, mas com restrições para limitar seu acesso ao provisionamento dos bancos de dados subjacentes. As restrições de lançamento são compatíveis com produtos do tipo código aberto do Terraform e Terraform Cloud. As restrições de modelo ainda não estão disponíveis para produtos do tipo código aberto do Terraform e do Terraform Cloud.
Usando ações de serviço, você pode permitir que os usuários finais executem tarefas operacionais, solucionem problemas, executem comandos aprovados ou solicitem permissões no AWS Service Catalog em seus produtos fornecidos, sem necessidade de conceder aos usuários finais acesso total aos serviços da AWS. Você usa documentos do AWS Systems Manager para definir ações de serviço. Os documentos do AWS Systems Manager fornecem acesso a ações predefinidas que implementam as práticas recomendadas da AWS, como a interrupção e reinicialização do Amazon EC2, e você também pode definir ações personalizadas. As ações de serviço ainda não estão disponíveis para produtos do tipo código aberto do Terraform e Terraform Cloud.
Os construtores definem as aplicações deles no Service Catalog AppRegistry ao fornecer nome, descrição e associações para atribuir grupos e pilhas do CloudFormation. Os grupos de atributos associados representam os metadados que sua empresa cria e gerencia para a aplicação. As pilhas do CloudFormation associadas representam todos os recursos necessários para a aplicação. Esta pode ser a infraestrutura necessária em um único ambiente, ou também pode incluir os repositórios de código, dutos e recursos IAM que suportam a aplicação em todos os ambientes. Tanto as pilhas do CloudFormation Stacks existentes ou novas podem ser associadas a aplicações. As pilhas podem ser associadas a aplicações dentro do próprio modelo, automatizando a associação de aplicações durante o provisionamento.
Sua empresa cria e gerencia atributos que capturam os metadados da aplicação que são importantes para sua empresa. Os atributos da aplicação suportam um esquema JSON aberto, proporcionando a flexibilidade necessária para capturar a complexidade da taxonomia de metadados de sua empresa. Os atributos da aplicação podem incluir metadados como a classificação de segurança da aplicação, propriedade organizacional, tipo de aplicação, centro de custo e informações de suporte. Os construtores associam os atributos necessários às suas aplicações. Quando os atributos são atualizados, isso é automaticamente refletido dentro de todas as aplicações associadas.