使用PowerShell创建RBAC服务主体

使用PowerShell创建RBAC服务主体

💡 原文英文,约800词,阅读约需3分钟。
📝

内容提要

本文介绍了如何使用PowerShell创建Azure服务主体,包括获取客户端密钥和无密码认证的联合凭证配置。创建服务主体前需安装PowerShell和Az模块,并确保权限充足。通过命令创建后可获取客户端密钥,并可配置联合凭证以增强安全性,支持GitHub Actions等工作流。此外,还介绍了基于证书的认证方法及自签名证书的生成步骤。

🎯

关键要点

  • 本文介绍了如何使用PowerShell创建Azure服务主体。
  • 创建服务主体前需安装PowerShell和Az模块,并确保权限充足。
  • 使用命令创建服务主体并获取客户端密钥。
  • 可以配置联合凭证以增强安全性,支持GitHub Actions等工作流。
  • 介绍了基于证书的认证方法及自签名证书的生成步骤。
  • 联合凭证允许服务主体通过外部身份提供者进行无密码认证。
  • 可以根据GitHub分支、拉取请求或标签限制认证。
  • 生成自签名证书并将其转换为Base64格式以用于服务主体。
  • 创建服务主体时使用Base64编码的证书作为认证方法。
  • 为服务主体分配角色以控制其在Azure中的权限。

延伸问答

如何使用PowerShell创建Azure服务主体?

使用命令 $sp = New-AzADServicePrincipal -DisplayName "你的应用名称" -Role "Contributor" -Scope "/subscriptions/<你的订阅ID>" 来创建服务主体。

创建服务主体后如何获取客户端密钥?

可以使用命令 $sp.PasswordCredentials.SecretText 来获取客户端密钥,确保安全存储该密钥。

什么是联合凭证,如何在GitHub Actions中使用?

联合凭证允许服务主体通过外部身份提供者进行无密码认证,配置方法包括设置 ApplicationObjectId、Audience 和 Issuer 等参数。

如何生成自签名证书以用于服务主体?

使用 PowerShell 命令 New-SelfSignedCertificate 创建自签名证书,并将其存储在本地证书存储中。

如何将证书转换为Base64格式?

使用命令 $keyValue = [System.Convert]::ToBase64String($cert.GetRawCertData()) 将证书转换为Base64格式。

如何为服务主体分配角色以控制权限?

使用命令 New-AzRoleAssignment -RoleDefinitionName Contributor -ServicePrincipalName $sp.AppId -Scope "/subscriptions/YOUR_SUBSCRIPTION_ID/resourceGroups/YOUR_RG/providers/Microsoft.ContainerRegistry/registries/YOUR_ACR" 来分配角色。

➡️

继续阅读