File: patch_role_management_policy.py

package info (click to toggle)
python-azure 20250829%2Bgit-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 756,824 kB
  • sloc: python: 6,224,989; ansic: 804; javascript: 287; makefile: 198; sh: 195; xml: 109
file content (362 lines) | stat: -rw-r--r-- 17,813 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
# pylint: disable=line-too-long,useless-suppression
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------

from azure.identity import DefaultAzureCredential

from azure.mgmt.authorization import AuthorizationManagementClient

"""
# PREREQUISITES
    pip install azure-identity
    pip install azure-mgmt-authorization
# USAGE
    python patch_role_management_policy.py

    Before run the sample, please set the values of the client ID, tenant ID and client secret
    of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
    AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
    https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
"""


def main():
    client = AuthorizationManagementClient(
        credential=DefaultAzureCredential(),
        subscription_id="SUBSCRIPTION_ID",
    )

    response = client.role_management_policies.update(
        scope="providers/Microsoft.Subscription/subscriptions/129ff972-28f8-46b8-a726-e497be039368",
        role_management_policy_name="570c3619-7688-4b34-b290-2b8bb3ccab2a",
        parameters={
            "properties": {
                "rules": [
                    {
                        "exceptionMembers": None,
                        "id": "Expiration_Admin_Eligibility",
                        "isExpirationRequired": False,
                        "maximumDuration": "P180D",
                        "ruleType": "RoleManagementPolicyExpirationRule",
                        "target": {
                            "caller": "Admin",
                            "enforcedSettings": None,
                            "inheritableSettings": None,
                            "level": "Eligibility",
                            "operations": ["All"],
                            "targetObjects": None,
                        },
                    },
                    {
                        "id": "Notification_Admin_Admin_Eligibility",
                        "isDefaultRecipientsEnabled": False,
                        "notificationLevel": "Critical",
                        "notificationRecipients": ["admin_admin_eligible@test.com"],
                        "notificationType": "Email",
                        "recipientType": "Admin",
                        "ruleType": "RoleManagementPolicyNotificationRule",
                        "target": {
                            "caller": "Admin",
                            "enforcedSettings": None,
                            "inheritableSettings": None,
                            "level": "Eligibility",
                            "operations": ["All"],
                            "targetObjects": None,
                        },
                    },
                    {
                        "id": "Notification_Requestor_Admin_Eligibility",
                        "isDefaultRecipientsEnabled": False,
                        "notificationLevel": "Critical",
                        "notificationRecipients": ["requestor_admin_eligible@test.com"],
                        "notificationType": "Email",
                        "recipientType": "Requestor",
                        "ruleType": "RoleManagementPolicyNotificationRule",
                        "target": {
                            "caller": "Admin",
                            "enforcedSettings": None,
                            "inheritableSettings": None,
                            "level": "Eligibility",
                            "operations": ["All"],
                            "targetObjects": None,
                        },
                    },
                    {
                        "id": "Notification_Approver_Admin_Eligibility",
                        "isDefaultRecipientsEnabled": False,
                        "notificationLevel": "Critical",
                        "notificationRecipients": ["approver_admin_eligible@test.com"],
                        "notificationType": "Email",
                        "recipientType": "Approver",
                        "ruleType": "RoleManagementPolicyNotificationRule",
                        "target": {
                            "caller": "Admin",
                            "enforcedSettings": None,
                            "inheritableSettings": None,
                            "level": "Eligibility",
                            "operations": ["All"],
                            "targetObjects": None,
                        },
                    },
                    {
                        "enabledRules": [],
                        "id": "Enablement_Admin_Eligibility",
                        "ruleType": "RoleManagementPolicyEnablementRule",
                        "target": {
                            "caller": "Admin",
                            "enforcedSettings": None,
                            "inheritableSettings": None,
                            "level": "Eligibility",
                            "operations": ["All"],
                            "targetObjects": None,
                        },
                    },
                    {
                        "exceptionMembers": None,
                        "id": "Expiration_Admin_Assignment",
                        "isExpirationRequired": False,
                        "maximumDuration": "P90D",
                        "ruleType": "RoleManagementPolicyExpirationRule",
                        "target": {
                            "caller": "Admin",
                            "enforcedSettings": None,
                            "inheritableSettings": None,
                            "level": "Assignment",
                            "operations": ["All"],
                            "targetObjects": None,
                        },
                    },
                    {
                        "enabledRules": ["Justification", "MultiFactorAuthentication"],
                        "id": "Enablement_Admin_Assignment",
                        "ruleType": "RoleManagementPolicyEnablementRule",
                        "target": {
                            "caller": "Admin",
                            "enforcedSettings": None,
                            "inheritableSettings": None,
                            "level": "Assignment",
                            "operations": ["All"],
                            "targetObjects": None,
                        },
                    },
                    {
                        "id": "Notification_Admin_Admin_Assignment",
                        "isDefaultRecipientsEnabled": False,
                        "notificationLevel": "Critical",
                        "notificationRecipients": ["admin_admin_member@test.com"],
                        "notificationType": "Email",
                        "recipientType": "Admin",
                        "ruleType": "RoleManagementPolicyNotificationRule",
                        "target": {
                            "caller": "Admin",
                            "enforcedSettings": None,
                            "inheritableSettings": None,
                            "level": "Assignment",
                            "operations": ["All"],
                            "targetObjects": None,
                        },
                    },
                    {
                        "id": "Notification_Requestor_Admin_Assignment",
                        "isDefaultRecipientsEnabled": False,
                        "notificationLevel": "Critical",
                        "notificationRecipients": ["requestor_admin_member@test.com"],
                        "notificationType": "Email",
                        "recipientType": "Requestor",
                        "ruleType": "RoleManagementPolicyNotificationRule",
                        "target": {
                            "caller": "Admin",
                            "enforcedSettings": None,
                            "inheritableSettings": None,
                            "level": "Assignment",
                            "operations": ["All"],
                            "targetObjects": None,
                        },
                    },
                    {
                        "id": "Notification_Approver_Admin_Assignment",
                        "isDefaultRecipientsEnabled": False,
                        "notificationLevel": "Critical",
                        "notificationRecipients": ["approver_admin_member@test.com"],
                        "notificationType": "Email",
                        "recipientType": "Approver",
                        "ruleType": "RoleManagementPolicyNotificationRule",
                        "target": {
                            "caller": "Admin",
                            "enforcedSettings": None,
                            "inheritableSettings": None,
                            "level": "Assignment",
                            "operations": ["All"],
                            "targetObjects": None,
                        },
                    },
                    {
                        "exceptionMembers": None,
                        "id": "Expiration_EndUser_Assignment",
                        "isExpirationRequired": True,
                        "maximumDuration": "PT7H",
                        "ruleType": "RoleManagementPolicyExpirationRule",
                        "target": {
                            "caller": "EndUser",
                            "enforcedSettings": None,
                            "inheritableSettings": None,
                            "level": "Assignment",
                            "operations": ["All"],
                            "targetObjects": None,
                        },
                    },
                    {
                        "enabledRules": ["Justification", "MultiFactorAuthentication", "Ticketing"],
                        "id": "Enablement_EndUser_Assignment",
                        "ruleType": "RoleManagementPolicyEnablementRule",
                        "target": {
                            "caller": "EndUser",
                            "enforcedSettings": None,
                            "inheritableSettings": None,
                            "level": "Assignment",
                            "operations": ["All"],
                            "targetObjects": None,
                        },
                    },
                    {
                        "id": "Approval_EndUser_Assignment",
                        "ruleType": "RoleManagementPolicyApprovalRule",
                        "setting": {
                            "approvalMode": "SingleStage",
                            "approvalStages": [
                                {
                                    "approvalStageTimeOutInDays": 1,
                                    "escalationApprovers": None,
                                    "escalationTimeInMinutes": 0,
                                    "isApproverJustificationRequired": True,
                                    "isEscalationEnabled": False,
                                    "primaryApprovers": [
                                        {
                                            "description": "amansw_new_group",
                                            "id": "2385b0f3-5fa9-43cf-8ca4-b01dc97298cd",
                                            "isBackup": False,
                                            "userType": "Group",
                                        },
                                        {
                                            "description": "amansw_group",
                                            "id": "2f4913c9-d15b-406a-9946-1d66a28f2690",
                                            "isBackup": False,
                                            "userType": "Group",
                                        },
                                    ],
                                }
                            ],
                            "isApprovalRequired": True,
                            "isApprovalRequiredForExtension": False,
                            "isRequestorJustificationRequired": True,
                        },
                        "target": {
                            "caller": "EndUser",
                            "enforcedSettings": None,
                            "inheritableSettings": None,
                            "level": "Assignment",
                            "operations": ["All"],
                            "targetObjects": None,
                        },
                    },
                    {
                        "claimValue": "",
                        "id": "AuthenticationContext_EndUser_Assignment",
                        "isEnabled": False,
                        "ruleType": "RoleManagementPolicyAuthenticationContextRule",
                        "target": {
                            "caller": "EndUser",
                            "enforcedSettings": None,
                            "inheritableSettings": None,
                            "level": "Assignment",
                            "operations": ["All"],
                            "targetObjects": None,
                        },
                    },
                    {
                        "id": "Notification_Admin_EndUser_Assignment",
                        "isDefaultRecipientsEnabled": False,
                        "notificationLevel": "Critical",
                        "notificationRecipients": ["admin_enduser_member@test.com"],
                        "notificationType": "Email",
                        "recipientType": "Admin",
                        "ruleType": "RoleManagementPolicyNotificationRule",
                        "target": {
                            "caller": "EndUser",
                            "enforcedSettings": None,
                            "inheritableSettings": None,
                            "level": "Assignment",
                            "operations": ["All"],
                            "targetObjects": None,
                        },
                    },
                    {
                        "id": "Notification_Requestor_EndUser_Assignment",
                        "isDefaultRecipientsEnabled": False,
                        "notificationLevel": "Critical",
                        "notificationRecipients": ["requestor_enduser_member@test.com"],
                        "notificationType": "Email",
                        "recipientType": "Requestor",
                        "ruleType": "RoleManagementPolicyNotificationRule",
                        "target": {
                            "caller": "EndUser",
                            "enforcedSettings": None,
                            "inheritableSettings": None,
                            "level": "Assignment",
                            "operations": ["All"],
                            "targetObjects": None,
                        },
                    },
                    {
                        "id": "Notification_Approver_EndUser_Assignment",
                        "isDefaultRecipientsEnabled": True,
                        "notificationLevel": "Critical",
                        "notificationRecipients": None,
                        "notificationType": "Email",
                        "recipientType": "Approver",
                        "ruleType": "RoleManagementPolicyNotificationRule",
                        "target": {
                            "caller": "EndUser",
                            "enforcedSettings": None,
                            "inheritableSettings": None,
                            "level": "Assignment",
                            "operations": ["All"],
                            "targetObjects": None,
                        },
                    },
                    {
                        "id": "PIMOnlyMode_Admin_Assignment",
                        "pimOnlyModeSettings": {
                            "excludedAssignmentTypes": ["ServicePrincipalsAsTarget"],
                            "excludes": [
                                {"id": "ec42a424-a0c0-4418-8788-d19bdeb03704", "type": "User"},
                                {"id": "00029dfb-0218-4e7a-9a85-c15dc0c880bc", "type": "Group"},
                                {"id": "0000103d-1fc2-4ac8-81de-71517765655c", "type": "ServicePrincipal"},
                            ],
                            "mode": "Enabled",
                        },
                        "ruleType": "RoleManagementPolicyPimOnlyModeRule",
                        "target": {
                            "caller": "Admin",
                            "enforcedSettings": ["all"],
                            "inheritableSettings": ["all"],
                            "level": "Assignment",
                            "operations": ["all"],
                            "targetObjects": [],
                        },
                    },
                ]
            }
        },
    )
    print(response)


# x-ms-original-file: specification/authorization/resource-manager/Microsoft.Authorization/preview/2024-09-01-preview/examples/PatchRoleManagementPolicy.json
if __name__ == "__main__":
    main()