Saltar al contenido

¿Cómo soluciono los errores al copiar las AMI entre diferentes regiones o cuentas?

4 minutos de lectura
0

Quiero copiar una imagen de máquina de Amazon (AMI) de una región o cuenta de AWS a otra región o cuenta. Sin embargo, recibo errores en mi instancia de Amazon Elastic Compute Cloud (Amazon EC2).

Resolución

Para copiar una AMI entre regiones, configura los permisos de la AMI y sus componentes, como las instantáneas y las claves de cifrado de AWS Key Management Service (AWS KMS).

Solucionar errores de permisos

Faltan permisos de IAM

Si el usuario o rol de AWS Identity and Access Management (IAM) no tiene los permisos necesarios para copiar la AMI, es posible que se muestre el siguiente error:

«You are not authorized to perform this operation»

Para solucionar este problema, asegúrate de que tu entidad de IAM tenga los permisos necesarios.

Faltan permisos para el acceso al almacenamiento de la AMI

Si copias una AMI compartida y la cuenta de destino no tiene acceso a las instantáneas asociadas, es posible que recibas el siguiente error:

«You do not have permission to access the storage of this AMI»

Para resolver este problema, sigue estos pasos:

  1. Para compartir la AMI de origen, elige Editar permisos de la AMI.
  2. Selecciona Agregar el permiso «Crear volumen» a las instantáneas asociadas al crear los permisos de la cuenta.
  3. Comparte la AMI de origen con la cuenta de destino.
    Nota: Si ya has compartido la AMI, elimínala y vuelve a compartirla de la cuenta de origen a la de destino con el permiso Crear volumen seleccionado.

Solución de problemas de clave de AWS KMS y AMI cifradas

En el caso de las AMI cifradas, la cuenta de destino debe acceder a la clave de AWS KMS de origen para descifrarla durante el proceso de copia. La cuenta de destino también debe usar la misma clave o tener una clave coincidente en la región de destino.

Para configurar los permisos para las AMI cifradas, concede a la cuenta de destino acceso a la clave de KMS y, a continuación, crea una política de IAM para el acceso a la clave.

Concesión de acceso a la clave a la cuenta de destino

Para gestionar las AMI cifradas, completa los pasos siguientes en la cuenta de origen:

  1. Abre la consola de AWS KMS.
  2. En el panel de navegación, selecciona Claves administradas por el cliente.
  3. Selecciona la clave de KMS que has usado para cifrar la AMI.
  4. En Política de claves, para la Vista predeterminada, elige Agregar otras cuentas de AWS.
  5. Introduce el ID de la cuenta de destino.
  6. Selecciona Guardar cambios.
  7. En Vista de políticas, elige Editar.
  8. Introduce la siguiente política de acceso:
            {
              "Sid": "Allow use of the key",
              "Effect": "Allow",
              "Principal": {"AWS": [
                "arn:aws:iam::[SOURCE_ACCOUNT_ID]:user/KeyUser",
                "arn:aws:iam::[TARGET_ACCOUNT_ID]:root"
              ]},
              "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:DescribeKey"
              ],
             "Resource": "*"
            },
            {
              "Sid": "Allow attachment of persistent resources",
              "Effect": "Allow",
              "Principal": {"AWS": [
                "arn:aws:iam::SOURCE_ACCOUNT_ID:user/KeyUser",
                "arn:aws:iam::DESTINATION_ACCOUNT_ID:root"  
              ]},
              "Action": [
                "kms:CreateGrant",
                "kms:ListGrants",
                "kms:RevokeGrant"
              ],
              "Resource": "*",
              "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}}
            }
    Nota: Sustituye SOURCE_ACCOUNT_ID por el ID de la cuenta de origen y DESTINATION_ACCOUNT_ID por el ID de la cuenta de destino.

Creación de una política de IAM para que la cuenta de destino tenga acceso a la clave

Crea una política de IAM en la cuenta de destino.

Ejemplo de política:

      {
          "Version": "2012-10-17",
          "Statement": [{
           "Sid": "AllowUseOfTheKey",
           "Effect": "Allow",
           "Action": ["kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey"],
           "Resource": ["KEY_ARN"]
      }, {
           "Sid": "AllowAttachmentOfPersistentResources",
           "Effect": "Allow",
           "Action": ["kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant"],
           "Resource": ["KEY_ARN"],
           "Condition": {
               "Bool": {
                   "kms:GrantIsForAWSResource": true
              }
           }
       }]
   }

Nota: Sustituye KEY_ARN por el nombre de recurso de Amazon (ARN) de tu clave de AWS KMS.

A continuación, adjunta la política a los usuarios o roles de IAM que necesitan trabajar con la AMI cifrada.

Información relacionada

Uso compartido de la clave de KMS utilizada para cifrar una instantánea compartida de Amazon EBS

¿Por qué no puedo iniciar instancias de EC2 desde mi AMI copiada?

OFICIAL DE AWSActualizada hace 10 meses