Chave KMS | Criar - Referência avançada de tipo de alteração do AMS

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á.

Chave KMS | Criar

Solicite uma chave KMS com uma política de chaves predefinida.

Classificação completa: Implantação | Componentes avançados da pilha | Chave KMS | Criar

Detalhes do tipo de alteração

ID do tipo de alteração

ct-1d84keiri1jhg

Versão atual

1,0

Duração esperada da execução

60 minutos

Aprovação da AWS

Obrigatório

Aprovação do cliente

Não obrigatório

Modo de execução

Automatizado

Informações adicionais

Criar chave KMS

Captura de tela desse tipo de alteração no console AMS:

Create KMS key change type with description, ID, version, and execution mode details.

Como funciona:

  1. Navegue até a página Criar RFC: No painel de navegação esquerdo do console AMS, clique RFCspara abrir a página da RFCs lista e, em seguida, clique em Criar RFC.

  2. Escolha um tipo de alteração popular (CT) na visualização padrão Procurar tipos de alteração ou selecione uma CT na visualização Escolher por categoria.

    • Navegar por tipo de alteração: você pode clicar em um CT popular na área de criação rápida para abrir imediatamente a página Executar RFC. Observe que você não pode escolher uma versão mais antiga do CT com a criação rápida.

      Para classificar CTs, use a área Todos os tipos de alteração na exibição Cartão ou Tabela. Em qualquer exibição, selecione uma CT e clique em Criar RFC para abrir a página Executar RFC. Se aplicável, a opção Criar com versão mais antiga aparece ao lado do botão Criar RFC.

    • Escolha por categoria: selecione uma categoria, subcategoria, item e operação e a caixa de detalhes do CT será aberta com a opção Criar com uma versão mais antiga, se aplicável. Clique em Criar RFC para abrir a página Executar RFC.

  3. Na página Executar RFC, abra a área do nome do CT para ver a caixa de detalhes do CT. É necessário um Assunto (preenchido se você escolher seu CT na visualização Procurar tipos de alteração). Abra a área Configuração adicional para adicionar informações sobre o RFC.

    Na área Configuração de execução, use as listas suspensas disponíveis ou insira valores para os parâmetros necessários. Para configurar parâmetros de execução opcionais, abra a área Configuração adicional.

  4. Ao terminar, clique em Executar. Se não houver erros, a página RFC criada com sucesso será exibida com os detalhes da RFC enviada e a saída inicial de execução.

  5. Abra a área Parâmetros de execução para ver as configurações que você enviou. Atualize a página para atualizar o status de execução do RFC. Opcionalmente, cancele a RFC ou crie uma cópia dela com as opções na parte superior da página.

Como funciona:

  1. Use o Inline Create (você emite um create-rfc comando com todos os parâmetros de RFC e execução incluídos) ou o Template Create (você cria dois arquivos JSON, um para os parâmetros RFC e outro para os parâmetros de execução) e emita o create-rfc comando com os dois arquivos como entrada. Ambos os métodos são descritos aqui.

  2. Envie o aws amscm submit-rfc --rfc-id ID comando RFC: com o ID RFC retornado.

    Monitore o aws amscm get-rfc --rfc-id ID comando RFC:.

Para verificar a versão do tipo de alteração, use este comando:

aws amscm list-change-type-version-summaries --filter Attribute=ChangeTypeId,Value=CT_ID
nota

Você pode usar qualquer CreateRfc parâmetro com qualquer RFC, independentemente de eles fazerem parte do esquema para o tipo de alteração. Por exemplo, para receber notificações quando o status da RFC mudar, adicione essa linha --notification "{\"Email\": {\"EmailRecipients\" : [\"email@example.com\"]}}" à parte dos parâmetros da RFC da solicitação (não aos parâmetros de execução). Para obter uma lista de todos os CreateRfc parâmetros, consulte a Referência da API de gerenciamento de alterações do AMS.

CRIAÇÃO EM LINHA:

Execute o comando create RFC com os parâmetros de execução fornecidos em linha (aspas de escape ao fornecer parâmetros de execução em linha) e, em seguida, envie a ID de RFC retornada. Por exemplo, você pode substituir o conteúdo por algo assim:

Somente parâmetros obrigatórios:

