Reconstruir a cadeia de autorização
Num banco fictício, uma role APS na conta de aplicações precisa de usar uma chave simétrica da conta de segurança. Ter kms:Decrypt na política IAM da role não basta se a chave não autorizar esse acesso. No desenho por políticas entre contas, verifica a autorização do lado da chave e a delegação do lado da identidade, sem ignorar negações explícitas, condições e limites aplicáveis. A autorização para o serviço que guarda o objeto é outra verificação. Identifica o principal efetivo da sessão, a operação, o ARN completo da chave e a região. Dentro da conta, uma key policy pode autorizar diretamente um principal ou habilitar delegação por IAM; não transformes o padrão entre contas numa regra universal de duas permissões independentes para qualquer pedido.
Restringir o uso sem confundir o contexto com segredo
kms:ViaService permite restringir o uso da chave a pedidos feitos por um serviço integrado em nome do principal, através de forward access sessions. Uma chamada direta ao KMS não demonstra que o percurso por esse serviço está autorizado, nem satisfaz automaticamente a condição. Em operações simétricas, encryption context acrescenta pares autenticados que devem ser reproduzidos no desencriptar. Não é um cofre: pode aparecer em claro nos logs. Usa identificadores operacionais não sensíveis, nunca nomes de clientes ou segredos. No exercício original, Workload=nav-batch e Stage=prod identificam o contexto. Alterar prod para Prod ou perder um par pode invalidar o pedido. Regista o contexto necessário junto dos metadados do processo, protegendo integridade e compatibilidade entre versões da aplicação.
Dar uma finalidade e uma saída a cada grant
Um grant permite operações específicas numa chave; não serve para introduzir uma negação. Tem um grantee e âmbito de uma chave. A criação, revogação e retirada têm consistência eventual; um grant token pode permitir usar uma autorização recém-criada antes da propagação normal. Isso não torna a revogação instantânea nem substitui outras regras de acesso. Para contexto, Equals exige correspondência exata dos pares; Subset permite pares adicionais, mantendo todos os pares exigidos. A ordem dos pares não importa, mas maiúsculas e valores importam. O modelo Python desta aula verifica apenas estas comparações, não simula IAM nem criptografia. Em automação, o nome estável com os mesmos parâmetros ajuda a evitar grants duplicados em retries. Define owner, finalidade, restrições e procedimento de retirada quando o trabalho termina.
Distinguir rotação de migração dos dados
Rodar material de uma chave elegível mantém a identidade lógica da chave e permite continuar a desencriptar dados anteriores. Não reescreve os objetos nem roda as data keys que já foram usadas. Se uma data key em claro foi comprometida, a rotação da chave KMS, por si só, não corrige essa exposição. Envelope encryption usa uma data key para os dados e protege essa data key com KMS. GenerateDataKey pode devolver a data key em claro e cifrada; a aplicação deve evitar persistir a cópia em claro e removê-la da memória quando deixa de ser necessária. GenerateDataKeyWithoutPlaintext não fornece a cópia em claro para encriptar imediatamente. Mudar um alias para outra chave altera futuras resoluções desse alias, mas não migra automaticamente o ciphertext histórico para a chave nova.
Ensaiar a região de recuperação com as suas próprias políticas
Chaves multi-Region relacionadas partilham material e identidade de chave, mas políticas, grants, aliases e estado enabled/disabled são independentes. Copiar a arquitetura para outra região sem rever essas propriedades pode deixar a aplicação incapaz de desencriptar durante recuperação. O ensaio deve usar a role real da região de destino e o ARN regional correto. Não assumes que todos os serviços exploram a interoperabilidade multi-Region: S3 trata estas chaves como regionais no seu mecanismo de encriptação do lado do servidor. Uma política de endpoint privado também não concede por si autorização KMS. Recolhe evidência por operação e por percurso. Para chamadas entre contas, os registos CloudTrail nas contas do chamador e do proprietário ajudam a relacionar quem pediu, que chave foi usada e qual foi o resultado.
Tratar retirada de chaves como dependência de recuperação
Uma chave PendingDeletion deixa de aceitar operações criptográficas, embora uma aplicação possa continuar temporariamente com data keys em cache. A ausência imediata de incidentes não prova desuso. A revisão de retirada precisa de cobrir cópias históricas, versões de objetos, ciclos raros e restauros, com owners identificados. Cancelar uma eliminação agendada deixa a chave Disabled; é preciso uma decisão autorizada de reativação e validação do serviço. Depois de uma chave gerada por KMS ser eliminada, recriar um alias com o mesmo nome não recupera o material anterior. Mantém o planeamento separado da execução e usa testes de leitura/restauro antes de aprovar saída. A decisão deve explicar quais os dados que ainda dependem da chave e por quanto tempo, em vez de se apoiar apenas no tráfego recente.
required = {'Workload': 'nav-batch', 'Stage': 'prod'}
request = {'Stage': 'prod', 'Workload': 'nav-batch', 'Run': 'r14'}
exact_match = request == required # False: additional pair
subset_match = all(request.get(k) == v for k, v in required.items()) # True
wrong_case = {**request, 'Stage': 'Prod'}
wrong_case_matches = all(wrong_case.get(k) == v for k, v in required.items()) # False
# Local pair-comparison model only; not KMS encryption or IAM evaluation.No ensaio fictício de recuperação, o mesmo identificador multi-Region existe no destino, mas a role de recuperação não está autorizada na política regional. APS identifica a chamada e a condição em falta antes de propor uma alteração limitada.
Armadilhas comuns
Confundir IAM Allow com acesso efetivo; tratar contexto como segredo; esperar revogação instantânea; usar rotação como re-encriptação; eliminar chaves porque não há tráfego recente.
Tópicos relacionados: S3: acesso, encriptação e retenção
Acesso e recuperação dependem da chave, identidade, contexto, operação, região e ciclo de vida corretos em conjunto.
Referência: KMS key policies · SAP-C02