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 = CLOUD_PROVIDER_TOKEN
  API_AUTHENTICATION = '<cloud_provider_security_integration>'
  ENABLED = { TRUE | FALSE }
  [ 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>' ]
対称キー:
CREATE [ OR REPLACE ] SECRET [ IF NOT EXISTS ] <name>
TYPE = SYMMETRIC_KEY
ALGORITHM = GENERIC
クライアント認証情報フローを使用した 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'のみです。
AWS IAM 必須パラメーター¶
- TYPE = CLOUD_PROVIDER_TOKEN
- Amazon Web Services (AWS) などのクラウド・プロバイダーで使用するためのシークレットであることを指定します。 
- API_AUTHENTICATION = 'cloud_provider_security_integration'
- 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 のユースケースには、他のシークレットタイプを使用してください。 
対称キーパラメーター¶
対称のキーシークレットは、暗号操作に使用できる暗号キーを生成します。現在のところ、 合成データ の生成にのみ使用されています。
- ALGORITHM
- 対称キーの生成に使用するアルゴリズムを指定します。唯一サポートされている値は - GENERICで、256ビットのキーを生成します。
オプションのパラメーター¶
- COMMENT = 'string_literal'
- シークレットのコメントを指定する文字列(リテラル)。 - デフォルト: 値なし 
アクセス制御の要件¶
この操作の実行に使用される ロール には、少なくとも次の 権限 が必要です。
| 権限 | オブジェクト | 注意 | 
|---|---|---|
| CREATE SECRET | スキーマ | |
| USAGE | データベースまたはスキーマ | 
スキーマ内のオブジェクトに対して操作を実行するには、親データベースとスキーマに対する USAGE 権限が必要です。スキーマに対する 任意の権限を付与されたロールは、そのロールがスキーマを解決できることに注意してください。たとえば、スキーマに対するCREATE権限を付与されたロールは、そのスキーマにオブジェクトを作成できますが、そのスキーマに対するUSAGE*も*付与されている必要はありません。
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
使用上の注意¶
- OR REPLACEと- IF NOT EXISTS句は互いに排他的です。両方を同じステートメントで使うことはできません。
- CREATE OR REPLACE <オブジェクト> ステートメントはアトミックです。つまり、オブジェクトが置き換えられると、単一のトランザクションで、古いオブジェクトが削除されて新しいオブジェクトが作成されます。 
- メタデータについて: - 注意 - Snowflakeサービスを使用する場合、お客様は、個人データ(ユーザーオブジェクト向け以外)、機密データ、輸出管理データ、またはその他の規制されたデータがメタデータとして入力されていないことを確認する必要があります。詳細については、 Snowflakeのメタデータフィールド をご参照ください。 
例¶
クライアント認証情報を使用した OAuth¶
OAuth クライアント認証情報フローで使用するシークレットを作成します。
CREATE OR REPLACE SECRET mysecret
  TYPE = OAUTH2
  API_AUTHENTICATION = mysecurityintegration
  OAUTH_SCOPES = ('useraccount')
  COMMENT = 'secret for the service now connector'
AWS IAM¶
認証用の AWS IAM ARN を含めて、Amazon Web Services (AWS) で使用するシークレットを作成します。
CREATE SECRET aws_secret
  TYPE = CLOUD_PROVIDER_TOKEN
  API_AUTHENTICATION = myawsiamintegration
  ENABLED = TRUE;
基本認証¶
ServiceNow にアクセスするためのユーザー名とパスワードを指定するシークレットを作成します。
CREATE SECRET service_now_creds_pw
  TYPE = password
  USERNAME = 'jsmith1'
  PASSWORD = 'W3dr@fg*7B1c4j';