aws amscm create-rfc --title my-app-key --change-type-id ct-1d84keiri1jhg --change-type-version 1.0 --execution-parameters '{"Description":"KMS key for my-app","VpcId":"VPC_ID","Name":"my-app-key","StackTemplateId":"stm-enf1j068fhg34vugt","TimeoutInMinutes":60,"Parameters":{"Description":"KMS key for my-app"}}'

CRIAÇÃO DE MODELO:

  1. Envie os parâmetros de execução do esquema JSON para esse tipo de alteração em um arquivo; este exemplo o chama de .json. CreateKmsKeyAutoParams

    aws amscm get-change-type-version --change-type-id "ct-1d84keiri1jhg" --query "ChangeTypeVersion.ExecutionInputSchema" --output text > CreateKmsKeyAutoParams.json
  2. Modifique e salve o CreateKmsKeyAutoParams arquivo. Seguem exemplos.

    Conceda permissão a um usuário ou função para descriptografar a CMK criada. Parâmetros de execução de exemplo:

    { "Description": "KMS key for my-app", "VpcId": "VPC_ID”, "Name": "my-app-key-decrypt", "StackTemplateId": "stm-enf1j068fhg34vugt", "TimeoutInMinutes": 60, "Parameters": { "IAMPrincipalsRequiringDecryptPermissions": [ "ARN:role/roleA", "ARN:user/userB", "ARN:role/instanceProfileA" ], "Description": "KMS key for my-app" } }

    Para ver a política resultante, consulteConcede permissões para descriptografar com a CML para um usuário ou uma função do IAM.

    Conceda a um usuário ou função permissão para criptografar usando a CMK criada. Parâmetros de execução de exemplo:

    { "Description": "KMS key for my-app", "VpcId": "VPC_ID", "Name": "my-app-key-encrypt", "Tags": [ { "Key": "Name", "Value": "my-app-key" } ], "StackTemplateId": "stm-enf1j068fhg34vugt", "TimeoutInMinutes": 60, "Parameters": { "IAMPrincipalsRequiringEncryptPermissions": [ "ARN:role/roleA", "ARN:user/userB", "ARN:role/instanceProfileA" ], "Description": "KMS key for my-app" } }

    Para ver a política resultante, consulteConcede permissões para criptografar com a CML para um usuário ou uma função do IAM.

    Conceda permissão a um usuário, papel ou conta para criar concessões usando a CMK criada. Parâmetros de execução de exemplo:

    { "Description": "KMS key for my-app", "VpcId": "VPC_ID", "Name": "my-app-key-create-grants", "StackTemplateId": "stm-enf1j068fhg34vugt", "TimeoutInMinutes": 60, "Parameters": { "IAMPrincipalsRequiringGrantsPermissions": [ "arn:aws:iam::999999999999:role/roleA", "888888888888" ], "Description": "KMS key for my-app" } }

    Para ver a política resultante, consulteConcede permissões para criar concessões com a CMK para um usuário, função ou conta do IAM.

    Permita que somente serviços da AWS integrados ao AWS KMS realizem a operação GRANT. Parâmetros de execução de exemplo:

    { "Description": "KMS key for my-app", "VpcId": "VPC_ID", "Name": "my-app-key-limit-to-services", "StackTemplateId": "stm-enf1j068fhg34vugt", "TimeoutInMinutes": 60, "Parameters": { "IAMPrincipalsRequiringGrantsPermissions": [ "arn:aws:iam::999999999999:role/roleA" ], "LimitGrantsToAWSResources": "true", "Description": "KMS key for my-app" } }

    Para ver a política resultante, consultePermita que somente serviços da AWS integrados ao AWS KMS executem a operação GRANT.

    Imponha o uso de chaves de contexto de criptografia em operações criptográficas. Parâmetros de execução de exemplo:

    { "Description": "KMS key for my-app", "VpcId": "VPC_ID", "Name": "my-app-key-encryption-keys", "StackTemplateId": "stm-enf1j068fhg34vugt", "TimeoutInMinutes": 60, "Parameters": { "EnforceEncryptionContextKeys": "true", "Description": "KMS key for my-app" } }

    Para ver a política resultante, consulteImponha o uso de chaves de contexto de criptografia em operações criptográficas.

    Aplique uma lista específica de chaves de contexto de criptografia em operações criptográficas. Parâmetros de execução de exemplo:

    { "Description": "KMS key for my-app", "VpcId": "VPC_ID", "Name": "my-app-key-encryption-list", "StackTemplateId": "stm-enf1j068fhg34vugt", "TimeoutInMinutes": 60, "Parameters": { "AllowedEncryptionContextKeys": [ "Name", "Application" ], "Description": "KMS key for my-app" } }

    Para ver a política resultante, consulteAplique uma lista específica de chaves de contexto de criptografia em operações criptográficas.

    Permita que os serviços da AWS acessem a CMK criada. Parâmetros de execução de exemplo:

    { "Description" : "KMS key for my-app", "VpcId" : "VPC_ID", "Name" : "my-app-key-allow-aws-service-access", "StackTemplateId" : "stm-enf1j068fhg34vugt", "TimeoutInMinutes" : 60, "Parameters" : { "AllowServiceRolesAccessKMSKeys": [ "ec2.us-east-1.amazonaws.com", "ecr.us-east-1.amazonaws.com" ], "Description": "KMS key for my-app" } }

    Para ver a política resultante, consultePermita que os serviços da AWS acessem a CMK criada.

  3. Envie o arquivo JSON do modelo RFC para um arquivo; este exemplo o chama de .json: CreateKmsKeyAutoRfc

    aws amscm create-rfc --generate-cli-skeleton > CreateKmsKeyAutoRfc.json
  4. Modifique e salve o CreateKmsKeyAutoRfc arquivo.json. Por exemplo, você pode substituir o conteúdo por algo assim:

    { "ChangeTypeId": "ct-1d84keiri1jhg", "ChangeTypeVersion": "1.0", "Title": "Create KMS Key" }
  5. Crie o RFC, especificando o arquivo CreateKmsKeyAuto Rfc e o arquivo: CreateKmsKeyAutoParams

    aws amscm create-rfc --cli-input-json file://CreateKmsKeyAutoRfc.json --execution-parameters file://CreateKmsKeyAutoParams.json

    Você recebe o ID do novo RFC na resposta e pode usá-lo para enviar e monitorar o RFC. Até que você o envie, o RFC permanece no estado de edição e não inicia.

  • Esse CT cria uma CloudFormation pilha que cria uma chave KMS com. DeletionPolicy: Retain Por padrão, a chave KMS criada persistirá mesmo depois que você excluir a pilha. Se tiver certeza de que deseja excluir a chave KMS, crie uma RFC com o tipo de alteração ct-2zxya20wmf5bf, Gerenciamento | Componentes avançados da pilha | Chave KMS | Excluir (revisão obrigatória).

  • Esse tipo de alteração é ExecutionMode =Automatizado, portanto, esse tipo de alteração não requer revisão manual pelas operações do AMS e deve ser executado mais rapidamente do que Chave KMS: Criar (revisão obrigatória); no entanto, se você tiver uma situação incomum, a versão manual poderá funcionar melhor para você. Consulte Chave KMS | Criar (revisão obrigatória).

  • Essa CT tem um novo parâmetro, AllowServiceRolesAccessKMSKeys, que fornece aos serviços da AWS especificados acesso à chave KMS. A alteração foi feita porque a função de serviço de grupo de escalonamento automático não conseguiu iniciar as EC2 instâncias com volumes criptografados do EBS devido à falta de permissões para a chave KMS.

  • Para saber mais sobre as chaves do AWS KMS, consulte AWS Key Management Service (KMS), AWS Key Management Service e AWS Key Management FAQs Service Concepts.

Chave KMS Crie políticas resultantes

Dependendo de como você criou sua chave KMS, você criou políticas. Esses exemplos de políticas correspondem a vários cenários de criação de chaves KMS fornecidos emCriar chave KMS.

Concede permissões para descriptografar com a CML para um usuário ou uma função do IAM

O exemplo de política resultante concede aos usuários, funções ou perfis de instância do IAM permissão para descriptografar usando a CMK:

{ "Sid": "Allow decrypt using the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::999999999999:role/roleA", "arn:aws:iam::999999999999:user/userB", "arn:aws:iam::999999999999:role/instanceProfileA" ] }, "Action": [ "kms:DescribeKey", "kms:Decrypt" ], "Resource": "*" }

