1414# See the License for the specific language governing permissions and
1515# limitations under the License.
1616
17+ - name : Handle Azure Cross Account Role
18+ register : __azure_xaccount_role_info
19+ azure.azcollection.azure_rm_roledefinition : # This version fails idempotence if a description is set
20+ state : present
21+ name : " {{ plat__azure_xaccount_role_name }}"
22+ assignable_scopes : " /subscriptions/{{ plat__azure_subscription_id }}"
23+ permissions :
24+ - actions : " {{ lookup('file', __azure_policy_document.dest ) | from_json | community.general.json_query('Actions') }}"
25+ data_actions : " {{ lookup('file', __azure_policy_document.dest ) | from_json | community.general.json_query('DataActions') }}"
26+ not_actions : " {{ lookup('file', __azure_policy_document.dest ) | from_json | community.general.json_query('NotActions') }}"
27+ not_data_actions : " {{ lookup('file', __azure_policy_document.dest ) | from_json | community.general.json_query('NotDataActions') }}"
28+
1729- name : Ensure Azure Cross Account App and Credential are Deployed
1830 when : plat__azure_xaccount_app_uuid is undefined or plat__xacccount_credential_name not in plat__cdp_credentials_list
1931 block :
3345 ansible.builtin.pause :
3446 seconds : " {{ plat__azure_consistency_wait }}"
3547
48+ - name : Dump MetaGroup URI
49+ ansible.builtin.debug :
50+ msg : Dumping... {{ plat__azure_metagroup_uri }}
51+
3652 # Owner role is required for DWX if you are thinking of modifying this task
3753 - name : Request Azure Cross Account App Creation
3854 no_log : True
3955 register : __azure_xaccount_app_info
4056 command : >
4157 az ad sp create-for-rbac
4258 --name {{ plat__azure_xaccount_app_name }}
43- --role {{ plat__azure_roles.owner }}
44- --scopes {{ plat__azure_metagroup_uri }}
59+ --role {{ plat__azure_xaccount_use_custom_role | ternary(__azure_xaccount_role_info.id, plat__azure_roles.contrib) }}
60+ --scope {{ plat__azure_subscription_uri }}
61+ # --role {{ __azure_xaccount_role_info.id }}
62+ # --scopes {{ plat__azure_metagroup_uri }}
63+ # Bake ternary into the above
64+
65+ # - name: SLEEEP
66+ # command: >
67+ # sleep 180
4568
4669 - name : Register Azure Cross Account App info
4770 no_log : True
95118 tenant : " {{ plat__azure_tenant_id }}"
96119 application : " {{ plat__azure_xaccount_app_uuid }}"
97120 secret : " {{ __azure_xaccount_app_pword }}"
98-
99- - name : Handle Azure Cross Account Role
100- register : __azure_xaccount_role_info
101- azure.azcollection.azure_rm_roledefinition : # This version fails idempotence if a description is set
102- state : present
103- name : " {{ plat__azure_xaccount_role_name }}"
104- assignable_scopes : " /subscriptions/{{ plat__azure_subscription_id }}"
105- permissions :
106- - actions : " {{ lookup('file', __azure_policy_document.dest ) | from_json | community.general.json_query('Actions') }}"
107- data_actions : " {{ lookup('file', __azure_policy_document.dest ) | from_json | community.general.json_query('DataActions') }}"
108- not_actions : " {{ lookup('file', __azure_policy_document.dest ) | from_json | community.general.json_query('NotActions') }}"
109- not_data_actions : " {{ lookup('file', __azure_policy_document.dest ) | from_json | community.general.json_query('NotDataActions') }}"
110121
111- - name : Set Azure Cross Account Role URI
112- ansible.builtin.set_fact :
113- plat__azure_xaccount_role_uri : " {{ __azure_xaccount_role_info.id }}"
122+ # Move Up
123+ # - name: Handle Azure Cross Account Role
124+ # register: __azure_xaccount_role_info
125+ # azure.azcollection.azure_rm_roledefinition: # This version fails idempotence if a description is set
126+ # state: present
127+ # name: "{{ plat__azure_xaccount_role_name }}"
128+ # assignable_scopes: "/subscriptions/{{ plat__azure_subscription_id }}"
129+ # permissions:
130+ # - actions: "{{ lookup('file', __azure_policy_document.dest ) | from_json | community.general.json_query('Actions') }}"
131+ # data_actions: "{{ lookup('file', __azure_policy_document.dest ) | from_json | community.general.json_query('DataActions') }}"
132+ # not_actions: "{{ lookup('file', __azure_policy_document.dest ) | from_json | community.general.json_query('NotActions') }}"
133+ # not_data_actions: "{{ lookup('file', __azure_policy_document.dest ) | from_json | community.general.json_query('NotDataActions') }}"
134+
135+ # Not Needed?
136+ # - name: Set Azure Cross Account Role URI
137+ # ansible.builtin.set_fact:
138+ # plat__azure_xaccount_role_uri: "{{ __azure_xaccount_role_info.id }}"
114139
115140- name : Request creation of Azure Managed Identities
116141 when : ( __azure_identity_list_names is undefined ) or ( __azure_msi_item not in __azure_identity_list_names )
123148 - " {{ plat__azure_datalakeadmin_identity_name }}"
124149 - " {{ plat__azure_log_identity_name }}"
125150 - " {{ plat__azure_ranger_audit_identity_name }}"
126-
151+ # Dupe of Below?
127152- name : Wait for identities to be listed
128153 command : " az identity list -g {{ plat__azure_metagroup_name }}"
129154 register : __azure_identity_list
235260 scope : " {{ plat__azure_datapath_uri }}"
236261 assignee : " {{ __azure_ranger_audit_identity_uuid }}"
237262 desc : Assign Storage Blob Data Contributor Role to Ranger Role at Data Container level
238- - role : " {{ __azure_contributor_role_uri }}"
239- name : " {{ plat__azure_xaccount_contributor_assn_name }}"
240- scope : " {{ plat__azure_subscription_uri }}"
241- assignee : " {{ plat__azure_application_service_principal_objuuid }}"
242- desc : Assign top level Contributor Role to Cross Account App
243- - role : " {{ __azure_xaccount_role_uri }}"
244- name : " {{ plat__azure_xaccount_role_assn_name }}"
245- scope : " {{ plat__azure_subscription_uri }}"
246- assignee : " {{ plat__azure_application_service_principal_objuuid }}"
247- desc : Assign Cross Account Role to Cross Account App
263+ # - role: "{{ __azure_contributor_role_uri }}"
264+ # name: "{{ plat__azure_xaccount_contributor_assn_name }}"
265+ # scope: "{{ plat__azure_subscription_uri }}"
266+ # assignee: "{{ plat__azure_application_service_principal_objuuid }}"
267+ # desc: Assign top level Contributor Role to Cross Account App
268+ # - role: "{{ __azure_xaccount_role_uri }}"
269+ # name: "{{ plat__azure_xaccount_role_assn_name }}"
270+ # scope: "{{ plat__azure_subscription_uri }}"
271+ # assignee: "{{ plat__azure_application_service_principal_objuuid }}"
272+ # desc: Assign Cross Account Role to Cross Account App
248273 loop_control :
249274 loop_var : __azure_rl_assgn_item
250- label : " {{ __azure_rl_assgn_item.desc }}"
275+ label : " {{ __azure_rl_assgn_item.desc }}"
276+
277+ # - name: SLEEEEEEEEEEP
278+ # command: >
279+ # sleep 1800
0 commit comments