CREATE SECRET

現在の/指定されたスキーマで新しいシークレットを作成するか、既存のシークレットを置き換えます。

こちらもご参照ください。

ALTER SECRETDESCRIBE SECRETDROP SECRETSHOW SECRETS

構文

クライアント認証情報フローを使用した 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>' ]
Copy

認証コード付与フローを使用した 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>' ]
Copy

基本認証:

CREATE [ OR REPLACE ] SECRET [ IF NOT EXISTS ] <name>
    TYPE = PASSWORD
    USERNAME = '<username>'
    PASSWORD = '<password>'
    [ COMMENT = '<string_literal>' ]
Copy

一般的な文字列:

CREATE [ OR REPLACE ] SECRET [ IF NOT EXISTS ] <name>
    TYPE = GENERIC_STRING
    SECRET_STRING = '<string_literal>'
    [ COMMENT = '<string_literal>' ]
Copy

クライアント認証情報フローを使用した 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' のみです。

認証コード付与フローを使用した OAuth ではパラメーターが必須

name

シークレットの識別子(つまり、名前)を指定する文字列。スキーマ内で一意である必要があります。

また、識別子はアルファベット文字で始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例: "My object")。二重引用符で囲まれた識別子も大文字と小文字が区別されます。

詳細については、 識別子の要件 をご参照ください。

TYPE = OAUTH2

OAuth 許可フローで使用するシークレットを指定します。

OAUTH_REFRESH_TOKEN = 'string_literal'

アクセストークンの有効期限が切れたときに OAuth 認証サーバーから新しいアクセストークンを取得するために使用される文字列としてトークンを指定します。

OAUTH_REFRESH_TOKEN_EXPIRY_TIME = 'string_literal'

OAuth 更新トークンの有効期限が切れたときのタイムスタンプを文字列として指定します。

API_AUTHENTICATION = security_integration_name

Snowflakeを外部サービスに接続するSnowflakeセキュリティ統合の name 値を指定します。

基本認証の必須パラメーター

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'
Copy

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;
Copy

ServiceNow にアクセスするためのユーザー名とパスワードを指定するシークレットを作成します。

CREATE SECRET service_now_creds_pw
    TYPE = password
    USERNAME = 'jsmith1'
    PASSWORD = 'W3dr@fg*7B1c4j';
Copy