❄️

【Snowflake】ECDSA対応したKey-pairを試そう

に公開

本記事で参考になるケース

  • 遂にSnowflakeのKey-pair認証がElliptic Curve Digital Signature Algorithms (ECDSA) : 楕円曲線DSA に対応したので利用したい
[Aug 25, 2025-Aug 28, 2025] Support for keys generated with Elliptic Curve Digital Signature Algorithms (ECDSA)

For Snowflake authentication methods that use a cryptographic key (key-pair authentication and External OAuth), you can now generate keys using Elliptic Curve Digital Signature Algorithms (ECDSA) algorithms ES256(P-256), ES384 (P-384), and ES512 (P-512). These signatures use the SHA-256, SHA-384, and SHA-512 hash algorithms, respectively.
https://docs.snowflake.com/en/release-notes/2025/9_25#support-for-keys-generated-with-elliptic-curve-digital-signature-algorithms-ecdsa

Key-Pairで利用してみよう

ES512(P-512)で作成する

秘密Keyの作成

>> openssl ecparam -name secp521r1 -genkey -noout -out private_key.pem
>> ls
private_key.pem

公開Keyの作成

>> openssl ec -in private_key.pem -pubout -out public_key.pem
read EC key
writing EC key
>> ls
private_key.pem  public_key.pem
参考(ES256, ES384の場合)

ES256の場合は "prime256v1"、ES384 の場合は "secp384r1"、ES512 の場合は "secp521r1"

Snowflake Userに設定

公開Keyを確認

>> cat public_key.pem 
-----BEGIN PUBLIC KEY-----
MIGbMBAG.......................
...............................
.........................VOYRI=
-----END PUBLIC KEY-----

Snowflake内でUserオブジェクトに設定

ALTER USER userName SET RSA_PUBLIC_KEY='MIGbMBAG........VOYRI=';

注意点?

202509 現在、snowflake-connector-python:4.0.0では未対応に見える

snowflake.connector.errors.ProgrammingError: 251008: Private key type (ECPrivateKey) not supported.
Please provide a valid rsa private key in DER format as bytes object

また、SnowSQLはそもそも将来使えなくなるので注意

Snowflake Data Heroes

Discussion