CREATE SECRET¶
現在の/指定されたスキーマで新しいシークレットを作成するか、既存のシークレットを置き換えます。
- こちらもご参照ください。
構文¶
クライアント認証情報フローを使用した OAuth:
CREATE [ OR REPLACE ] SECRET [ IF NOT EXISTS ] <name> TYPE = OAUTH2 API_AUTHENTICATION = <security_integration_name> OAUTH_SCOPES = ( '<scope_1>' [ , '<scope_2>' ... ] ) [ COMMENT = '<string_literal>' ]
認証コード付与フローを使用した OAuth:
CREATE [ OR REPLACE ] SECRET [ IF NOT EXISTS ] <name> TYPE = OAUTH2 OAUTH_REFRESH_TOKEN = '<string_literal>' OAUTH_REFRESH_TOKEN_EXPIRY_TIME = '<string_literal>' API_AUTHENTICATION = <security_integration_name>; [ COMMENT = '<string_literal>' ]
基本認証:
CREATE [ OR REPLACE ] SECRET [ IF NOT EXISTS ] <name> TYPE = PASSWORD USERNAME = '<username>' PASSWORD = '<password>' [ COMMENT = '<string_literal>' ]
一般的な文字列:
CREATE [ OR REPLACE ] SECRET [ IF NOT EXISTS ] <name> TYPE = GENERIC_STRING SECRET_STRING = '<string_literal>' [ COMMENT = '<string_literal>' ]
クライアント認証情報フローを使用した OAuth ではパラメーターが必須¶
name
シークレットの識別子(つまり、名前)を指定する文字列。スキーマ内で一意である必要があります。
また、識別子はアルファベット文字で始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例:
"My object"
)。二重引用符で囲まれた識別子も大文字と小文字が区別されます。詳細については、 識別子の要件 をご参照ください。
TYPE = OAUTH2
OAuth 許可フローで使用するシークレットを指定します。
API_AUTHENTICATION = security_integration_name
Snowflakeを外部サービスに接続するSnowflakeセキュリティ統合の
name
値を指定します。OAUTH_SCOPES = ( 'scope_1' [ , 'scope_2' ... ] )
OAuth クライアント認証情報フロー中に、統合に対して USAGE を持つロールによって OAuth サーバーからリクエストする際に使用するスコープのコンマ区切りリストを指定します。
このリストは、セキュリティ統合の
OAUTH_ALLOWED_SCOPES
プロパティで定義されたスコープのサブセットである必要があります。OAUTH_SCOPES
プロパティ値が指定されていない場合、シークレットはセキュリティ統合で指定されているすべてのスコープを継承します。ServiceNow コネクタの場合、有効なスコープ値は
'useraccount'
のみです。
基本認証の必須パラメーター¶
name
シークレットの識別子(つまり、名前)を指定する文字列。スキーマ内で一意である必要があります。
また、識別子はアルファベット文字で始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例:
"My object"
)。二重引用符で囲まれた識別子も大文字と小文字が区別されます。詳細については、 識別子の要件 をご参照ください。
TYPE = PASSWORD
基本認証で使用するシークレットを指定します。
このタイプを指定する場合、ユーザー名およびパスワードプロパティの値を指定する必要があります。
USERNAME = 'username'
シークレットに保存するユーザー名の値を指定します。
基本認証で使用するために
TYPE
の値をPASSWORD
に設定する場合は、この値を指定します。PASSWORD = 'password'
シークレットに保存するパスワード値を指定します。
基本認証で使用するために
TYPE
の値をPASSWORD
に設定する場合は、この値を指定します。
一般的な文字列パラメーター¶
name
シークレットの識別子(つまり、名前)を指定する文字列。スキーマ内で一意である必要があります。
また、識別子はアルファベット文字で始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例:
"My object"
)。二重引用符で囲まれた識別子も大文字と小文字が区別されます。詳細については、 識別子の要件 をご参照ください。
TYPE = GENERIC_STRING
機密性の高い文字列値を保存するためのシークレットを指定します。
SECRET_STRING = 'string_literal'
シークレットに保存する文字列を指定します。
文字列は API トークンであるか、 UDF またはストアドプロシージャのハンドラーコードで使用できる機密性の高い値の文字列です。詳細については、 外部アクセス統合の作成と使用 をご参照ください。
このプロパティは、 OAuth トークンの保存には使用しないでください。 OAuth のユースケースには、他のシークレットタイプを使用してください。
オプションのパラメーター¶
COMMENT = 'string_literal'
シークレットのコメントを指定する文字列(リテラル)。
デフォルト: 値なし
アクセス制御の要件¶
この SQL コマンドの実行に使用される ロール には、少なくとも次の 権限 が必要です。
権限 |
オブジェクト |
メモ |
---|---|---|
CREATE SECRET |
スキーマ |
スキーマ内の任意のオブジェクトを操作するには、親データベースとスキーマに対する USAGE 権限も必要であることに注意してください。
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
使用上の注意¶
メタデータについて:
注意
Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。
例¶
OAuth クライアント認証情報フローで使用するシークレットを作成します。
CREATE OR REPLACE SECRET mysecret TYPE = OAUTH2 API_AUTHENTICATION = mysecurityintegration OAUTH_SCOPES = ('useraccount') COMMENT = 'secret for the service now connector'
OAuth コード許可フローで使用するシークレットを作成します。
CREATE SECRET service_now_creds_oauth_code TYPE = OAUTH2 OAUTH_REFRESH_TOKEN = '34n;vods4nQsdg09wee4qnfvadH' OAUTH_REFRESH_TOKEN_EXPIRY_TIME = '2022-01-06 20:00:00' API_AUTHENTICATION = sn_oauth;
ServiceNow にアクセスするためのユーザー名とパスワードを指定するシークレットを作成します。
CREATE SECRET service_now_creds_pw TYPE = password USERNAME = 'jsmith1' PASSWORD = 'W3dr@fg*7B1c4j';