Bitwarden 帮助中心中文版
⮐ Bitwarden Help Center个人主页联系我
  • 关于
  • 首页
  • 发布记录
  • 账户
    • 创建 Bitwarden 账户
    • 登录 & 解锁
      • 主密码
      • 忘记主密码
      • 新设备登录保护
      • 使用 SSO 登录
      • 使用设备登录
      • 使用通行密钥登录 (Beta)
      • 账户切换
      • 使用 PIN 码解锁
      • 使用生物识别解锁
      • 密码库超时选项
    • 两步登录
      • 两步登录现场指南
      • 两步登录方式
      • 设置指南
        • 两步登录 - 验证器
        • 两步登录 - 电子邮箱
        • 两步登录 - Duo
        • 两步登录 - YubiKey
        • 两步登录 - 通行密钥
      • 恢复代码
      • 丢失了辅助设备
      • 两步登录 FAQ
    • 更多
      • 紧急访问
      • 本地化
      • *异常流量错误
  • Password Manager
    • Password Manager 概述
    • 入门
      • Password Manager 网页 App
      • Password Manager 浏览器扩展
      • Password Manager 移动 App
      • Password Manager 桌面 App
    • 密码库基础
      • 密码库项目
      • 用户名 & 密码生成器
      • 自定义字段
      • 集成的验证器
      • 文件附件
      • 共享
      • 集合
      • 存储通行密钥
      • *通行密钥 FAQ
    • 密码库管理
      • 文件夹
      • 收藏
      • 同步密码库
      • 检索密码库
      • 密码库健康报告
    • 导入 & 导出
      • 导入数据到密码库
      • 导入指南
        • 从 LastPass 导入
        • 从 1Password 导入
        • 从 Keeper 导入
        • 从 Dashlane 导入
        • 从 Google Chrome 导入
        • 从 macOS & Safari 导入
        • 从 Firefox 导入
        • 从 Password Safe 导入
        • 从 Myki 导入
      • 导出密码库数据
      • 加密导出
      • 调整 Bitwarden .csv 或 .json
      • *Bitwarden 导入器工具
      • 导入 & 导出 FAQ
    • 自动填充
      • 自动填充基础
        • 在浏览器扩展中自动填充登录
        • 在 Android 上自动填充登录
        • 在 iOS 上自动填充登录
        • 自动填充支付卡和身份
        • 自动填充自定义字段
      • 使用 URI
      • 屏蔽自动填充
      • 基本验证提示
      • 键盘快捷键
      • 禁用浏览器的内置密码管理器
      • Android 自动填充故障排除
      • 自动填充 FAQ
    • Bitwarden Send
      • 关于 Send
      • 创建 Send
      • 接收 Send
      • Send 生命周期
      • Send 隐私
      • CLI 上的 Send
      • Send 加密
      • Send FAQ
    • 开发者工具
      • Password Manager API
      • Password Manager CLI
      • CLI 身份验证挑战
      • 用于 CLI 验证的个人 API 密钥
      • SSH 代理
    • 更多
      • Password Manager FAQ
      • 更改 App 主题
      • DuckDuckGo macOS 浏览器集成
      • Apple Watch 上的 Bitwarden
      • 在 Firefox 隐私窗口中使用 Bitwarden
      • 离线使用 Bitwarden
      • 排除域名
      • Safari 网页扩展
      • uMatrix 和 NoScript 访问规则
      • 与 Bitwarden 支持排除移动端故障
  • Bitwarden Authenticator
    • Bitwarden Authenticator
    • 导入 & 导出
    • FAQ
  • Secrets Manager
    • Secrets Manager 概述
    • 入门
      • Secrets Manager 快速入门
      • 开发人员快速入门
      • 登录 Secrets Manager
      • 管理您的组织
    • 您的机密
      • 工程
      • 机密
      • 机器账户
      • 访问令牌
      • 机密解密
    • 导入 & 导出
      • 导入数据
      • 导出数据
    • 开发人员工具
      • Secrets Manager CLI
      • Secrets Manager SDK
    • 集成
      • Ansible
      • GitHub Actions
      • GitLab CI/CD
      • Secrets Manager Kubernetes Operator
    • 更多
      • Secrets Manager FAQ
  • 管理控制台
    • 组织快速入门
    • 组织基础
      • 组织
      • 集合
      • 群组
      • 企业策略
      • 集合管理
    • 用户管理
      • 用户管理
      • 成员角色和权限
      • 声明域名
      • 声明账户
      • 账户恢复
      • SCIM
        • 关于 SCIM
        • JumpCloud SCIM 集成
        • Microsoft Entra ID SCIM 集成
        • Okta SCIM 集成
        • OneLogin SCIM 集成
        • Ping Identity SCIM 集成
      • 目录连接器
        • 关于目录连接器
        • 目录连接器桌面 App
        • 目录连接器 CLI
        • 目录连接器文件存储
        • 同步选项和筛选器
        • 清除同步缓存
        • 调度同步
        • 使用 AD 或 LDAP 同步
        • 使用 Microsoft Entra ID 同步
        • 使用 Google Workspace 同步
        • 使用 Okta 同步
        • 使用 OneLogin 同步
      • 入职和继任概述
    • 导入 & 导出
      • 导入数据到组织
      • 导出密码库数据
      • 调整 Bitwarden .csv 或 .json
    • SSO 登录
      • 关于 SSO 登录
      • SAML 2.0 配置
      • OIDC 配置
      • 成员解密选项
      • 声明域名
      • 实施指南
        • ADFS SAML 实施
        • Auth0 SAML 实施
        • AWS SAML 实施
        • Duo SAML 实施
        • Google SAML 实施
        • JumpCloud SAML 实施
        • Keycloak SAML 实施
        • Microsoft Entra ID SAML 实施
        • Okta SAML 实施
        • OneLogin SAML 实施
        • Ping Identity SAML 实施
        • ADFS OIDC 实施
        • Microsoft Entra ID OIDC 实施
        • Okta OIDC 实施
        • Ping Identity OIDC 实施
        • Cloudflare Zero Trust SSO 实施
      • 受信任设备
        • 关于受信任设备
        • 设置受信任设备 SSO
        • 添加受信任设备
        • 批准受信任设备
      • Key Connector
        • 关于 Key Connector
        • 部署 Key Connector
      • *在您的 IdP 上配置 Bitwarden(SAML 2.0)
      • SSO 登录 FAQ
    • 报告
      • 密码库健康报告
      • 事件日志
      • Elastic SIEM
      • Microsoft Sentinel SIEM
      • Panther SIEM
      • Rapid7 SIEM
      • Splunk SIEM
    • 最终用户入职
      • 关于本章节
      • 欢迎电子邮件模板
      • 管理团队入职电子邮件
      • 最终用户采用电子邮件
      • 客户激活套件
      • 入职流程
    • 部署客户端 App
      • 部署浏览器扩展
        • 使用 GPO、Linux 策略和 .plist 文件部署浏览器扩展
        • 使用 Intune 部署浏览器扩展
      • 部署桌面端 App
        • 使用 Intune 部署桌面端 App
      • 部署移动端 App
        • 使用 Intune 部署移动端 App
      • 为您的服务器配置客户端
      • 使用设备管理停用浏览器密码管理器
    • Bitwarden 公共 API
    • 更多
      • 组织 FAQ
      • 链接到项目
      • 企业版 Bitwarden 功能数据表
      • 团队版和企业版迁移指南
      • LastPass 企业版迁移指南
      • 组织所有者离职时的访问权限管理
      • PoC 项目清单
      • 为生产准备试用组织
      • *团队版 Bitwarden 对比指南
  • 提供商门户
    • 提供商门户概览
    • 提供商门户快速入门
    • 提供商用户
    • 添加客户组织
    • *添加现有组织
    • 持续管理
    • 取消链接客户组织
    • 提供商事件日志
    • 提供商计费
    • 提供商 FAQ
    • 业务单元门户
      • 业务单元门户
      • 业务单元门户快速入门
  • 自托管
    • 安装 & 部署指南
      • Docker
        • Linux 标准部署
        • Linux 手动部署
        • Linux 离线部署
        • Windows 标准部署
        • Windows 离线部署
        • Unified 部署 (Beta)
      • Helm
        • 使用 Helm 自托管
        • Azure AKS 部署
        • OpenShift 部署
        • AWS EKS 部署
        • 添加 rawManifest 文件
    • 自托管组织
    • 迁移步骤
    • 证书选项
    • 配置环境变量
    • 数据库选项
    • 连接到外部 MSSQL 数据库
    • Kerberos 集成
    • 更新实例
    • 备份托管数据
    • 付费功能许可证
    • 系统管理员门户
    • 为服务器配置客户端
    • 连接客户端到实例
    • 自托管 SCIM
    • 自托管家庭赞助
    • 自托管 Send
    • 配置推送中继
    • *作为 MSP 部署 Bitwarden
    • 托管 FAQ
  • 安全
    • Bitwarden 安全白皮书
    • 密码库数据
    • 管理数据
    • 加密方式
    • KDF 算法
    • 账户加密密钥
    • 账户指纹短语
    • 数据存储
    • 合规、审计和认证
    • 服务器地理位置
    • 版本控制
    • 使用网站图标时的隐私
    • Bitwarden 软件发布支持
    • Bitwarden 的分包商
    • 来自 Bitwarden 的电子邮件
    • Bitwarden 地址
    • 安全 FAQ
  • 计划和定价
    • Password Manager
      • Password Manager 计划
      • 从个人升级到组织
      • 兑换家庭赞助
      • 高级会员续费
    • Secrets Manager
      • Secrets Manager 计划
      • 注册 Secrets Manager
    • Bitwarden 经销商
    • 开始企业版试用
    • 组织续费
    • 更新计费信息
    • 税费计算
    • 删除账户或组织
    • 取消订阅
    • 计费 FAQ
    • *更新 Bitwarden 计划 (2019-2020)
    • *更新 Password Manager 计划 & 订阅
    • *哪种计划适合我?
  • 学习中心
    • 关于学习中心
    • 使用 Bitwarden 的第一步
    • 了解 Password Manager
    • Password Manager
      • Bitwarden 入门:个人用户
      • Bitwarden 入门:管理员
      • Bitwarden 入门:成员
      • Bitwarden 入门:经销商或 MSP
    • Bitwarden 高级用户
    • 面向企业管理员的 Bitwarden
    • 了解 Secrets Manager
    • 面向 MSP 的 Bitwarden
    • 了解 Passwordless.dev
  • *杂项
    • 11 月弃用通知
    • Bitwarden 术语表
    • 迁移脚本
    • Bitwarden 101 视频系列-入门
    • Secrets Manager Beta 版注册
    • 未分配的密码库项目已移至管理控制台
    • 原生移动 App
  • 附录
    • 翻译约定
    • 资源