Para obter os parâmetros de execução para criar essa política com a chave KMS Criar tipo de alteração, consulte Criar chave KMS

Concede permissões para criptografar com a CML para um usuário ou uma função do IAM

O exemplo de política resultante concede aos usuários, funções ou perfis de instância do IAM permissão para criptografar usando a CMK:

{ "Sid": "Allow encrypt using the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::999999999999:role/roleA", "arn:aws:iam::999999999999:user/userB", "arn:aws:iam::999999999999:role/instanceProfileA" ] }, "Action": [ "kms:DescribeKey", "kms:Encrypt", "kms:ReEncrypt*", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "*" }

Para obter os parâmetros de execução para criar essa política com a chave KMS Criar tipo de alteração, consulte Criar chave KMS

Concede permissões para criar concessões com a CMK para um usuário, função ou conta do IAM

Exemplo de política resultante:

{ "Sid": "Allow grants", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::999999999999:role/roleA", "arn:aws:iam::888888888888:root" ] }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*" }

Para obter os parâmetros de execução para criar essa política com a chave KMS Criar tipo de alteração, consulte Criar chave KMS

Permita que somente serviços da AWS integrados ao AWS KMS executem a operação GRANT

Exemplo de política resultante:

{ "Sid": "Allow grants", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::999999999999:role/roleA" }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*" }, { "Sid": "Deny if grant is not for AWS resource", "Effect": "Deny", "Principal": { "AWS": "*" }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": "false" } } } } }

Para obter os parâmetros de execução para criar essa política com a chave KMS Criar tipo de alteração, consulte Criar chave KMS

Imponha o uso de chaves de contexto de criptografia em operações criptográficas

Exemplo de política resultante:

{ "Effect": "Deny", "Principal": { "AWS": "*" }, "Action": [ "kms:CreateGrant", "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey*", "kms:ReEncrypt" ], "Resource": "*", "Condition": { "Null": { "kms:EncryptionContextKeys": "true" } } }

Para obter os parâmetros de execução para criar essa política com a chave KMS Criar tipo de alteração, consulte Criar chave KMS

Aplique uma lista específica de chaves de contexto de criptografia em operações criptográficas

Exemplo de política resultante:

{ "Effect": "Deny", "Principal": { "AWS": "*" }, "Action": [ "kms:CreateGrant", "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey*", "kms:ReEncrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContextKeys": [ "Name", "Application" ] } } }

