CREATE AUTHENTICATION POLICYยถ
์ ์ธ์ฆ ์ ์ฑ ์ ํ์ฌ ๋๋ ์ง์ ๋ ์คํค๋ง์ ๋ง๋ค๊ฑฐ๋ ๊ธฐ์กด ์ธ์ฆ ์ ์ฑ ์ ๋์ฒดํฉ๋๋ค. ์ธ์ฆ ์ ์ฑ ์ ์ฌ์ฉํ์ฌ ๊ณ์ ๋๋ ์ฌ์ฉ์์ ๋ํ ์ธ์ฆ ์ ์ด ๋ฐ ๋ณด์ ์๊ตฌ ์ฌํญ์ ์ ์ํ ์ ์์ต๋๋ค.
์ด ๋ช ๋ น์ ๋ค์ ๋ณํ์ ์ง์ํฉ๋๋ค.
CREATE OR ALTER AUTHENTICATION POLICY: ์ธ์ฆ ์ ์ฑ ์ด ์๋ ๊ฒฝ์ฐ ์ธ์ฆ ์ ์ฑ ์ ์์ฑํ๊ฑฐ๋ ๊ธฐ์กด ์ธ์ฆ ์ ์ฑ ์ ๋ณ๊ฒฝํฉ๋๋ค.
- ์ฐธ๊ณ ํญ๋ชฉ:
ALTER AUTHENTICATION POLICY, DESCRIBE AUTHENTICATION POLICY, DROP AUTHENTICATION POLICY, SHOW AUTHENTICATION POLICIES, CREATE OR ALTER <์ค๋ธ์ ํธ>
๊ตฌ๋ฌธยถ
CREATE [ OR REPLACE ] AUTHENTICATION POLICY [ IF NOT EXISTS ] <name>
[ AUTHENTICATION_METHODS = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
[ MFA_AUTHENTICATION_METHODS = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
[ MFA_ENROLLMENT = { REQUIRED | OPTIONAL } ]
[ MFA_POLICY= ( ALLOWED_METHODS = ( { 'ALL' | 'PASSKEY' | 'TOTP' | 'DUO' } [ , { 'PASSKEY' | 'TOTP' | 'DUO' } ... ] ) ) ]
[ CLIENT_TYPES = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
[ SECURITY_INTEGRATIONS = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
[ PAT_POLICY = ( {list_of_properties} ) ]
[ COMMENT = '<string_literal>' ]
๋ฒ ๋ฆฌ์ธํธ ๊ตฌ๋ฌธยถ
CREATE OR ALTER AUTHENTICATION POLICYยถ
์ธ์ฆ ์ ์ฑ ์ด ์๋ ๊ฒฝ์ฐ ์ ์ธ์ฆ ์ ์ฑ ์ ๋ง๋ค๊ฑฐ๋ ๊ธฐ์กด ์ธ์ฆ ์ ์ฑ ์ ๋ฌธ์ ์ ์๋ ์ธ์ฆ ์ ์ฑ ์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค. CREATE OR ALTER AUTHENTICATION POLICY ๋ฌธ์ CREATE AUTHENTICATION POLICY ๋ฌธ์ ๊ตฌ๋ฌธ ๊ท์น์ ๋ฐ๋ฅด๋ฉฐ ALTER AUTHENTICATION POLICY ๋ฌธ๊ณผ ์ ํ ์ฌํญ์ด ๋์ผํฉ๋๋ค.
CREATE OR ALTER AUTHENTICATION POLICY <name>
[ AUTHENTICATION_METHODS = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
[ MFA_AUTHENTICATION_METHODS = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
[ MFA_ENROLLMENT = { REQUIRED | OPTIONAL } ]
[ MFA_POLICY= ( ALLOWED_METHODS = ( { 'ALL' | 'PASSKEY' | 'TOTP' | 'DUO' } [ , { 'ALL' | 'PASSKEY' | 'TOTP' | 'DUO' } ... ] ) ) ]
[ CLIENT_TYPES = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
[ SECURITY_INTEGRATIONS = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
[ PAT_POLICY = ( {list_of_properties} ) ]
[ COMMENT = '<string_literal>' ]
ํ์ ๋งค๊ฐ ๋ณ์ยถ
name
์ธ์ฆ ์ ์ฑ ์ ์๋ณ์ ๋ฅผ ์ง์ ํฉ๋๋ค.
๋ํ, ์๋ณ์๋ ์ํ๋ฒณ ๋ฌธ์๋ก ์์ํด์ผ ํ๋ฉฐ ์ ์ฒด ์๋ณ์ ๋ฌธ์์ด์ ํฐ๋ฐ์ดํ(์:
"My object"
)๋ก ๋ฌถ์ง ์๋ ํ ๊ณต๋ฐฑ์ด๋ ํน์ ๋ฌธ์๋ฅผ ํฌํจํ ์ ์์ต๋๋ค. ํฐ๋ฐ์ดํ๋ก ๋ฌถ์ธ ์๋ณ์๋ ๋/์๋ฌธ์๋ฅผ ๊ตฌ๋ถํฉ๋๋ค.์์ธํ ๋ด์ฉ์ ์๋ณ์ ์๊ตฌ ์ฌํญ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
์ ํ์ ๋งค๊ฐ ๋ณ์ยถ
AUTHENTICATION_METHODS = ( 'string_literal' [ , 'string_literal' , ... ] )
์กฐ์ฌ
์ธ์ฆ ๋ฐฉ๋ฒ์ผ๋ก ์ ํํ๋ฉด ๋๋ผ์ด๋ฒ ์ฐ๊ฒฐ ๋๋ ์๋ ํํฐ ํตํฉ ์ฐจ๋จ ๋ฑ ์๋ํ์ง ์์ ๊ฒฐ๊ณผ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
๋ก๊ทธ์ธ ์ค์ ํ์ฉ๋๋ ์ธ์ฆ ๋ฐฉ๋ฒ์ ๋ชฉ๋ก์ ๋๋ค. ์ด ๋งค๊ฐ ๋ณ์๋ ๋ค์ ๊ฐ ์ค ํ๋ ์ด์์ ํ์ฉํฉ๋๋ค.
ALL
๋ชจ๋ ์ธ์ฆ ๋ฐฉ๋ฒ์ ํ์ฉํฉ๋๋ค.
SAML
SAML2 ๋ณด์ ํตํฉ ์ ํ์ฉํฉ๋๋ค.
SAML
์ด ์์ผ๋ฉด SSO ๋ก๊ทธ์ธ ์ต์ ์ด ๋ํ๋ฉ๋๋ค.SAML
์ด ์์ผ๋ฉด SSO ๋ก๊ทธ์ธ ์ต์ ์ด ๋ํ๋์ง ์์ต๋๋ค.PASSWORD
์ฌ์ฉ์๊ฐ ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ๋น๋ฐ๋ฒํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์ฆํ ์ ์์ต๋๋ค.
OAUTH
External OAuth ๋ฅผ ํ์ฉํฉ๋๋ค.
KEYPAIR
ํค ํ์ด ์ธ์ฆ ์ ํ์ฉํฉ๋๋ค.
PROGRAMMATIC_ACCESS_TOKEN
์ฌ์ฉ์๊ฐ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์ ์ก์ธ์ค ํ ํฐ ์ผ๋ก ์ธ์ฆํ ์ ์๋๋ก ํ์ฉํฉ๋๋ค.
๊ธฐ๋ณธ๊ฐ:
ALL
.
MFA_AUTHENTICATION_METHODS = ( 'string_literal' [ , 'string_literal' , ... ] )
๋ก๊ทธ์ธ ์ค์ ๋ค๋จ๊ณ ์ธ์ฆ(MFA)์ ์ ์ฉํ๋ ์ธ์ฆ ๋ฐฉ๋ฒ ๋ชฉ๋ก์ ๋๋ค. ์ด ๋งค๊ฐ ๋ณ์์ ๋์ด๋์ง ์์ ์ธ์ฆ ๋ฐฉ๋ฒ์์๋ ๋ค๋จ๊ณ ์ธ์ฆ์ ์๊ตฌํ์ง ์์ต๋๋ค.
๋ค์ ์ธ์ฆ ๋ฐฉ๋ฒ์ MFA๋ฅผ ์ง์ํฉ๋๋ค.
SAML
PASSWORD
์ด ๋งค๊ฐ ๋ณ์๋ ๋ค์ ๊ฐ ์ค ํ๋ ์ด์์ ํ์ฉํฉ๋๋ค.
SAML
์ฌ์ฉ์๊ฐ MFA์ ๋ฑ๋ก๋์ด ์๋ ๊ฒฝ์ฐ SAML2 ๋ณด์ ํตํฉ ์ผ๋ก ์ธ์ฆํ ๋ ์ฌ์ฉ์์๊ฒ MFA๋ก ์ธ์ฆํ๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค.
PASSWORD
์ฌ์ฉ์๊ฐ MFA์ ๋ฑ๋ก๋์ด ์๋ ๊ฒฝ์ฐ ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ๋น๋ฐ๋ฒํธ๋ก ์ธ์ฆํ ๋ ์ฌ์ฉ์์๊ฒ MFA๋ก ์ธ์ฆํ๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค.
๊ธฐ๋ณธ๊ฐ:
('PASSWORD')
.MFA_ENROLLMENT = { REQUIRED | OPTIONAL }
์ฌ์ฉ์๊ฐ ๋ค๋จ๊ณ ์ธ์ฆ์ ๋ฑ๋กํด์ผ ํ ์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
REQUIRED
์ฌ์ฉ์์ MFA ๋ฑ๋ก์ ํ์ ์ฌํญ์ผ๋ก ์ ์ฉํฉ๋๋ค. ์ด ๊ฐ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
CLIENT_TYPES
๋งค๊ฐ ๋ณ์๋SNOWFLAKE_UI
๋ฅผ ํฌํจํด์ผ ํ๋๋ฐ, Snowsight ๊ฐ ์ฌ์ฉ์๊ฐ ๋ค๋จ๊ณ ์ธ์ฆ(MFA)์ ๋ฑ๋ก ํ ์ ์๋ ์ ์ผํ ๊ณณ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.OPTIONAL
์ฌ์ฉ์๋ MFA์ ๋ฑ๋กํ ์ง ์ฌ๋ถ๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ๊ฐ:
REQUIRED
.MFA_POLICY= ( ALLOWED_METHODS = ( { 'ALL' | 'PASSKEY' | 'TOTP' | 'DUO' } [ , { 'PASSKEY' | 'TOTP' | 'DUO' } ... ] ) )
์ฌ์ฉ์๊ฐ ์ธ์ฆ์ ๋ ๋ฒ์งธ ์์๋ก ์ฌ์ฉํ ์ ์๋ ๋ค๋จ๊ณ ์ธ์ฆ(MFA) ๋ฐฉ๋ฒ์ ์ง์ ํฉ๋๋ค. ๋ ์ด์์ ๋ฐฉ๋ฒ์ ์ง์ ํ ์ ์์ต๋๋ค.
ALL
์ฌ์ฉ์๋ ํจ์คํค, ์ธ์ฆ์ ์ฑ ๋๋ Duo๋ฅผ ๋ ๋ฒ์งธ ์ธ์ฆ ์์๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
PASSKEY
์ฌ์ฉ์๋ ํจ์คํค๋ฅผ ๋ ๋ฒ์งธ ์ธ์ฆ ์์๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
TOTP
์ฌ์ฉ์๋ ์ธ์ฆ์ ์ฑ์ ๋ ๋ฒ์งธ ์ธ์ฆ ์์๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
DUO
์ฌ์ฉ์๋ Duo๋ฅผ ๋ ๋ฒ์งธ ์ธ์ฆ ์์๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ๊ฐ:
ALL
.CLIENT_TYPES = ( 'string_literal' [ , 'string_literal' , ... ] )
Snowflake๋ก ์ธ์ฆํ ์ ์๋ ํด๋ผ์ด์ธํธ ๋ชฉ๋ก์ ๋๋ค.
ํด๋ผ์ด์ธํธ๊ฐ ์ฐ๊ฒฐ์ ์๋ํ ๋ ์๋ ๋ชฉ๋ก์ ์๋ ์ ํจํ
CLIENT_TYPES
๊ฐ ์ค ํ๋๊ฐ ์๋ ๊ฒฝ์ฐ ๋ก๊ทธ์ธ ์๋๊ฐ ์คํจํฉ๋๋ค.MFA_ENROLLMENT
๋ฅผREQUIRED
๋ก ์ค์ ํ ๊ฒฝ์ฐ ์ฌ์ฉ์๊ฐ MFA ์ ๋ฑ๋กํ ์ ์๋๋กCLIENT_TYPES
๋ชฉ๋ก์SNOWFLAKE_UI
๋ฅผ ํฌํจํด์ผ ํฉ๋๋ค.CLIENT_TYPES
๋ชฉ๋ก์์SNOWFLAKE_UI
๋ฅผ ์ ์ธํ๋ ค๋ฉดMFA_ENROLLMENT
๋ฅผOPTIONAL
๋ก ์ค์ ํด์ผ ํฉ๋๋ค.The
CLIENT_TYPES
property of an authentication policy is a best effort method to block user logins based on specific clients. It should not be used as the sole control to establish a security boundary.์ด ๋งค๊ฐ ๋ณ์๋ ๋ค์ ๊ฐ ์ค ํ๋ ์ด์์ ํ์ฉํฉ๋๋ค.
ALL
๋ชจ๋ ํด๋ผ์ด์ธํธ์ ์ธ์ฆ์ ํ์ฉํฉ๋๋ค.
SNOWFLAKE_UI
Snowflake ์น ์ธํฐํ์ด์ค์ธ Snowsight ๋๋ Classic Console
์กฐ์ฌ
If
SNOWFLAKE_UI
is not included in theCLIENT_TYPES
list whileMFA_ENROLLMENT
is set toREQUIRED
, orMFA_ENROLLMENT
is unspecified, MFA enrollment doesnโt work.DRIVERS
๋๋ผ์ด๋ฒ๋ฅผ ์ฌ์ฉํ๋ฉด ์ง์๋๋ ์ธ์ด ๋ก ์์ฑ๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ Snowflake์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด Go, JDBC, .NET ๋๋ผ์ด๋ฒ ๋ฐ Snowpipe Streaming ์ ๋๋ค.
์กฐ์ฌ
DRIVERS
๊ฐCLIENT_TYPES
๋ชฉ๋ก์ ํฌํจ๋์ด ์์ง ์์ผ๋ฉด ์๋ ์์ง์ด ์๋์ ๋ฉ์ถ ์ ์์ต๋๋ค.SNOWFLAKE_CLI
๋ช ๋ น์ค ํด๋ผ์ด์ธํธ ๋ฅผ ํตํด Snowflake์ ์ฐ๊ฒฐํ๊ณ ๊ฐ๋ฐ์ ์ค์ฌ ์ํฌ๋ก๋ ๋ฐ SQL ์์ ์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
SNOWSQL
Snowflake์ ์ฐ๊ฒฐํ๊ธฐ ์ํ ๋ช ๋ น์ค ํด๋ผ์ด์ธํธ ์ ๋๋ค.
๊ธฐ๋ณธ๊ฐ:
ALL
.SECURITY_INTEGRATIONS = ( 'string_literal' [ , 'string_literal' , ... ] )
์ธ์ฆ ์ ์ฑ ๊ณผ ์ฐ๊ฒฐ๋ ๋ณด์ ํตํฉ ๋ชฉ๋ก์ ๋๋ค.
SAML
๋๋OAUTH
๊ฐAUTHENTICATION_METHODS
๋ชฉ๋ก์ ์์ผ๋ฉด ์ด ๋งค๊ฐ ๋ณ์๋ ์๋ฌด๋ฐ ํจ๊ณผ๋ ์์ต๋๋ค.SECURITY_INTEGRATIONS
๋ชฉ๋ก์ ๋ชจ๋ ๊ฐ์AUTHENTICATION_METHODS
๋ชฉ๋ก์ ๊ฐ๊ณผ ํธํ๋์ด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด,SECURITY_INTEGRATIONS
์ SAML ๋ณด์ ํตํฉ์ด ํฌํจ๋๊ณAUTHENTICATION_METHODS
์OAUTH
๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ ์ธ์ฆ ์ ์ฑ ์ ๋ง๋ค ์ ์์ต๋๋ค.ALL
๋ชจ๋ ๋ณด์ ํตํฉ์ ํ์ฉํฉ๋๋ค.
๊ธฐ๋ณธ๊ฐ:
ALL
.
PAT_POLICY = ( list_of_properties )
ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์ ์ก์ธ์ค ํ ํฐ ์ ๋ํ ์ ์ฑ ์ ์ง์ ํฉ๋๋ค. ๋ค์ ์์ฑ ๋ฐ ๊ฐ ์ค ํ๋ ์ด์์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋ ๋ชฉ๋ก์ผ๋ก ์ค์ ํฉ๋๋ค.
DEFAULT_EXPIRY_IN_DAYS = number_of_days
ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์ ์ก์ธ์ค ํ ํฐ์ ๊ธฐ๋ณธ ๋ง๋ฃ ์๊ฐ(์ผ)์ ์ง์ ํฉ๋๋ค. (MAX_EXPIRY_IN_DAYS ๋ฅผ ์ค์ ํ์ฌ ์ง์ ํ ์ ์๋) 1๋ถํฐ ์ต๋ ์๊ฐ๊น์ง ๊ฐ์ ์ง์ ํ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ ๋ง๋ฃ ์๊ฐ์ 15์ผ์ ๋๋ค.
์์ธํ ๋ด์ฉ์ ๊ธฐ๋ณธ ๋ง๋ฃ ์๊ฐ ์ค์ ํ๊ธฐ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
MAX_EXPIRY_IN_DAYS = number_of_days
ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์ ์ก์ธ์ค ํ ํฐ์ ๋ง๋ฃ ์๊ฐ์ผ๋ก ์ค์ ํ ์ ์๋ ์ต๋ ์ผ์๋ฅผ ์ง์ ํฉ๋๋ค. 1์์ 365 ์ฌ์ด์ ๊ฐ์ ์ง์ ํ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ ์ต๋ ๋ง๋ฃ ์๊ฐ์ 365์ผ์ ๋๋ค.
์ฐธ๊ณ
๋ง๋ฃ ์๊ฐ์ด ์๋ก์ด ์ต๋ ๋ง๋ฃ ์๊ฐ์ ์ด๊ณผํ๋ ๊ธฐ์กด ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์ ์ก์ธ์ค ํ ํฐ์ด ์๋ ๊ฒฝ์ฐ ํด๋น ํ ํฐ์ผ๋ก ์ธ์ฆํ๋ ค๋ ์๋๋ ์คํจํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ๋ง๋ฃ ์๊ฐ์ด 7์ผ์ธ
my_token
์ด๋ผ๋ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์ ์ก์ธ์ค ํ ํฐ์ ์์ฑํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ๋์ค์ ๋ชจ๋ ํ ํฐ์ ์ต๋ ๋ง๋ฃ ์๊ฐ์ 2์ผ๋ก ๋ณ๊ฒฝํ๋ ๊ฒฝ์ฐ ํ ํฐ์ ๋ง๋ฃ ์๊ฐ์ด ์ ์ต๋ ๋ง๋ฃ ์๊ฐ์ ์ด๊ณผํ๋ฏ๋กmy_token
์ผ๋ก ์ธ์ฆํ๋ ๋ฐ ์คํจํฉ๋๋ค.์์ธํ ๋ด์ฉ์ ์ต๋ ๋ง๋ฃ ์๊ฐ ์ค์ ํ๊ธฐ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
NETWORK_POLICY_EVALUATION = { ENFORCED_REQUIRED | ENFORCED_NOT_REQUIRED | NOT_ENFORCED }
ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์ ์ก์ธ์ค ํ ํฐ์ ๋ํ ๋คํธ์ํฌ ์ ์ฑ ์๊ตฌ ์ฌํญ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ง์ ํฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ์๋ ํ๋ ์ด์์ ๋คํธ์ํฌ ๊ท์น ์ด ์๋ ๋คํธ์ํฌ ์ ์ฑ ์ ๋ฐ๋ผ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์ ์ก์ธ์ค ํ ํฐ์ ์์ฑํ๊ฑฐ๋ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
์๋น์ค ์ฌ์ฉ์(TYPE = SERVICE)๋ ๋คํธ์ํฌ ์ ์ฑ ์ ๋ฐ๋ผ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์ ์ก์ธ์ค ํ ํฐ์ ์์ฑํ๊ณ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
์ธ๊ฐ ์ฌ์ฉ์(TYPE = PERSON)๋ ๋คํธ์ํฌ ์ ์ฑ ์ ๋ฐ๋ผ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์ ์ก์ธ์ค ํ ํฐ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
์ด ๋์์ ์ฌ์ ์ํ๋ ค๋ฉด ์ด ์์ฑ์ ๋ค์ ๊ฐ ์ค ํ๋๋ก ์ค์ ํฉ๋๋ค.
ENFORCED_REQUIRED
(๊ธฐ๋ณธ ๋์)์ฌ์ฉ์๋ ๋คํธ์ํฌ ์ ์ฑ ์ ๋ฐ๋ผ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์ ์ก์ธ์ค ํ ํฐ์ ์์ฑํ๊ณ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
์ฌ์ฉ์๊ฐ ๋คํธ์ํฌ ์ ์ฑ ์ ๋ฐ๋ผ์ผ ํ๋ ๊ฒฝ์ฐ ์ธ์ฆ ์ค์ ๋คํธ์ํฌ ์ ์ฑ ์ด ์ ์ฉ๋ฉ๋๋ค.
ENFORCED_NOT_REQUIRED
์ฌ์ฉ์๊ฐ ๋คํธ์ํฌ ์ ์ฑ ์ ๋ฐ๋ผ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์ ์ก์ธ์ค ํ ํฐ์ ์์ฑํ๊ณ ์ฌ์ฉํ ํ์๊ฐ ์์ต๋๋ค.
์ฌ์ฉ์๊ฐ ๋คํธ์ํฌ ์ ์ฑ ์ ๋ฐ๋ผ์ผ ํ๋ ๊ฒฝ์ฐ ์ธ์ฆ ์ค์ ๋คํธ์ํฌ ์ ์ฑ ์ด ์ ์ฉ๋ฉ๋๋ค.
NOT_ENFORCED
์ฌ์ฉ์๊ฐ ๋คํธ์ํฌ ์ ์ฑ ์ ๋ฐ๋ผ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์ ์ก์ธ์ค ํ ํฐ์ ์์ฑํ๊ณ ์ฌ์ฉํ ํ์๊ฐ ์์ต๋๋ค.
์ฌ์ฉ์๊ฐ ๋คํธ์ํฌ ์ ์ฑ ์ ๋ฐ๋ผ์ผ ํ๋ ๊ฒฝ์ฐ ์ธ์ฆ ์ค์๋ ๋คํธ์ํฌ ์ ์ฑ ์ด ์ ์ฉ๋์ง ์์ต๋๋ค.
์:
PAT_POLICY=( DEFAULT_EXPIRY_IN_DAYS=30 MAX_EXPIRY_IN_DAYS=365 NETWORK_POLICY_EVALUATION = ENFORCED_NOT_REQUIRED );
COMMENT = 'string_literal'
์ ์ฑ ์ ๋ํ ์ค๋ช ์ ์ง์ ํฉ๋๋ค.
์ก์ธ์ค ์ ์ด ์๊ตฌ ์ฌํญยถ
์ด ์์ ์ ์คํํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ญํ ์๋ ์ต์ํ ๋ค์ ๊ถํ ์ด ์์ด์ผ ํฉ๋๋ค.
๊ถํ |
์ค๋ธ์ ํธ |
์ฐธ๊ณ |
---|---|---|
CREATE AUTHENTICATION POLICY |
์คํค๋ง |
|
OWNERSHIP |
์ธ์ฆ ์ ์ฑ |
|
์คํค๋ง์ ๋ชจ๋ ์ค๋ธ์ ํธ์ ๋ํด ์์ ์ ์ํํ๋ ค๋ฉด ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ ์คํค๋ง์ ๋ํ USAGE ๊ถํ.
์ง์ ๋ ๊ถํ ์ธํธ๋ก ์ฌ์ฉ์ ์ง์ ์ญํ ์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ํ ์ง์นจ์ ์ฌ์ฉ์ ์ง์ ์ญํ ๋ง๋ค๊ธฐ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
๋ณด์ ์ค๋ธ์ ํธ ์ ๋ํด SQL ์์ ์ ์ํํ๊ธฐ ์ํ ์ญํ ๊ณผ ๊ถํ ๋ถ์ฌ์ ๋ํ ์ผ๋ฐ์ ์ธ ์ ๋ณด๋ ์ก์ธ์ค ์ ์ด์ ๊ฐ์ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
์ฌ์ฉ๋ฒ ๋ ธํธยถ
์ธ์ฆ ์ ์ฑ ์ ์์ฑํ ํ Snowflake๊ฐ ์ ์ฑ ์ ์ ์ฉํ๊ธฐ ์ ์ ALTER ACCOUNT ๋๋ ALTER USER ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ๊ณ์ ์ด๋ ์ฌ์ฉ์์ ์ด๋ฅผ ์ค์ ํด์ผ ํฉ๋๋ค.
๊ธฐ์กด ์ธ์ฆ ์ ์ฑ ์ ์ ๋ฐ์ดํธํ๊ณ ์ ์ฑ ์ ์ ์๋ฅผ ํ์ธํด์ผ ํ ๊ฒฝ์ฐ DESCRIBE AUTHENTICATION POLICY ๋ช ๋ น ๋๋ GET_DDL ํจ์๋ฅผ ์คํํ์ญ์์ค.
OR REPLACE
๋ฐIF NOT EXISTS
์ ์ ์ํธ ๋ฐฐํ์ ์ ๋๋ค. ๋ ๋ฌธ์๋ฅผ ๊ฐ์ ๋ฌธ์ ํจ๊ป ์ฌ์ฉํ ์ ์์ต๋๋ค.CREATE OR REPLACE <์ค๋ธ์ ํธ> ๋ฌธ์ ์์์ฑ์ ๋๋ค. ์ฆ, ์ค๋ธ์ ํธ๊ฐ ๋ฐ๋ ๋ ๋จ์ผ ํธ๋์ญ์ ์ผ๋ก ์ด์ ์ค๋ธ์ ํธ๊ฐ ์ญ์ ๋๊ณ ์ ์ค๋ธ์ ํธ๊ฐ ์์ฑ๋ฉ๋๋ค.
์ยถ
Snowsight ๋๋ Classic Console ์ ํตํด์๋ง ์ก์ธ์ค๋ฅผ ํ์ฉํ๋ restrict_client_types_policy
๋ผ๋ ์ธ์ฆ ์ ์ฑ
์ ๋ง๋ญ๋๋ค.
CREATE AUTHENTICATION POLICY restrict_client_types_policy
CLIENT_TYPES = ('SNOWFLAKE_UI')
COMMENT = 'Auth policy that only allows access through the web interface';
๋ค๋จ๊ณ ์ธ์ฆ์ ์ค์ ํ๊ณ ํด๋ผ์ด์ธํธ ๋ชฉ๋ก์ ์ ๋ฐ์ดํธํฉ๋๋ค.
CREATE OR ALTER AUTHENTICATION POLICY restrict_client_types_policy
MFA_ENROLLMENT = REQUIRED
MFA_AUTHENTICATION_METHODS = ('PASSWORD', 'SAML')
CLIENT_TYPES = ('SNOWFLAKE_UI', 'SNOWFLAKE_CLI');
๋ ๋ง์ ์๋ ์ธ์ฆ ์ ์ฑ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.