由 GitBook 提供支持
在本页
  • 入口控制器
  • nginx
  • Azure 应用程序网关
  • 创建存储类
  • 使用 Azure Key Vault CSI 驱动程序
  1. 自托管
  2. 安装 & 部署指南
  3. Helm

Azure AKS 部署

上一页使用 Helm 自托管下一页OpenShift 部署

最后更新于2个月前

对应的

本文将指导您使用 Azure 和 AKS 的特定功能来修改您的 。

入口控制器

nginx

默认情况下在 my-values.yaml 中定义了一个 nginx 入口控制器。如果您使用这个选项:

  1. 创建一个基本的 nginx 入口控制器。

  2. 在 general.ingress.annotations: 部分取消注释数值,并根据需要进行自定义。

Azure 应用程序网关

Azure 客户可能更倾向于使用 Azure 应用程序网关作为他们 AKS 集群的入口控制器。

安装图表前

如果您喜欢这个选项,在之前,您必须:

1、。

2、更新您的 my-values.yaml 文件,特别是 general.ingress.className: , general.ingress.annotations: 和 general.ingress.paths: :

general:
  domain: "replaceme.com"
  ingress:
    enabled: true
    className: "azure-application-gateway" # This value might be different depending on how you created your ingress controller.  Use "kubectl get ingressclasses -A" to find the name if unsure.
     ## - Annotations to add to the Ingress resource.
    annotations:
      appgw.ingress.kubernetes.io/ssl-redirect: "true"
      appgw.ingress.kubernetes.io/use-private-ip: "false" # This might be true depending on your setup.
      appgw.ingress.kubernetes.io/rewrite-rule-set: "bitwarden-ingress" # Make note of whatever you set this value to.  It will be used later.
      appgw.ingress.kubernetes.io/connection-draining: "true" # Update as necessary.
      appgw.ingress.kubernetes.io/connection-draining-timeout: "30" # Update as necessary.
    ## - Labels to add to the Ingress resource.
    labels: {}
    # Certificate options.
    tls:
      # TLS certificate secret name.
      name: tls-secret
      # Cluster cert issuer (e.g. Let's Encrypt) name if one exists.
      clusterIssuer: letsencrypt-staging
    paths:
      web:
        path: /*
        pathType: ImplementationSpecific
      attachments:
        path: /attachments/*
        pathType: ImplementationSpecific
      api:
        path: /api/*
        pathType: ImplementationSpecific
      icons:
        path: /icons/*
        pathType: ImplementationSpecific
      notifications:
        path: /notifications/*
        pathType: ImplementationSpecific
      events:
        path: /events/*
        pathType: ImplementationSpecific
      scim:
         path: /scim/*
         pathType: ImplementationSpecific
      sso:
        path: /sso/*
        pathType: ImplementationSpecific
      identity:
        path: /identity/*
        pathType: ImplementationSpecific
      admin:
        path: /admin*
        pathType: ImplementationSpecific

4、在 Azure 门户中为应用程序网关创建一个空的重写集:

  1. 转到 Azure 门户中的负载均衡 → 应用程序网关,选择您的应用程序网关。

  2. 选择重写选项卡。

  3. 选择重写集按钮。

  4. 在此示例中,将名称设置为 my-values.yaml 中 appgw.ingress.kubernetes.io/rewrite-rule-set: 指定的值,即 bitwarden-ingress 。

  5. 选择下一步然后选择创建。

安装图表后

1、重新打开您在安装图表之前创建的空重写集。

2、选择所有以 pr-bitwarden-self-host-ingress... 开头的路由路径,取消选择任何不以该前缀开头的路径,然后选择下一步。

3、选择添加重写规则按钮。您可以为重写规则指定任何名称和任何顺序。

4、添加以下条件:

  • 要检查的变量类型:服务器变量

  • 服务器变量:uri_path

  • 区分大小写:否

  • 操作符:等于 (=)

  • Pattern to match:^(\/(?!admin)(?!identity)(?!sso)[^\/]*)\/(.*)

5、添加以下操作:

  • 重写类型:URL

  • 操作类型:设置

  • 组件:URL 路径

  • URL 路径值: /{var_uri_path_2}

  • 重新评估路径图:未选中

6、选择创建。

创建存储类

以下是一个说明性的示例,请根据您自己的安全要求分配权限。

cat <<EOF | kubectl apply -n bitwarden -f -
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: azure-file
  namespace: bitwarden
provisioner: file.csi.azure.com
allowVolumeExpansion: true
mountOptions:
  - dir_mode=0777
  - file_mode=0777
  - uid=0
  - gid=0
  - mfsymlinks
  - cache=strict
  - actimeo=30
parameters:
  skuName: Standard_LRS
EOF

您必须在 my-values.yaml 中设置 sharedStorageClassName 的值,值应与您给予类的名称相同,在本例中为:

sharedStorageClassName: "azure-file"

使用 Azure Key Vault CSI 驱动程序

部署需要使用 Kubernetes secrets 对象为您的部署设置敏感值。虽然 kubectl create secret 命令可用于设置机密,但 Azure 客户可能更倾向于使用 Azure Key Vault 和 AKS Secrets Store CSI Driver。

1、使用以下命令为您的集群添加 Secrets Store CSI Driver 支持:

az aks enable-addons --addons azure-keyvault-secrets-provider --name myAKSCluster --resource-group myResourceGroup

2、创建一个 SecretProviderClass,就像以下示例中所示。请注意,这个示例包含了必须替换的 <REPLACE> 占位符,其取决于您使用的是附带的 SQL pod 还是使用您自己的 SQL 服务器。

cat <<EOF | kubectl apply -n bitwarden -f -
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: bitwarden-azure-keyvault-csi
  labels:
    app.kubernetes.io/component: secrets
  annotations:
spec:
  provider: azure
  parameters:
    useVMManagedIdentity: "true" # Set to false for workload identity
    userAssignedIdentityID: "<REPLACE>" # Set the clientID of the user-assigned managed identity to use
    # clientID: "<REPLACE>" # Setting this to use workload identity
    keyvaultName: "<REPLACE>"
    cloudName: "AzurePublicCloud"
    objects: |
      array:
        - |
          objectName: installationid
          objectAlias: installationid
          objectType: secret
          objectVersion: ""
        - |
          objectName: installationkey
          objectAlias: installationkey
          objectType: secret
          objectVersion: ""
        - |
          objectName: smtpusername
          objectAlias: smtpusername
          objectType: secret
          objectVersion: ""
        - |
          objectName: smtppassword
          objectAlias: smtppassword
          objectType: secret
          objectVersion: ""
        - |
          objectName: yubicoclientid
          objectAlias: yubicoclientid
          objectType: secret
          objectVersion: ""
        - |          
          objectName: yubicokey
          objectAlias: yubicokey
          objectType: secret
          objectVersion: ""
        - |
          objectName: hibpapikey
          objectAlias: hibpapikay
          objectType: secret
          objectVersion: ""
        - |          
          objectName: sapassword #-OR- dbconnectionstring if external SQL
          objectAlias: sapassword #-OR- dbconnectionstring if external SQL
          objectType: secret
          objectVersion: ""
    tenantId: "<REPLACE>"
  secretObjects:
  - secretName: "bitwarden-secret"
    type: Opaque
    data:
    - objectName: installationid
      key: globalSettings__installation__id
    - objectName: installationkey
      key: globalSettings__installation__key
      key: globalSettings__mail__smtp__username
    - objectName: smtppassword
      key: globalSettings__mail__smtp__password
    - objectName: yubicoclientid
      key: globalSettings__yubico__clientId
    - objectName: yubicokey
      key: globalSettings__yubico__key
    - objectName: hibpapikey
       key: globalSettings__hibpApiKey
    - objectName: sapassword #-OR- dbconnectionstring if external SQL
      key: SA_PASSWORD #-OR- globalSettings__sqlServer__connectionString if external SQL
EOF

3、使用下列命令在密钥库中设置所需的机密值:

此示例将命令记录到您的 shell 历史记录中。可以考虑使用其他方法来安全地设置机密。

kvname=<REPLACE>
az keyvault secret set --name installationid --vault-name $kvname --value <REPLACE>
az keyvault secret set --name installationkey --vault-name $kvname --value <REPLACE>
az keyvault secret set --name smtpusername --vault-name $kvname --value <REPLACE>
az keyvault secret set --name smtppassword --vault-name $kvname --value <REPLACE>
az keyvault secret set --name yubicoclientid --vault-name $kvname --value <REPLACE>
az keyvault secret set --name yubicokey --vault-name $kvname --value <REPLACE>
az keyvault secret set --name hibpapikey --vault-name $kvname --value <REPLACE>
az keyvault secret set --name sapassword --vault-name $kvname --value <REPLACE>
# - OR -
# az keyvault secret set --name dbconnectionstring --vault-name $kvname --value <REPLACE>

4、在您的 my-values.yaml 文件中,设置以下值:

  • secrets.secretName :将此值设置为 SecretProviderClass 中定义的 secretName 值。

  • secrets.secretProviderClass :将此值设置为 SecretProviderClass 中定义的 metadata.name 值。

3、如果您要使用提供的 Let's Encrypt 示例来生成 TLS 证书,请将的脚本中的 spec.acme.solvers.ingress.class: 的值更新为 "azure/application-gateway" 。

之后,您还需要为重写集创建规则:

部署需要使用您提供的支持 的共享存储类。以下示例是一个可以在 Azure Cloud Shell 中运行的脚本,用于创建满足要求的 Azure 文件存储类。

这些说明假设您已经设置了 Azure Key Vault。如果没有,请。

该插件创建了一个用户分配的托管身份,您可以用它来进行密钥库的身份验证,然而您还有其他选择来进行身份访问控制。如果您使用已创建的用户分配的托管身份,您需要显式地为其分配 Secret > Get 的访问权限()。

ReadWriteMany
立即创建一个
点击这里了解
官方文档地址
Bitwarden 自托管 Helm Chart 部署
为您的群集启用 Azure 应用程序网关入口控制器
安装图表
此处链接
安装图表