Clave KMS | Crear - Referencia avanzada de tipos de cambios de AMS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Clave KMS | Crear

Solicite una clave KMS con una política de claves predefinida.

Clasificación completa: Despliegue | Componentes de pila avanzados | Clave KMS | Crear

Detalles del tipo de cambio

ID de tipo de cambio

ct-1d84keiri1jhg

Versión actual

1.0

Duración de ejecución prevista

60 minutos

Aprobación de AWS

Obligatorio

Aprobación del cliente

No obligatorio

Modo de ejecución

Automatizado

Información adicional

Crear clave KMS

Captura de pantalla de este tipo de cambio en la consola AMS:

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

Cómo funciona:

  1. Vaya a la página Crear RFC: en el panel de navegación izquierdo de la consola AMS, haga clic RFCspara abrir la página de RFCs listas y, a continuación, haga clic en Crear RFC.

  2. Elija un tipo de cambio (CT) popular en la vista predeterminada de búsqueda de tipos de cambios o seleccione un CT en la vista Elegir por categoría.

    • Busque por tipo de cambio: puede hacer clic en un CT popular del área de creación rápida para abrir inmediatamente la página Ejecutar RFC. Tenga en cuenta que no puede elegir una versión antigua de CT con Quick Create.

      Para ordenar CTs, utilice el área Todos los tipos de cambios en la vista de tarjeta o de tabla. En cualquiera de las vistas, seleccione una CT y, a continuación, haga clic en Crear RFC para abrir la página Ejecutar RFC. Si corresponde, aparece la opción Crear con una versión anterior junto al botón Crear RFC.

    • Elegir por categoría: seleccione una categoría, una subcategoría, un elemento y una operación, y se abrirá el cuadro de detalles del CT con la opción Crear con una versión anterior, si corresponde. Haga clic en Crear RFC para abrir la página Ejecutar RFC.

  3. En la página Ejecutar RFC, abra el área del nombre del CT para ver el cuadro de detalles del CT. Se requiere un asunto (lo rellena automáticamente si elige su CT en la vista Buscar tipos de cambios). Abra el área de configuración adicional para añadir información sobre la RFC.

    En el área de configuración de ejecución, utilice las listas desplegables disponibles o introduzca valores para los parámetros necesarios. Para configurar los parámetros de ejecución opcionales, abra el área de configuración adicional.

  4. Cuando haya terminado, haga clic en Ejecutar. Si no hay errores, aparecerá la página de la RFC creada correctamente con los detalles de la RFC enviada y el resultado inicial de la ejecución.

  5. Abra el área de parámetros de ejecución para ver las configuraciones que envió. Actualice la página para actualizar el estado de ejecución de la RFC. Si lo desea, cancele la RFC o cree una copia de la misma con las opciones de la parte superior de la página.

Cómo funciona:

  1. Utilice la función de creación en línea (se emite un create-rfc comando con todos los parámetros de ejecución y RFC incluidos) o la de plantilla (se crean dos archivos JSON, uno para los parámetros de RFC y otro para los parámetros de ejecución) y ejecute el create-rfc comando con los dos archivos como entrada. Ambos métodos se describen aquí.

  2. Envíe el aws amscm submit-rfc --rfc-id ID comando RFC: con el ID de RFC devuelto.

    Supervise el comando RFC:. aws amscm get-rfc --rfc-id ID

Para comprobar la versión del tipo de cambio, utilice este comando:

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

Puede utilizar cualquier CreateRfc parámetro con cualquier RFC, forme o no parte del esquema del tipo de cambio. Por ejemplo, para recibir notificaciones cuando cambie el estado de la RFC, añada esta línea --notification "{\"Email\": {\"EmailRecipients\" : [\"email@example.com\"]}}" a la parte de los parámetros de la RFC de la solicitud (no a los parámetros de ejecución). Para ver una lista de todos los CreateRfc parámetros, consulta la referencia de la API de administración de cambios de AMS.

CREACIÓN EN LÍNEA:

Ejecute el comando create RFC con los parámetros de ejecución incluidos en línea (comillas de escape al proporcionar los parámetros de ejecución en línea) y, a continuación, envíe el ID de RFC devuelto. Por ejemplo, puedes reemplazar el contenido por algo como esto:

Solo parámetros obligatorios:

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"}}'

