Cuando intento agregar 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 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 Entidad principal
Asegúrate de especificar los siguientes valores admitidos para el elemento Entidad 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 Entidad principal.
Comprobación de que el valor Entidad principal esté formateado correctamente
Comprueba que los elementos Entidad principal de la política de buckets tengan el formato correcto. Si el elemento Entidad 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 Entidad 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 Entidad principal incluye todos los usuarios, utiliza el siguiente formato:
{ "Principal": "*"
}
Nota: Se recomienda no utilizar un carácter comodín (*) en el elemento Entidad 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 Entidad principal. A continuación, utiliza el elemento Condición para restringir el acceso.
Nota: Cuando concedes acceso anónimo, cualquier persona puede acceder a tu bucket. Te recomendamos que no concedas acceso de escritura anónimo al bucket de S3. Para obtener más información, consulta Cómo funciona Amazon S3 con IAM.
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 Entidad principal, aparece el error «Invalid principal in policy». Esto se debe a que el elemento Entidad principal solo admite ARN de IAM válidos. Para resolver este error, debes eliminar cualquier identificador único del elemento Entidad principal.
Si la política de bucket incluye usuarios o roles de IAM en el elemento Entidad 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 Entidad 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
Al aplicar una política de bucket de S3, AWS comprueba que las regiones de AWS necesarias estén disponibles en la cuenta de la entidad principal de IAM. Es posible que el bucket se encuentre en una región de AWS que AWS no active de forma predeterminada. En ese caso, confirma que has activado la región en la cuenta de la entidad principal de IAM. En un escenario entre cuentas, activa la región de AWS para ambas cuentas de AWS. Para obtener más información, consulta Activar o desactivar 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 desplegar 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?).