Je suis en train de créer un rôle IAM dans AWS pour un accès fédéré et de continuer à exécuter le même problème en python en utilisant boto ou powershell en utilisant le cli.Essayer de créer un rôle iam dans aws et obtenir une erreur sur le fichier supposRolePolicyDocument
Voici ce que j'essaie de faire avec python.
import boto3
tpdoc = r'c:\folders\trustPolicy.json'
with open(tpdoc, 'r') as tpfile:
data = tpfile.read()
client = boto3.client('iam')
response = client.create_role(
RoleName="testrole",
AssumeRolePolicyDocument=data
)
Ce trustPolicy.json référencé est construit comme celui-ci
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "sts:AssumeRoleWithSAML",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"SAML:aud": "https://signin.aws.amazon.com/saml"
}
},
"Principal": {
"Federated": "arn:aws:iam::1234567890:saml-provider/myidp"
}
}
]
}
Quand je lance ce code avec ce fichier, je reçois l'erreur suivante
ClientError: An error occurred (ValidationError) when calling the CreateRole operation: The specified value for assumeRolePolicyDocument is invalid. It must contain only printable ASCII characters.
J'ai couru le JSON par la aws json validator et il valide, et a également exécuté l'expression rationnelle pour les caractères admissibles et il passe cela aussi bien. J'ai également essayé de copier une politique de confiance existante à partir d'un rôle créé manuellement et d'utiliser ce contenu pour mon fichier json, mais cela génère la même erreur.