Skip to content

Commit

Permalink
{AKS} Check inherited permission when granting permission to cluster …
Browse files Browse the repository at this point in the history
…identity (#23178)
  • Loading branch information
norshtein authored Jul 26, 2022
1 parent 7f5f78e commit e38d145
Showing 1 changed file with 9 additions and 4 deletions.
13 changes: 9 additions & 4 deletions src/azure-cli/azure/cli/command_modules/acs/_roleassignments.py
Original file line number Diff line number Diff line change
Expand Up @@ -277,13 +277,18 @@ def subnet_role_assignment_exists(cmd, scope):
def ensure_cluster_identity_permission_on_kubelet_identity(cmd, cluster_identity_object_id, scope):
factory = get_auth_management_client(cmd.cli_ctx, scope)
assignments_client = factory.role_assignments
cluster_identity_object_id = cluster_identity_object_id.lower()
scope = scope.lower()

for i in assignments_client.list_for_scope(scope=scope, filter="atScope()"):
if i.scope.lower() != scope.lower():
continue
# list all assignments of the target identity (scope) that assigned to the cluster identity
filter_query = "atScope() and assignedTo('{}')".format(cluster_identity_object_id)
for i in assignments_client.list_for_scope(scope=scope, filter=filter_query):
if not i.role_definition_id.lower().endswith(CONST_MANAGED_IDENTITY_OPERATOR_ROLE_ID):
continue
if i.principal_id.lower() != cluster_identity_object_id.lower():
if i.principal_id.lower() != cluster_identity_object_id:
continue
if not scope.startswith(i.scope.lower()):
# atScope() should return the assignments in subscription / resource group / resource level
continue
# already assigned
return
Expand Down

0 comments on commit e38d145

Please sign in to comment.