Cuando intento añadir o editar mi política de bucket de Amazon Simple Storage Service (Amazon S3), recibo el error “Invalid principal in policy”.
Solución
Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de problemas de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.
Si tu política de bucket de Amazon S3 contiene un valor no válido del elemento Principal (Entidad principal), recibirás el error “Invalid principal in policy”. Para resolver este error, sigue estos pasos de solución de problemas.
Verificación de que la política de bucket utilice valores admitidos para el elemento “Principal”
Asegúrate de especificar los siguientes valores admitidos para el elemento Principal en la política de bucket de S3:
Nota: Se concede acceso a todos los usuarios autenticados y anónimos si utilizas el asterisco comodín (*) como elemento “Principal”.
Comprobación de que el valor “Principal” esté formateado correctamente
Comprueba que los elementos Principal de la política de buckets tengan el formato correcto. Si el elemento Principal incluye un usuario, utiliza el siguiente formato:
"Principal": { "AWS": "arn:aws:iam::111111111111:user/user-name1"
}
Nota: Sustituye user-name1 por el nombre de tu usuario de IAM.
Si el elemento Principal incluye más de un usuario o rol de IAM, utiliza el siguiente formato:
"Principal": { "AWS": [
"arn:aws:iam::111111111111:user/user-name1",
"arn:aws:iam::111111111111:role/role-name1"
]
}
Nota: Sustituye user-name1 por el nombre de tu usuario de IAM y role-name1 por el nombre de tu rol de IAM.
Si el elemento Principal incluye a todos los usuarios, utiliza el siguiente formato:
{ "Principal": "*"
}
Nota: Se recomienda no utilizar un carácter comodín (*) en el elemento Principal de una política basada en recursos con el efecto Permitir. Utiliza el comodín (*) únicamente para conceder acceso público o anónimo. Especifica las entidades principales, los servicios o las cuentas de AWS previstos en el elemento Principal. A continuación, utiliza el elemento Condition (Condición) para restringir el acceso.
Asegurarse de que el usuario o el rol de IAM no se hayan eliminado
Si intentas guardar la política de bucket con un identificador único como elemento Principal, aparece el error “Invalid principal in policy”. Esto se debe a que el elemento Principal solo admite ARN de IAM válidos. Para resolver este error, debes eliminar cualquier identificador único del elemento Principal.
Si la política de bucket incluye usuarios o roles de IAM en el elemento Principal, comprueba que esas identidades de IAM no se hayan eliminado. Para identificar los usuarios y roles de IAM eliminados en tu política de bucket, especifica los identificadores únicos en lugar de los ARN completos en el elemento Principal.
Ejemplo:
"Principal": { "AWS": [
"arn:aws:iam::111111111111:user/user-name1",
"AIDAJQABLZS4A3QDU576Q",
"arn:aws:iam::111111111111:user/user-name2"
]
}
Nota: Sustituye user-name1 y user-name2 por los nombres de los usuarios de IAM.
Verificación de que la cuenta de la entidad principal de IAM tenga una región activada
Si tu bucket se encuentra en una región de AWS que AWS no activa de forma predeterminada, confirma que hayas activado la región en la cuenta de la entidad principal de IAM. Para obtener más información, consulta Activate or deactivate AWS Regions in your account (Activación o desactivación de las regiones de AWS en tu cuenta).
Uso del analizador de acceso de IAM para validar el acceso al bucket
Para validar el acceso a tus buckets de S3 antes de implementar los permisos, utiliza el analizador de acceso de AWS Identity and Access Management. Puedes revisar las políticas de buckets de S3 que te otorgan recursos de otra cuenta de AWS.
También puedes usar el analizador de acceso de IAM para analizar tus eventos de AWS CloudTrail y generar una política de IAM basada en esa actividad. Para obtener más información, consulta Generación de políticas del Analizador de acceso de IAM.
Para activar el analizador de acceso de IAM, consulta Introducción a AWS Identity and Access Management Access Analyzer.
Nota: AWS te cobra por cualquier análisis de acceso no utilizado que crees al mes. Para obtener más información, consulta Precios del IAM Access Analyzer.
Para solucionar problemas de permisos del analizador de acceso de IAM, consulta How do I resolve permission issues with policies generated from IAM Access Analyzer? (¿Cómo soluciono los problemas de permisos con las políticas generadas desde el analizador de acceso de IAM?).