CREACIÓN DE PLANTILLA:

  1. Envía los parámetros de ejecución del esquema JSON para este tipo de cambio a un archivo; este ejemplo lo nombra CreateKmsKeyAutoParams .json.

    aws amscm get-change-type-version --change-type-id "ct-1d84keiri1jhg" --query "ChangeTypeVersion.ExecutionInputSchema" --output text > CreateKmsKeyAutoParams.json
  2. Modifique y guarde el CreateKmsKeyAutoParams archivo. A continuación se muestran algunos ejemplos.

    Conceda permiso a un usuario o a un rol para descifrar la CMK creada. Ejemplos de parámetros de ejecución:

    { "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 la política resultante, consulteOtorga permisos para descifrar con la CML a un usuario o rol de IAM.

    Conceda a un usuario o rol permiso para cifrar mediante la CMK creada. Ejemplos de parámetros de ejecución:

    { "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 la política resultante, consulteOtorga permisos para cifrar con la CML a un usuario o rol de IAM.

    Conceda permiso a un usuario, rol o cuenta para crear concesiones mediante la CMK creada. Ejemplos de parámetros de ejecución:

    { "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 la política resultante, consulteOtorga permisos para crear concesiones con la CMK para un usuario, un rol o una cuenta de IAM.

    Permita que solo los servicios de AWS que estén integrados con AWS KMS realicen la operación GRANT. Ejemplos de parámetros de ejecución:

    { "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 la política resultante, consultePermita que solo los servicios de AWS que estén integrados con AWS KMS realicen la operación GRANT.

    Imponga el uso de claves de contexto de cifrado en las operaciones criptográficas. Ejemplos de parámetros de ejecución:

    { "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 la política resultante, consulteImponga el uso de claves de contexto de cifrado en las operaciones criptográficas.

    Aplique una lista específica de claves de contexto de cifrado en las operaciones criptográficas. Ejemplos de parámetros de ejecución:

    { "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 la política resultante, consulteAplique una lista específica de claves de contexto de cifrado en las operaciones criptográficas.

    Permita que los servicios de AWS accedan a la CMK creada. Ejemplos de parámetros de ejecución:

    { "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 la política resultante, consultePermitir que los servicios de AWS accedan a la CMK creada.

  3. Envía el archivo JSON de la plantilla RFC a un archivo; en este ejemplo se le asigna el nombre CreateKmsKeyAutoRfc .json:

    aws amscm create-rfc --generate-cli-skeleton > CreateKmsKeyAutoRfc.json
  4. Modifique y guarde el CreateKmsKeyAutoRfc archivo.json. Por ejemplo, puedes reemplazar el contenido por algo como esto:

    { "ChangeTypeId": "ct-1d84keiri1jhg", "ChangeTypeVersion": "1.0", "Title": "Create KMS Key" }
  5. Cree el RFC, especificando el archivo CreateKmsKeyAuto RFC y el CreateKmsKeyAutoParams archivo:

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

    Recibirá el ID de la nueva RFC en la respuesta y podrá utilizarla para enviar y supervisar la RFC. Hasta que la envíe, la RFC permanece en estado de edición y no se inicia.

  • Este CT crea una CloudFormation pila con DeletionPolicy: Retain la que se crea una clave KMS. Por diseño, la clave KMS creada se conservará incluso después de eliminar la pila. Si está seguro de que desea eliminar la clave de KMS, cree una RFC con el tipo de cambio ct-2zxya20wmf5bf, Administración | Componentes de pila avanzados | Clave KMS | Eliminar (es necesario revisar).

  • Este tipo de cambio es ExecutionMode =Automatizado, por lo que no requiere una revisión manual por parte de las operaciones de AMS y debería ejecutarse más rápido que KMS Key: Create (se requiere revisión); sin embargo, si se encuentra en una situación inusual, la versión manual podría funcionar mejor para usted. Consulte KMS Key | Create (es necesario revisar).

  • Este CT tiene un parámetro nuevo AllowServiceRolesAccessKMSKeys, que proporciona a los servicios de AWS especificados acceso a la clave de KMS. El cambio se realizó porque la función de servicio de grupo de escalado automático no podía iniciar las EC2 instancias con volúmenes de EBS cifrados debido a la falta de permisos para acceder a la clave de KMS.

  • Para obtener más información sobre las claves de AWS KMS, consulte AWS Key Management Service (KMS), AWS Key Management FAQs Service y AWS Key Management Service Concepts.

KMS Key: cree las políticas resultantes

En función de cómo creaste tu clave KMS, creaste políticas. Estas políticas de ejemplo coinciden con varios escenarios de creación de claves de KMS que se proporcionan enCrear clave KMS.

Otorga permisos para descifrar con la CML a un usuario o rol de IAM

El ejemplo de política resultante concede a los usuarios, roles o perfiles de instancia de IAM permiso para descifrar mediante la 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 ver los parámetros de ejecución necesarios para crear esta política con la clave KMS Create change type, consulte Crear clave KMS

Otorga permisos para cifrar con la CML a un usuario o rol de IAM

El ejemplo de política resultante concede a los usuarios, roles o perfiles de instancia de IAM permiso para cifrar mediante la 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 ver los parámetros de ejecución necesarios para crear esta política con la clave KMS Create change type, consulte Crear clave KMS

Otorga permisos para crear concesiones con la CMK para un usuario, un rol o una cuenta de IAM

Ejemplo 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 ver los parámetros de ejecución necesarios para crear esta política con la clave KMS Create change type, consulte Crear clave KMS

Permita que solo los servicios de AWS que estén integrados con AWS KMS realicen la operación GRANT

Ejemplo 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 ver los parámetros de ejecución necesarios para crear esta política con la clave KMS Create change type, consulte Crear clave KMS

Imponga el uso de claves de contexto de cifrado en las operaciones criptográficas

Ejemplo 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 ver los parámetros de ejecución necesarios para crear esta política con la clave KMS Create change type, consulte Crear clave KMS

Aplique una lista específica de claves de contexto de cifrado en las operaciones criptográficas

Ejemplo 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 ver los parámetros de ejecución necesarios para crear esta política con la clave KMS Create change type, consulte Crear clave KMS

Permitir que los servicios de AWS accedan a la CMK creada

Ejemplo 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 ver los parámetros de ejecución necesarios para crear esta política con la clave KMS Create change type, consulte Crear clave KMS

Parámetros de entrada de ejecución

Para obtener información detallada sobre los parámetros de entrada de la ejecución, consulteEsquema para el tipo de cambio ct-1d84keiri1jhg.

Ejemplo: parámetros necesarios

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

Ejemplo: todos los 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" ] } }