Я пытаюсь использовать AWS IAM-Simulator с boto3
Допустим, у меня есть файлы policy1. json, policy2. json действующие aws политики IAM jsons. Допустим, json1 содержит:
{
"Version": "2023-12-15",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:CreateSnapshot",
"ec2:CreateTags"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "ec2:DeleteSnapshot",
"Resource": "*",
"Condition": {
"StringLike": {
"ec2:ResourceTag/my_cool_tag": "*"
}
}
}
]
}
Я хочу проверить, может ли пользователь с примененной ролью, скажем, role_arn = 12345
выполнять действия, указанные в файлах политики json .
Я хочу, чтобы он был общим c, то есть имел возможность получать любой допустимый файл политики и имитировать, может ли прикрепленная arn роль выполнять все действия с / без условий указан в политике. json файл (для любого файла)
Есть ли способ использовать boto3 для этого? Я попытался прочитать документацию, но не смог найти ни одного примера, который делает это
Для этого примера я придумал:
ressult1 =iam_client.simulate_principal_policy(
PolicySourceArn=12345,
ActionNames=[
"ec2:CreateSnapshot",
"ec2:CreateTags"
])
ressult2 =iam_client.simulate_principal_policy(
PolicySourceArn=12345,
ActionNames=[ec2:DeleteSnapshot],
ContextEntries=[
{"ContextKeyName": "ec2:ResourceTag/my_cool_tag", "ContextKeyValues": [""], "ContextKeyType": "string",}
])
Но это не является общим, хотелось бы что-то сделать вот так:
with open('policy1.json') as json_file:
policy_data = json.load(json_file)
ressult =iam_client.simulate_principal_policy(
PolicySourceArn=12345,
policy_dict = policy_loaded)
был бы признателен за помощь здесь. Спасибо!