内容提要
本文介绍了如何使用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" 来分配角色。