ایجاد یک نقش سفارشی برای استقرار ایمن Bicep در Azure

Summarize this content to 400 words in Persian Lang
هنگام استقرار منابع Azure با Bicep، ممکن است با نیاز به مجوزهای بالا برای ایجاد تخصیص نقش مواجه شده باشید. به طور پیشفرض، تخصیص نقشها در حین استقرار به مجوزهای سطح بالا مانند Owner در سطح اشتراک یا گروه منابع نیاز دارد. این راهاندازی میتواند نگرانکننده باشد، زیرا مجوزهای بیشتری از آنچه برای این کار لازم است میدهد.
برای مقابله با این، من یک نقش سفارشی Azure ایجاد کردم که فقط مجوزهای لازم برای ایجاد تخصیص نقش را دارد. این تضمین میکند که استقرارها امن باقی میمانند و به اصل کمترین امتیاز پایبند هستند.
چرا از یک نقش سفارشی استفاده کنیم؟
به جای اختصاص نقش های گسترده مانند مالک یا مشارکت کننده، یک نقش سفارشی به شما امکان می دهد:
مجوزها را فقط به موارد ضروری محدود کنید.
با به حداقل رساندن حقوق دسترسی، امنیت را بهبود بخشید.
انطباق با سیاست های حاکمیت سازمانی را حفظ کنید.
در اینجا نحوه ایجاد یک نقش سفارشی است که به استقرار Bicep اجازه می دهد بدون نیاز به ایجاد تخصیص نقش Owner دسترسی داشته باشید.
راهنمای گام به گام ایجاد نقش سفارشی
برای ایجاد نقش سفارشی، می توانید از ماژول Azure PowerShell استفاده کنید. در زیر اسکریپتی وجود دارد که نقش سفارشی را تعریف و اجرا می کند.
# Define a new custom role with the required permissions
$role = Get-AzRoleDefinition Contributor
$role.Id = $null # Set ID to null to define a new role
$role.Name = “Role Assignment Creator”
$role.Description = “Can create role assignments during ARM/Bicep deployments”
$role.Actions.Clear() # Clear inherited permissions
$role.NotActions.Clear() # Clear inherited NotActions
$role.Actions.Add(“Microsoft.Authorization/roleAssignments/write”)
$role.Actions.Add(“Microsoft.Resources/deployments/write”)
$role.Actions.Add(“Microsoft.Resources/deployments/read”)
$role.Actions.Add(“Microsoft.Resources/deployments/operationStatuses/read”)
$role.AssignableScopes.Clear() # Clear existing scopes
$role.AssignableScopes.Add(“/subscriptions/”) # Replace with your subscription ID
# Create the custom role definition
New-AzRoleDefinition -Role $role
# Verify the new role definition
Get-AzRoleDefinition -Name “Role Assignment Creator”
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
مجوزهای کلیدی توضیح داده شده است
Microsoft.Authorization/roleAssignments/write اجازه ایجاد تکالیف نقش را می دهد.Microsoft.Resources/deployments/write اجازه ایجاد استقرار را می دهد.Microsoft.Resources/deployments/read دسترسی خواندن به استقرارها را فعال می کند.Microsoft.Resources/deployments/operationStatuses/read اجازه خواندن وضعیت عملیات استقرار را می دهد.
این اقدامات مجوزهای لازم را برای استقرار Bicep شامل انتساب نقش، بدون اعطای دسترسی گستردهتر مانند Owner.
تعیین نقش سفارشی
پس از ایجاد نقش، می توانید آن را با استفاده از پورتال Azure، CLI یا PowerShell به یک کاربر، گروه یا مدیر سرویس خاص اختصاص دهید.
New-AzRoleAssignment -ObjectId <principalId> -RoleDefinitionName “Role Assignment Creator” -Scope “/subscriptions/”
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
جایگزین کنید با شناسه شی کاربر یا سرویس اصلی که می خواهید نقش را به آن اختصاص دهید.
ایجاد یک نقش سفارشی مانند این، رویکرد ایمنتر و دقیقتر را برای مدیریت استقرار در Azure فراهم میکند. با تعریف دقیق مجوزهای مورد نیاز، می توانید خطرات امنیتی را به حداقل برسانید و از رعایت بهترین شیوه ها اطمینان حاصل کنید.
اگر شرایط یا بینش مشابهی در مورد تعاریف نقش دارید، در نظرات به اشتراک بگذارید!
هنگام استقرار منابع Azure با Bicep، ممکن است با نیاز به مجوزهای بالا برای ایجاد تخصیص نقش مواجه شده باشید. به طور پیشفرض، تخصیص نقشها در حین استقرار به مجوزهای سطح بالا مانند Owner در سطح اشتراک یا گروه منابع نیاز دارد. این راهاندازی میتواند نگرانکننده باشد، زیرا مجوزهای بیشتری از آنچه برای این کار لازم است میدهد.
برای مقابله با این، من یک نقش سفارشی Azure ایجاد کردم که فقط مجوزهای لازم برای ایجاد تخصیص نقش را دارد. این تضمین میکند که استقرارها امن باقی میمانند و به اصل کمترین امتیاز پایبند هستند.
چرا از یک نقش سفارشی استفاده کنیم؟
به جای اختصاص نقش های گسترده مانند مالک یا مشارکت کننده، یک نقش سفارشی به شما امکان می دهد:
- مجوزها را فقط به موارد ضروری محدود کنید.
- با به حداقل رساندن حقوق دسترسی، امنیت را بهبود بخشید.
- انطباق با سیاست های حاکمیت سازمانی را حفظ کنید.
در اینجا نحوه ایجاد یک نقش سفارشی است که به استقرار Bicep اجازه می دهد بدون نیاز به ایجاد تخصیص نقش Owner
دسترسی داشته باشید.
راهنمای گام به گام ایجاد نقش سفارشی
برای ایجاد نقش سفارشی، می توانید از ماژول Azure PowerShell استفاده کنید. در زیر اسکریپتی وجود دارد که نقش سفارشی را تعریف و اجرا می کند.
# Define a new custom role with the required permissions
$role = Get-AzRoleDefinition Contributor
$role.Id = $null # Set ID to null to define a new role
$role.Name = "Role Assignment Creator"
$role.Description = "Can create role assignments during ARM/Bicep deployments"
$role.Actions.Clear() # Clear inherited permissions
$role.NotActions.Clear() # Clear inherited NotActions
$role.Actions.Add("Microsoft.Authorization/roleAssignments/write")
$role.Actions.Add("Microsoft.Resources/deployments/write")
$role.Actions.Add("Microsoft.Resources/deployments/read")
$role.Actions.Add("Microsoft.Resources/deployments/operationStatuses/read")
$role.AssignableScopes.Clear() # Clear existing scopes
$role.AssignableScopes.Add("/subscriptions/" ) # Replace with your subscription ID
# Create the custom role definition
New-AzRoleDefinition -Role $role
# Verify the new role definition
Get-AzRoleDefinition -Name "Role Assignment Creator"
مجوزهای کلیدی توضیح داده شده است
Microsoft.Authorization/roleAssignments/write
اجازه ایجاد تکالیف نقش را می دهد.Microsoft.Resources/deployments/write
اجازه ایجاد استقرار را می دهد.Microsoft.Resources/deployments/read
دسترسی خواندن به استقرارها را فعال می کند.Microsoft.Resources/deployments/operationStatuses/read
اجازه خواندن وضعیت عملیات استقرار را می دهد.
این اقدامات مجوزهای لازم را برای استقرار Bicep شامل انتساب نقش، بدون اعطای دسترسی گستردهتر مانند Owner
.
تعیین نقش سفارشی
پس از ایجاد نقش، می توانید آن را با استفاده از پورتال Azure، CLI یا PowerShell به یک کاربر، گروه یا مدیر سرویس خاص اختصاص دهید.
New-AzRoleAssignment -ObjectId <principalId> -RoleDefinitionName "Role Assignment Creator" -Scope "/subscriptions/"
جایگزین کنید
با شناسه شی کاربر یا سرویس اصلی که می خواهید نقش را به آن اختصاص دهید.
ایجاد یک نقش سفارشی مانند این، رویکرد ایمنتر و دقیقتر را برای مدیریت استقرار در Azure فراهم میکند. با تعریف دقیق مجوزهای مورد نیاز، می توانید خطرات امنیتی را به حداقل برسانید و از رعایت بهترین شیوه ها اطمینان حاصل کنید.
اگر شرایط یا بینش مشابهی در مورد تعاریف نقش دارید، در نظرات به اشتراک بگذارید!