¿Por qué recibí un error de permiso GetBucketACL de Amazon S3 al actualizar la configuración de CRL de la autoridad de certificación privada de ACM?

Última actualización: 08/06/2022

Actualicé mi autoridad de certificación (CA) privada de AWS Certificate Manager (ACM) para configurar una lista de revocación de certificados (CRL). Sin embargo, he recibido un error como este:

“The ACM Private CA Service Principal 'acm-pca.amazonaws.com' requires 's3:GetBucketAcl' permissions” (La entidad principal de servicio de CA privada de ACM 'acm-pca.amazonaws.com' requiere permisos 's3:GetBucketAcl').

¿Cómo puedo solucionar este problema?

Descripción corta

ACM Private CA coloca la CRL en un bucket de Amazon Simple Storage Service (Amazon S3) que usted designe para su uso. Su bucket de Amazon S3 debe estar protegido por una política de permisos adjunta. Los usuarios autorizados y las entidades principales de servicio requieren permiso Put para permitir que ACM Private CA coloque objetos en el bucket y permiso Get para recuperarlos.

Para obtener más información, consulte Políticas de acceso para CRL en Amazon S3.

Resolución

Siga estas instrucciones para reemplazar la política predeterminada de Amazon S3 por la siguiente política menos permisiva.

Nota: Si se producen errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), asegúrese de que utiliza la versión más reciente de la AWS CLI.

1.    Abra la consola de Amazon S3.

2.    En la lista de buckets, abra el bucket en el que desea colocar la CRL.

3.    Haga clic en la pestaña Permissions (Permisos).

4.    En Bucket policy (Política de bucket), seleccione Edit (Editar).

5.    En Policy (Política), copie y pegue la siguiente política:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "acm-pca.amazonaws.com"
      },
      "Action": [
        "s3:PutObject",
        "s3:PutObjectAcl",
        "s3:GetBucketAcl",
        "s3:GetBucketLocation"
      ],
      "Resource": [
        "arn:aws:s3:::your-crl-storage-bucket/*",
        "arn:aws:s3:::your-crl-storage-bucket"
      ],
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "account",
          "aws:SourceArn": "arn:partition:acm-pca:region:account:certificate-authority/CA_ID"
        }
      }
    }
  ]
}

Nota: Reemplace el nombre del bucket de S3, el ID de cuenta y el ARN de ACM PCA por sus variables.

6.    Seleccione Save changes (Guardar cambios).

7.    Siga las instrucciones para cifrar las CRL.

8.    Actualice la configuración de revocación de CA mediante el comando update-certificate-authority de AWS CLI de manera similar a la siguiente:

$ aws acm-pca update-certificate-authority --certificate-authority-arn <Certification_Auhtority_ARN> --revocation-configuration file://revoke_config.txt

El archivo revoke_config.txt contiene información de revocación similar a la siguiente:

{
    "CrlConfiguration": {
        "Enabled": <true>,
        "ExpirationInDays": <7>,
        "CustomCname": "<example1234.cloudfront.net>",
        "S3BucketName": "<example-test-crl-bucket-us-east-1>",
        "S3ObjectAcl": "<BUCKET_OWNER_FULL_CONTROL>"
    }
}

Nota:

  • Si ha desactivado la función Block Public Access (Bloquear acceso público [BPA]) en Amazon S3, puede especificar BUCKET_OWNER_FULL_CONTROL o PUBLIC_READ como valor.
  • Si configuró su CRL con la consola de administración de AWS, es posible que reciba un error “ValidationException”. Repita el paso 8 para actualizar la configuración de revocación de la CA mediante AWS CLI.