Snowflake Integration
はじめに
Attribute プラ ットフォームは、さまざまなサードパーティのクラウドサービスと連携することで、コストの一元的な可視化と完全なコストアトリビューションを実現できます。
本ドキュメントでは、Snowflake の請求情報と連携を完了するために必要な手順について説明します。
必要条件
組織全体の詳細な情報を提供するために、Attribute は[organization account]へのアクセスを必要とします。
このアクセスを安全に取得するために、以下が必要です。
- 認証用の RSA キーペア
- 業務オペレーションへの影響を避けるための専用 warehouse
- 必要なすべての権限をまとめるための新しい role
- 新しい role に対する必要な権限の付与
- 新しい warehouse への [USAGE] 権限
- organization account への [ORG_USAGE_ADMIN] application role
- ユーザーアクセスを保護するための network policy
- 新しい role と network policy が割り当てられた新規サービスユーザー
連携手順
- openssl を使用した RSA キーペアの生成
- 既存の organization account を使用した連携
- 新しい organization account の作成
すべての Snowflake SQL コマンドは、Snowflake の UI Web インターフェースである Snowsight の worksheet から実行できます。

1. 新しい RSA キーペアの生成
以下の手順では、新しい RSA キーペアを作成し、Snowflake で必要な形式に変換する方法を説明します。
1.1. openssl が利用可能なコマンドシェルを開きます。
1.2. 次のコマンドを使用して、新しい秘密鍵 (key.p8) を生成します。十分に強力なパスフレーズを選択してください。
openssl genrsa 2048 | openssl pkcs8 -topk8 -v2 des3 -inform PEM -out key.p8
1.3 次のコマンドを使用して公開鍵 (key.pub) を生成します。1.2 の手順で生成した秘密鍵を必ず使用してください。
秘密鍵を作成した際に使用したパスフレーズを指定してください。
openssl rsa -in key.p8 -pubout -out key.pub
公開鍵 key.pub は、次のような形式になります。

1.4. 公開鍵の形式を Snowflake の要件に合わせて変換します。
Snowflake で公開鍵を使用するには、区切り文字と改行を削除する必要があります。次のコマンドを使用して、公開鍵 (key.pub) を Snowflake 用形式に変換してくださ い。
sed '1d;$d' key.pub | tr -d '\n' > key.snowflake.pub
新しいユーザーを作成する際に、公開鍵 key.snowflake.pub を使用します。
新しいユーザーでログインできるようにするには、以下が必要です。
- 秘密鍵
- 秘密鍵用に設定したパスフレーズ
既存の Organization Account を使用した連携
以下の手順では、organization account を使用した連携プロセスについて説明します。
コマンドは必ず organization account 配下のユーザーで実行し、そのユーザーが GLOBALORGADMIN と ACCOUNTADMIN の両方の role を利用できることを確認してください。
organization account を作成する必要がある場合は、「付録 B - organization account の作成」を参照してください。
以下は、連携を完了するために必要な手順です。
利便性のために、「付録 B - Integration script」に、コピー&ペーストで利用できる連携用スクリプトを用意しています。
コマンドを実行する際は、必ず ACCOUNTADMIN role を使用してください。
USE ROLE ACCOUNTADMIN;
1. Warehouse の作成
新しい warehouse を作成することで、Attribute のクエリが既存の業務オペレーションをブロックしないようにできます。
以下のコマンドを使用して、コスト最適化された新しい warehouse を作成してください。
CREATE OR ALTER WAREHOUSE
attributeWarehouse WITH
WAREHOUSE_SIZE = 'XSMALL'
WAREHOUSE_TYPE = 'STANDARD'
AUTO_SUSPEND = 30
INITIALLY_SUSPENDED = TRUE
COMMENT = "Attribute's Warehouse";
2. Role の作成
以下のコマンドを使用して、必要なすべての権限をまとめる新しい role を作成します。
CREATE ROLE attributeRole
COMMENT = "Encapsulates privileges required for Attribute's service";