You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在DBT的profiles.yml中使用Base64编码的DER格式私钥

DBT连接Snowflake:Base64编码DER私钥配置指南

一、生成RSA私钥

用OpenSSL生成Snowflake兼容的RSA私钥(支持2048或4096位,推荐4096位):

openssl genrsa -out snowflake_key.pem 4096

这条命令会生成PEM格式的私钥文件snowflake_key.pem。

二、转换为Base64编码的DER格式

需要将PEM私钥先转成DER二进制格式,再做Base64编码:

  1. 转DER格式(无加密):
openssl pkcs8 -topk8 -inform PEM -outform DER -in snowflake_key.pem -out snowflake_key.der -nocrypt
  1. 转Base64编码:
    • Linux/macOS:
    base64 -w0 snowflake_key.der > snowflake_key_base64.txt
    
    • Windows(PowerShell):
    [Convert]::ToBase64String([IO.File]::ReadAllBytes("snowflake_key.der")) | Out-File -Encoding utf8 snowflake_key_base64.txt
    

生成的snowflake_key_base64.txt里的字符串就是所需的Base64编码DER私钥,复制时确保无换行符。

三、配置DBT的profiles.yml

找到DBT的profiles.yml文件(通常在~/.dbt/目录下),添加或修改Snowflake连接配置:

your_dbt_profile_name:
  target: dev
  outputs:
    dev:
      type: snowflake
      account: "your_account_identifier" # 格式示例:xy12345.us-west-2.aws
      user: "your_snowflake_username"
      private_key: "paste_base64_encoded_der_key_here"
      role: "your_snowflake_role"
      database: "target_database"
      warehouse: "target_warehouse"
      schema: "target_schema"
      client_session_keep_alive: true

关键注意事项

  • 先将对应公钥上传到Snowflake用户:执行ALTER USER your_snowflake_username SET RSA_PUBLIC_KEY='公钥内容';(公钥可通过openssl rsa -in snowflake_key.pem -pubout -out snowflake_key.pub生成)
  • private_key字段直接粘贴Base64字符串即可,无需添加任何前缀或后缀
  • 账号格式需与Snowflake控制台的账号标识一致

内容的提问来源于stack exchange,提问作者Adrien Arcuri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 01:33:25