azure+key-vault使用(国区cloud下)
[toc]
概述
本文主要记录按文档实验的两种获取 key vault 机密(secret)的方式:
REST API
方式获取。
AKS
服务中(Azure Kubernetes)获取 。
关键知识
- Azure 是微软的云平台,key vault 是其众多服务的一种。
- 本文涉及的操作完全是在 Azure 在中国独立运营的云平台上操作的,官方叫
世纪互联运营的 Microsoft Azure
,下面提到的 Azure 全部指的是世纪互联运营的 Microsoft Azure
。
注意
- 基于上面这个前提,操作中涉及 API 相关的 host,参数等,可能会和文档里不一样,注意区分才能正常使用。
- 网页登录访问的地址域名
https://portal.azure.cn/
: - 我不知道个人账户是否能够使用
世纪互联
的服务。 - 官方文档繁多,如果错误欢迎评论区指出。
- 操作时间 2023年2月。
Prerequisites(先决条件)
前提, 已创建好资源组。
安装好 Azure CLI。
设置中国区 cloud,
az cloud set --name AzureChinaCloud
,设置之后,用az cloud list --output table
查看。az login 登录。
REST API
方式获取
待记录
AKS
中获取
aks
- 没有 aks 自己创建:
1 |
|
- 已有 aks 可以升级
1
az aks enable-addons --addons azure-keyvault-secrets-provider --name <aks名称> --resource-group <资源组名称>
验证安装
参考验证适用于机密存储 CSI 驱动程序的 Azure 密钥保管库提供程序安装
1 |
|
创建 Key Vault(密钥保管库)
在资源组内手动创建即可,已创建好的:
新建机密(Secret),名称为:test-keyvault
,值随便:
托管标识
本人实验过程中,新建 aks,系统自动新建了另一个资源组
,在新的资源组
中自动生成了托管标识
。并且该托管标识的访问控制
中,新建好了给 aks 的一个参与者
的权限。
但托管标识在哪个资源组不重要,重要的是分配我们新建的 aks 正确的角色。
检查是否存在托管标识
下面的命令可能会打印出托管标识
的客户端 ID:
1 |
|
给托管标识
授予访问查看密钥保管库
的权限
可以手动操作也可以命令行操作
命令行操作
下面的 <identity-client-id>
是托管标识
的客户端 id,也就是上一步打印的字符串,命令:
1 |
|
手动操作
在密钥保管库
的访问策略中新建:
检查托管标识
中是否允许 aks 访问,否则新建角色分配
检查
如果没有,则新建
托管标识->访问控制->添加->添加分配角色
创建 SecretProviderClass 和 Pod 实验
创建 SecretProviderClass
新建 Yaml 文件 secretproviderclass.yaml
:
1 |
|
将 SecretProviderClass 应用到群集:
1 |
|
创建 pod
新建 Yaml 文件 pod.yaml
:
1 |
|
将 Pod 应用到群集:
1 |
|
连接 pod 容器获取密钥保管库中的机密 test-keyvault
1 |
|
参考
azure+key-vault使用(国区cloud下)
https://hutaoren.cn/2023/02/25/azure+key-vault使用(国区cloud下)/