Conectar uma ferramenta de custos não deveria exigir chaves de acesso. A conexão AWS do Mosaic usa uma função IAM na sua conta, credenciais temporárias e uma etapa de registro. Veja quais informações cruzam a fronteira entre contas e como revogar o acesso.
A role define os limites do acesso
A CloudFormation stack cria uma função IAM nomeada com três ações de leitura
de Cost Explorer: ce:GetCostAndUsage, ce:GetDimensionValues e ce:GetTags.
Elas permitem consultar custos e dimensões de cobrança. Não concedem permissão
para alterar infra-estrutura nem ler objetos da aplicação no S3.
A política de confiança identifica a conta AWS do Mosaic e exige um ID externo. Quando precisa importar custos, o worker chama o STS AssumeRole com esse ID e usa as credenciais temporárias retornadas. Não há uma chave de usuário IAM do cliente para renovar dentro do Mosaic. Esse é o modelo de acesso por funções para terceiros da AWS.
ID externo e token de registro têm funções distintas
O ID externo associa a solicitação de assumir a função a uma conexão do Mosaic. Ele ajuda a evitar que um cliente induza um serviço compartilhado a usar a função de outra pessoa, o confused deputy problem. O ID externo é uma condição da política de confiança, não um substituto para a identidade AWS autorizada.
O registro resolve outro problema. Um token aleatório separado comprova que a CloudFormation stack pertence à tentativa de configuração atual. O Mosaic criptografa ambos os valores no armazenamento e disponibiliza o material de configuração somente a administradores autenticados da organização. Essa separação mantém a confirmação do registro independente da condição usada para acessar a função posteriormente.
A própria AWS informa a conta selecionada
O cliente escolhe a conta na AWS e cria a CloudFormation stack gerada. As opções Console e CLI usam os mesmos parâmetros persistidos: nomes da stack e da função, ID externo, identificador da tentativa e token de registro. Retomar a configuração reutiliza esses valores. Reiniciá-la gera uma nova tentativa.
Um recurso personalizado do CloudFormation baseado em SNS envia o ARN da função e a identidade da conta ao serviço de registro do Mosaic. O cliente não precisa implantar uma função Lambda. O Mosaic verifica o token, a tentativa atual, o nome da função e a correspondência entre conta e CloudFormation stack antes de registrar o acesso. Entregas duplicadas não podem trocar a CloudFormation vinculada, e uma tentativa antiga não pode sobrescrever a nova.
Registro concluído não significa dados disponíveis
Um CloudFormation stack concluído confirma a criação da função e seu registro. Os dados de cobrança da AWS ainda podem estar sendo preparados. O Mosaic primeiro assume a função e depois consulta o Cost Explorer. O acesso confirmado coloca na fila a importação do histórico escolhido: um, três, seis ou treze meses, com seis como padrão.
Os resultados das verificações são persistidos. Uma reserva temporária impede verificações simultâneas, e uma rotina em segundo plano continua o trabalho quando o navegador é fechado. A ativação e a criação da importação inicial ocorrem na mesma transação do banco de dados.
Quando a AWS informa explicitamente que os dados estão indisponíveis, o Mosaic sugere conferir a ativação do Cost Explorer e aguardar a preparação da cobrança. Uma falha genérica ou uma resposta vazia não prova que o serviço está desativado. A AWS descreve esse processo de preparação.
As chamadas à API também têm custo. O intervalo histórico e a paginação afetam o número de solicitações. Consulte os preços da AWS.
A revogação continua sob seu controle
Desconectar no Mosaic interrompe a conexão e preserva o histórico importado. Excluir a CloudFormation stack remove a função e envia uma notificação de exclusão. Essa notificação só pode desativar a conexão vinculada àquela CloudFormation stack. Se a entrega falhar, desconecte também no Mosaic.
Para pré-requisitos, seleção de conta, instruções CLI e recuperação, consulte o guia de conexão AWS, em inglês.