Para obter os parâmetros de execução para criar essa política com a chave KMS Criar tipo de alteração, consulte Criar chave KMS

Permita que os serviços da AWS acessem a CMK criada

Exemplo de política resultante:

{ "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "kms:ListGrants", "kms:CreateGrant", "kms:DescribeKey", "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "ec2.us-west-2.amazonaws.com", "ecr.us-east-1.amazonaws.com" ], "kms:CallerAccount": "111122223333" } } }

Para obter os parâmetros de execução para criar essa política com a chave KMS Criar tipo de alteração, consulte Criar chave KMS

Parâmetros de entrada de execução

Para obter informações detalhadas sobre os parâmetros de entrada de execução, consulteEsquema para alteração do tipo ct-1d84keiri1jhg.

Exemplo: parâmetros obrigatórios

{ "Description" : "Test description", "VpcId" : "vpc-12345678901234567", "Name" : "TestStack", "StackTemplateId" : "stm-enf1j068fhg34vugt", "TimeoutInMinutes" : 60, "Parameters" : { "Description" : "Test key" } }

Exemplo: Todos os parâmetros

{ "Description" : "Test description", "VpcId" : "vpc-12345678", "Name" : "TestStack", "Tags" : [ { "Key" : "foo", "Value" : "bar" } ], "StackTemplateId" : "stm-enf1j068fhg34vugt", "TimeoutInMinutes" : 60, "Parameters" : { "Alias" : "testkey", "EnableKeyRotation" : "true", "Description" : "Test key", "PendingWindow" : 30, "IAMPrincipalsRequiringDecryptPermissions" : [ "arn:aws:iam::123456789012:user/myuser", "arn:aws:iam::123456789012:role/myrole" ], "IAMPrincipalsRequiringEncryptPermissions" : [ "arn:aws:iam::123456789012:user/myuser", "arn:aws:iam::123456789012:role/myrole" ], "IAMPrincipalsRequiringGrantsPermissions" : [ "arn:aws:iam::123456789012:user/myuser", "arn:aws:iam::123456789012:role/myrole", "987654321098" ], "LimitGrantsToAWSResources" : "true", "EnforceEncryptionContextKeys" : "true", "AllowedEncryptionContextKeys" : [ "App" ], "AllowServiceRolesAccessKMSKeys": [ "ec2.us-east-1.amazonaws.com" ] } }