- Catégories :
Utilisateur et sécurité DDL (Intégrations de services tiers)
ALTER SECURITY INTEGRATION¶
Modifie les propriétés d’une intégration de sécurité existante.
- Voir aussi :
CREATE SECURITY INTEGRATION , DROP INTEGRATION , SHOW INTEGRATIONS
Dans ce chapitre :
Syntaxe¶
OAuth externe
ALTER [ SECURITY ] INTEGRATION [ IF EXISTS ] <name> SET [ TYPE = EXTERNAL_OAUTH ] [ ENABLED = { TRUE | FALSE } ] [ EXTERNAL_OAUTH_TYPE = { OKTA | AZURE | PING_FEDERATE | CUSTOM } ] [ EXTERNAL_OAUTH_ISSUER = '<string_literal>' ] [ EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM = '<string_literal>' ] [ EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE = 'LOGIN_NAME | EMAIL_ADDRESS' ] [ EXTERNAL_OAUTH_JWS_KEYS_URL = '<string_literal>' ] [ EXTERNAL_OAUTH_RSA_PUBLIC_KEY = <public_key1> ] [ EXTERNAL_OAUTH_RSA_PUBLIC_KEY_2 = <public_key2> ] [ EXTERNAL_OAUTH_AUDIENCE_LIST = ('<string_literal>') ] [ EXTERNAL_OAUTH_ANY_ROLE_MODE = 'DISABLE | ENABLE | ENABLE_FOR_PRIVILEGE ] ALTER [ SECURITY ] INTEGRATION [ IF EXISTS ] <name> UNSET { ENABLED | EXTERNAL_OAUTH_AUDIENCE_LIST } [ , ... ]
SAML2
ALTER [ SECURITY ] INTEGRATION [ IF EXISTS ] <name> SET [ TYPE = SAML2 ] [ ENABLED = TRUE | FALSE ] [ SAML2_ISSUER = '<string_literal>' ] [ SAML2_SSO_URL = '<string_literal>' ] [ SAML2_PROVIDER = '<string_literal>' ] [ SAML2_X509_CERT = '<string_literal>' ] [ SAML2_SP_INITIATED_LOGIN_PAGE_LABEL = '<string_literal>' ] [ SAML2_ENABLE_SP_INITIATED = TRUE | FALSE ] [ SAML2_SNOWFLAKE_X509_CERT = '<string_literal>' ] [ SAML2_SIGN_REQUEST = TRUE | FALSE ] [ SAML2_REQUESTED_NAMEID_FORMAT = '<string_literal>' ] [ SAML2_FORCE_AUTHN = TRUE | FALSE ] [ SAML2_SNOWFLAKE_ISSUER_URL = '<string_literal>' ] [ SAML2_SNOWFLAKE_ACS_URL = '<string_literal>' ]
SCIM
ALTER [ SECURITY ] INTEGRATION [ IF EXISTS ] <name> SET [ TYPE = SCIM ] [ SCIM_CLIENT = 'OKTA' | 'AZURE' | 'CUSTOM' ] [ RUN_AS_ROLE = 'OKTA_PROVISIONER' | 'AAD_PROVISIONER' | 'GENERIC_SCIM_PROVISIONER' ] [ NETWORK_POLICY = '<network_policy>' ] ALTER [ SECURITY ] INTEGRATION [ IF EXISTS ] <name> UNSET { ENABLED | NETWORK_POLICY } [ , ... ]
Snowflake OAuth pour les applications partenaires
ALTER [ SECURITY ] INTEGRATION [ IF EXISTS ] <name> SET [ ENABLED = { TRUE | FALSE } ] [ OAUTH_ISSUE_REFRESH_TOKENS = TRUE | FALSE ] [ OAUTH_REFRESH_TOKEN_VALIDITY = <integer> ] [ BLOCKED_ROLES_LIST = ( '<role_name>' [ , '<role_name>' , ... ] ) ] [ COMMENT = '<string_literal>' ]
Snowflake OAuth pour les clients personnalisés
ALTER [ SECURITY ] INTEGRATION [ IF EXISTS ] <name> SET [ ENABLED = { TRUE | FALSE } ] [ OAUTH_REDIRECT_URI = '<uri>' ] [ OAUTH_ALLOW_NON_TLS_REDIRECT_URI = TRUE | FALSE ] [ OAUTH_ENFORCE_PKCE = TRUE | FALSE ] [ PRE_AUTHORIZED_ROLES_LIST = ( '<role_name>' [ , '<role_name>' , ... ] ) ] [ BLOCKED_ROLES_LIST = ( '<role_name>' [ , '<role_name>' , ... ] ) ] [ OAUTH_ISSUE_REFRESH_TOKENS = TRUE | FALSE ] [ OAUTH_REFRESH_TOKEN_VALIDITY = <integer> ] [ NETWORK_POLICY = '<network_policy>' ] [ OAUTH_CLIENT_RSA_PUBLIC_KEY = <public_key1> ] [ OAUTH_CLIENT_RSA_PUBLIC_KEY_2 = <public_key2> ] [ COMMENT = '{string_literal}' ] ALTER [ SECURITY ] INTEGRATION [ IF EXISTS ] <name> UNSET { ENABLED | NETWORK_POLICY | OAUTH_CLIENT_RSA_PUBLIC_KEY | OAUTH_CLIENT_RSA_PUBLIC_KEY_2 } [ , ... ]
Paramètres¶
nom
Identificateur pour l’intégration à modifier. Si l’identificateur contient des espaces ou des caractères spéciaux, toute la chaîne doit être délimitée par des guillemets doubles. Les identificateurs entre guillemets doubles sont également sensibles à la casse.
Paramètres OAuth externe¶
SET ...
Spécifie un (ou plusieurs) paramètre(s)/propriété(s) à définir pour l’intégration (séparés par des espaces, des virgules ou de nouvelles lignes) :
TYPE = EXTERNAL_OAUTH
Distingue l’intégration OAuth externe d’une intégration Snowflake OAuth.
ENABLED = TRUE | FALSE
Spécifie s’il faut initier le fonctionnement de l’intégration ou le suspendre.
TRUE
permet l’exécution de l’intégration en fonction des paramètres spécifiés dans la définition de canal.FALSE
suspend l’intégration pour la maintenance. Toute intégration entre Snowflake et un service tiers échoue.
EXTERNAL_OAUTH_TYPE = OKTA | AZURE | PING_FEDERATE | CUSTOM
Indique que le serveur d’autorisation OAuth 2.0 doit être Okta, Microsoft Azure AD, Ping Identity PingFederate ou un serveur d’autorisation personnalisé OAuth 2.0.
EXTERNAL_OAUTH_ISSUER = 'litéral_chaine'
Spécifie l’URL pour définir le serveur d’autorisation OAuth 2.0.
EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM = 'litéral_chaine'
Spécifie la revendication de jeton d’accès à utiliser pour mapper le jeton d’accès à un enregistrement utilisateur Snowflake. Le type de la revendication doit être une chaîne ou un tableau de chaînes avec une seule entrée.
EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE = 'LOGIN_NAME | EMAIL_ADDRESS'
Indique quel attribut d’enregistrement utilisateur Snowflake doit être utilisé pour mapper le jeton d’accès à un enregistrement utilisateur Snowflake.
EXTERNAL_OAUTH_JWS_KEYS_URL = 'litéral_chaine'
Spécifie le point de terminaison à partir duquel télécharger les clés publiques ou les certificats pour valider un jeton d’accès OAuth externe.
EXTERNAL_OAUTH_RSA_PUBLIC_KEY = clé_publique1
Spécifie une clé publique RSA d’encodage Base64, sans les en-têtes
-----BEGIN PUBLIC KEY-----
et-----END PUBLIC KEY-----
.EXTERNAL_OAUTH_RSA_PUBLIC_KEY_2 = clé_publique2
Spécifie une deuxième clé publique RSA, sans les en-têtes
-----BEGIN PUBLIC KEY-----
et-----END PUBLIC KEY-----
. Utilisée pour la rotation des clés.EXTERNAL_OAUTH_AUDIENCE_LIST = ('litéral_chaîne')
Spécifie des valeurs supplémentaires qui peuvent être utilisées pour la validation de l’audience du jeton d’accès en plus de l’utilisation de l’URL du compte Snowflake du client (c’est-à-dire,
<compte>.<région>.snowflakecomputing.com
).Actuellement, plusieurs URLs d’audience ne peuvent être spécifiées que pour les clients externes OAuth personnalisés. Chaque URL doit être placée entre guillemets simples, avec une virgule séparant chaque URL. Par exemple :
external_oauth_audience_list = ('https://example.com/api/v2/', 'https://example.com')
EXTERNAL_OAUTH_ANY_ROLE_MODE = 'DISABLE | ENABLE | ENABLE_FOR_PRIVILEGE'
Spécifie si le client ou l’utilisateur OAuth peut utiliser un rôle qui n’est pas défini dans le jeton d’accès OAuth.
DISABLE
n’autorise pas le client ou l’utilisateur OAuth à changer de rôle (c’est-à-direuse role <rôle>;
). Par défaut.ENABLE
permet au client ou à l’utilisateur OAuth de changer de rôle.ENABLE_FOR_PRIVILEGE
permet au client ou à l’utilisateur OAuth de changer de rôle uniquement pour un client ou un utilisateur avec le privilègeUSE_ANY_ROLE
. Ce privilège peut être accordé et révoqué à un ou plusieurs rôles disponibles pour l’utilisateur. Par exemple :grant USE_ANY_ROLE on integration external_oauth_1 to role1;
revoke USE_ANY_ROLE on integration external_oauth_1 from role1;
UNSET ...
Spécifie une (ou plusieurs) propriété(s)/paramètres à désactiver pour l’intégration de sécurité, ce qui les réinitialise à leurs valeurs par défaut :
ENABLED
EXTERNAL_OAUTH_AUDIENCE_LIST
Paramètres SAML 2.0¶
SET ...
Spécifie un (ou plusieurs) paramètre(s)/propriété(s) à définir pour l’intégration (séparés par des espaces, des virgules ou de nouvelles lignes) :
TYPE = SAML2
Spécifiez le type d’intégration :
SAML2
: crée une interface de sécurité entre Snowflake et le fournisseur d’identité.
ENABLED = TRUE | FALSE
Spécifie s’il faut initier le fonctionnement de l’intégration ou le suspendre.
TRUE
permet l’exécution de l’intégration en fonction des paramètres spécifiés dans la définition de canal.FALSE
suspend l’intégration pour la maintenance. Toute intégration entre Snowflake et un service tiers échoue.
SAML2_ISSUER = 'litéral_chaine'
La chaîne contenant l’IdP
EntityID
/Issuer
.SAML2_SSO_URL = 'litéral_chaine'
La chaîne contenant l’URL SSO de l’IdP, où l’utilisateur doit être redirigé par Snowflake (le fournisseur de services) avec un message
AuthnRequest
SAML.SAML2_PROVIDER = 'litéral_chaine'
La chaîne décrivant l’IdP.
L’un des éléments suivants : OKTA, ADFS, personnalisé.
SAML2_X509_CERT = 'litéral_chaine'
Le certificat de signature IdP encodé en Base64 sur une seule ligne sans les marqueurs
-----BEGIN CERTIFICATE-----
de début et-----END CERTIFICATE-----
de fin.SAML2_SP_INITIATED_LOGIN_PAGE_LABEL = 'litéral_chaine'
Chaîne contenant l’étiquette à afficher après le bouton Log In With sur la page de connexion.
SAML2_ENABLE_SP_INITIATED = TRUE | FALSE
Le booléen indiquant si le bouton Log In With sera affiché sur la page de connexion.
TRUE
affiche le bouton Log in With sur la page de connexion.FALSE
n’affiche pas le bouton Log in With sur la page de connexion.
SAML2_SNOWFLAKE_X509_CERT = 'litéral_chaine'
Le certificat auto-signé encodé en Base64 généré par Snowflake pour une utilisation avec Chiffrement des assertions SAML et Demandes SAML signées.
Vous devez avoir au moins une de ces fonctionnalités (assertions SAML chiffrées ou réponses SAML signées) activée dans votre compte Snowflake pour accéder à la valeur du certificat.
SAML2_SIGN_REQUEST = TRUE | FALSE
Le booléen indiquant si les demandes SAML sont signées.
TRUE
permet la signature de demandes SAML.FALSE
n’autorise pas la signature de demandes SAML.
SAML2_REQUESTED_NAMEID_FORMAT = 'litéral_chaine'
Le format SAML NameID permet à Snowflake de définir une attente de l’attribut identifiant de l’utilisateur (c’est-à-dire le sujet SAML) dans l’assertion SAML de l” IdP pour assurer une authentification valide dans Snowflake. Si aucune valeur n’est spécifiée, Snowflake envoie la valeur
urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
dans la requête d’authentification à l” IdP.En option.
Si vous choisissez de spécifier le format SAML
NameID
, utilisez l’une des valeurs suivantes :urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName
urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName
urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos
urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
urn:oasis:names:tc:SAML:2.0:nameid-format:transient
SAML2_FORCE_AUTHN = TRUE | FALSE
Le booléen indiquant si les utilisateurs, lors du flux d’authentification initial, sont obligés de s’authentifier à nouveau pour accéder à Snowflake. Lorsqu’il est défini sur
TRUE
, Snowflake définit le paramètreForceAuthn
SAML surTRUE
dans la requête sortante de Snowflake vers le fournisseur d’identité.TRUE
oblige les utilisateurs à s’authentifier à nouveau pour accéder à Snowflake, même si une session valide avec le fournisseur d’identité existe.FALSE
n’oblige pas les utilisateurs à s’authentifier à nouveau pour accéder à Snowflake.
Par défaut :
FALSE
.SAML2_SNOWFLAKE_ISSUER_URL = '<string_literal>'
La chaîne contenant
EntityID
/Issuer
pour le fournisseur de services Snowflake.Si une valeur incorrecte est spécifiée, Snowflake renvoie un message d’erreur indiquant les valeurs acceptables à utiliser.
SAML2_SNOWFLAKE_ACS_URL = '<string_literal>'
La chaîne contenant l’URL Snowflake Assertion Consumer Service à laquelle l’IdP enverra sa réponse d’authentification SAML à Snowflake.
Cette propriété sera définie dans la demande d’authentification SAML générée par Snowflake lors du lancement d’une opération SAML SSO avec l’IdP.
Si une valeur incorrecte est spécifiée, Snowflake renvoie un message d’erreur indiquant les valeurs acceptables à utiliser.
Valeur par défaut :
https://<compte>.<région>.snowflakecomputing.com/fed/login
Pour un exemple représentatif, voir Utilisation de l’URL du compte de l’organisation dans l’intégration de sécurité — Facultatif.
Paramètres SCIM¶
TYPE = SCIM
Spécifiez le type d’intégration :
SCIM
: crée une interface de sécurité entre Snowflake et un client prenant en charge SCIM.
SCIM_CLIENT = 'OKTA' | 'AZURE' | 'CUSTOM'
Spécifiez le client SCIM.
RUN_AS_ROLE = 'OKTA_PROVISIONER' | 'AAD_PROVISIONER' | 'GENERIC_SCIM_PROVISIONER'
Spécifiez le rôle SCIM dans Snowflake qui possède les utilisateurs et les rôles importés du fournisseur d’identité dans Snowflake à l’aide de SCIM.
Les valeurs
OKTA_PROVISIONER
,AAD_PROVISIONER
etGENERIC_SCIM_PROVISIONER
sont sensibles à la casse et doivent toujours être mises en majuscule.
NETWORK_POLICY = 'politique_réseau'
Spécifie une stratégie réseau existante active pour votre compte. La stratégie réseau restreint la liste des adresses IP des utilisateurs lors de l’échange d’un code d’autorisation contre un jeton d’accès ou d’actualisation et lors de l’utilisation d’un jeton d’actualisation pour obtenir un nouveau jeton d’accès. Si ce paramètre n’est pas défini, la politique réseau du compte (le cas échéant) est utilisée à la place.
UNSET ...
Spécifie une (ou plusieurs) propriété(s)/paramètres à désactiver pour l’intégration de sécurité, ce qui les réinitialise à leurs valeurs par défaut :
ENABLED
NETWORK_POLICY
Paramètres d’application du partenaire OAuth Snowflake¶
Valable lorsque OAUTH_CLIENT = <application_partenaire> (c’est-à-dire lors de la création d’une intégration pour une application partenaire)
SET ...
Spécifie un (ou plusieurs) paramètre(s)/propriété(s) à définir pour l’intégration (séparés par des espaces, des virgules ou de nouvelles lignes) :
ENABLED = TRUE | FALSE
Spécifie s’il faut initier le fonctionnement de l’intégration ou le suspendre.TRUE
permet l’exécution de l’intégration en fonction des paramètres spécifiés dans la définition de canal.FALSE
suspend l’intégration pour la maintenance. Toute intégration entre Snowflake et un service tiers échoue.
OAUTH_ISSUE_REFRESH_TOKENS = TRUE | FALSE
Booléen qui spécifie s’il faut autoriser le client à échanger un jeton d’actualisation contre un jeton d’accès lorsque le jeton d’accès actuel a expiré. Si défini sur
FALSE
, aucun jeton d’actualisation n’est émis. Le consentement de l’utilisateur est révoqué et l’utilisateur doit confirmer l’autorisation à nouveau.Par défaut :
TRUE
OAUTH_REFRESH_TOKEN_VALIDITY = entier
Entier qui spécifie la durée pendant laquelle les jetons d’actualisation doivent être valides (en secondes). Cela peut être utilisé pour expirer périodiquement le jeton d’actualisation.
Notez que si votre entreprise souhaite que les valeurs minimales ou maximales soient abaissées ou augmentées, respectivement, demandez à votre administrateur de compte d’envoyer une demande au support Snowflake.
- Valeurs
86400
(1 jour) à7776000
(90 jours)- Par défaut
7776000
BLOCKED_ROLES_LIST = '( nom_rôle' [ , 'nom_rôle' , ... ] )
Liste des rôles Snowflake séparés par des virgules qu’un utilisateur ne peut pas accepter explicitement d’utiliser après l’authentification, par exemple
'custom_role1', 'custom_role2'
. Notez que les rôles ACCOUNTADMIN et SECURITYADMIN sont inclus par défaut dans cette liste. Toutefois, si ces rôles doivent être supprimés pour votre compte, demandez à votre administrateur de compte d’envoyer une demande au support Snowflake.COMMENT = 'litéral_chaine'
Chaîne (littéral) qui spécifie un commentaire pour l’intégration.
Paramètres client personnalisés OAuth Snowflake¶
Valable lorsque OAUTH_CLIENT = CUSTOM (c’est-à-dire lors de la création d’une intégration pour un client personnalisé)
SET ...
Spécifie un (ou plusieurs) paramètre(s)/propriété(s) à définir pour l’intégration (séparés par des espaces, des virgules ou de nouvelles lignes) :
ENABLED = TRUE | FALSE
Spécifie s’il faut initier le fonctionnement de l’intégration ou le suspendre.TRUE
permet l’exécution de l’intégration en fonction des paramètres spécifiés dans la définition de canal.FALSE
suspend l’intégration pour la maintenance. Toute intégration entre Snowflake et un service tiers échoue.
OAUTH_REDIRECT_URI = 'uri'
Spécifie l’URI du client. Une fois l’utilisateur authentifié, le navigateur Web est redirigé vers cette URI. L’URI doit être protégée par TLS (Transport Layer Security) sauf si le paramètre facultatif
OAUTH_ALLOW_NON_TLS_REDIRECT_URI
est défini surTRUE
.OAUTH_ALLOW_NON_TLS_REDIRECT_URI = TRUE | FALSE
Si
TRUE
, autorise le paramétrage deOAUTH_REDIRECT_URI
sur une URI non protégée par TLS. Nous vous recommandons vivement d’utiliser TLS pour empêcher les redirections man-in-the-middle OAuth utilisées lors des attaques de hameçonnage.Par défaut :
FALSE
OAUTH_ENFORCE_PKCE = TRUE | FALSE
Booléen qui spécifie si une clé de vérification pour l’échange de code (PKCE) doit être requise pour l’intégration.
Par défaut :
FALSE
PRE_AUTHORIZED_ROLES_LIST = '( nom_rôle' [ , 'nom_rôle , ... ] ')
Liste des rôles Snowflake séparés par des virgules qu’un utilisateur n’a pas besoin d’accepter explicitement d’utiliser après l’authentification, par exemple
'custom_role1', 'custom_role2'
. Notez que les rôles ACCOUNTADMIN et SECURITYADMIN ne peuvent pas être inclus dans cette liste.Note
Ce paramètre est pris en charge pour les clients confidentiels uniquement.
BLOCKED_ROLES_LIST = '(nom_rôle', 'nom_rôle')
Liste des rôles Snowflake séparés par des virgules qu’un utilisateur ne peut pas accepter explicitement d’utiliser après l’authentification, par exemple
'custom_role1', 'custom_role2'
. Notez que les rôles ACCOUNTADMIN et SECURITYADMIN sont inclus par défaut dans cette liste. Toutefois, si ces rôles doivent être supprimés pour votre compte, demandez à votre administrateur de compte d’envoyer une demande au support Snowflake.OAUTH_ISSUE_REFRESH_TOKENS = TRUE | FALSE
Booléen qui spécifie s’il faut autoriser le client à échanger un jeton d’actualisation contre un jeton d’accès lorsque le jeton d’accès actuel a expiré. Si défini sur
FALSE
, aucun jeton d’actualisation n’est émis. Le consentement de l’utilisateur est révoqué et l’utilisateur doit confirmer l’autorisation à nouveau.Par défaut :
TRUE
OAUTH_REFRESH_TOKEN_VALIDITY = entier
Entier qui spécifie la durée pendant laquelle les jetons d’actualisation doivent être valides (en secondes). Cela peut être utilisé pour expirer périodiquement le jeton d’actualisation.
Lorsqu’un jeton d’actualisation expire, l’application doit rediriger l’utilisateur à travers le flux d’autorisation pour obtenir un nouveau jeton d’actualisation.
Les valeurs minimale, maximale et par défaut prises en charge sont les suivantes :
Application
Minimum
Maximum
Par défaut
Tableau Desktop
60
(1 minute)36000
(10 heures)36000
(10 heures)Tableau Server ou Tableau Online
60
(1 minute)7776000
90 jours7776000
90 joursClient personnalisé
86400
(1 jour)7776000
90 jours7776000
90 joursSi votre entreprise a besoin de réduire la valeur minimale ou d’augmenter la valeur maximale, demandez à votre administrateur de compte d’envoyer une demande au support Snowflake.
NETWORK_POLICY = 'politique_réseau'
Spécifie une stratégie réseau existante active pour votre compte. La stratégie réseau restreint la liste des adresses IP des utilisateurs lors de l’échange d’un code d’autorisation contre un jeton d’accès ou d’actualisation et lors de l’utilisation d’un jeton d’actualisation pour obtenir un nouveau jeton d’accès. Si ce paramètre n’est pas défini, la politique réseau du compte (le cas échéant) est utilisée à la place.
OAUTH_CLIENT_RSA_PUBLIC_KEY = clé_publique1
Spécifie une clé publique RSA. Pour plus d’informations, voir OAuth.
OAUTH_CLIENT_RSA_PUBLIC_KEY_2 = clé_publique2
Spécifie une seconde clé publique RSA. Utilisée pour la rotation des clés.
COMMENT = 'litéral_chaine'
Chaîne (littéral) qui spécifie un commentaire pour l’intégration.
UNSET ...
Spécifie une (ou plusieurs) propriété(s)/paramètres à désactiver pour l’intégration de sécurité, ce qui les réinitialise à leurs valeurs par défaut :
ENABLED
NETWORK_POLICY
OAUTH_CLIENT_RSA_PUBLIC_KEY
OAUTH_CLIENT_RSA_PUBLIC_KEY_2
Exemples¶
L’exemple suivant lance l’opération d’une intégration suspendue :
ALTER SECURITY INTEGRATION myint SET ENABLED = TRUE;