azure - Azure 多订阅密钥保管库访问策略
问题描述
我正在尝试将 keyvault 访问策略从多个 azure 订阅导出到 csv。最好从输入 csv 中提取这些保管库名称和子 ID 并循环遍历它。四处搜索我找到了解决方案,但它们都使用硬编码的保险库名称。我希望这是有道理的。感谢任何帮助。谢谢你。
解决方案
你可以试试下面的脚本,它在我这边运行良好。
$subs = Get-AzureRmSubscription
foreach($sub in $subs){
Set-AzureRmContext -Subscription $sub.Id -Tenant $sub.TenantId
$vaults = Get-AzureRmKeyVault
foreach($vault in $vaults){
$policies = (Get-AzureRmKeyVault -ResourceGroupName $vault.ResourceGroupName -VaultName $vault.VaultName).AccessPolicies
$policies | select DisplayName, PermissionsToCertificatesStr, PermissionsToKeysStr, PermissionsToSecretsStr | Export-Csv -Path C:\Users\joyw\Desktop\policies.csv -Append -NoTypeInformation
}
}
该policies.csv
文件将如下所示:
更新:
如果要包含密钥库名称,请尝试以下脚本。
$subs = Get-AzureRmSubscription
foreach($sub in $subs){
Set-AzureRmContext -Subscription $sub.Id -Tenant $sub.TenantId
$vaults = Get-AzureRmKeyVault
foreach($vault in $vaults){
$policies = (Get-AzureRmKeyVault -ResourceGroupName $vault.ResourceGroupName -VaultName $vault.VaultName).AccessPolicies
foreach($policy in $policies){
$obj = [PSCustomObject]@{
KeyVaultName = $vault.VaultName
DisplayName = $policy.DisplayName
PermissionsToCertificatesStr = $policy.PermissionsToCertificatesStr
PermissionsToKeysStr = $policy.PermissionsToKeysStr
PermissionsToSecretsStr = $policy.PermissionsToSecretsStr
}
$obj | Export-Csv -Path C:\Users\joyw\Desktop\policies1.csv -Append -NoTypeInformation
}
}
}
推荐阅读
- javascript - 检索 JSON api 数据时出错:Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0
- apache-spark - 在 Databricks 中创建 SQL 用户
- c# - 我如何循环一个在每个循环中变化的随机整数
- python - Tkinter 按钮循环 - 如何创建具有多个按钮的循环?
- visual-studio-code - VS Code Extension 的说明不起作用
- python - 使用 BeautifulSoup 堆栈在分隔符 (HTML)中仅打印带有 ' 的 html 行
- c++ - 这怎么会抛出 c2109(不是指针或数组类型)
- scala - Spark 3.0.1 MinMaxScaler 提供混合向量类型
- opengl - 绘制可变数量的行 - PyOpenGL
- reactjs - ReactJS - 页面重新渲染,但一个组件保持不变。(美丽的拖放)