Amazon Redshift non supporterà più la creazione di nuovi Python a UDFs partire dal 1° novembre 2025. Se vuoi usare Python UDFs, crea la UDFs data precedente a quella data. Python esistente UDFs continuerà a funzionare normalmente. Per ulteriori informazioni, consulta il post del blog
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Gestione del controllo degli accessi nel catalogo di autorizzazioni federate di Amazon Redshift
Con le autorizzazioni federate di Amazon Redshift, gli utenti possono definire controlli di accesso sia a grana grossa che a grana fine da qualsiasi magazzino Redshift nel. Account AWS Le autorizzazioni granulari gestiscono l'accesso a tabelle, viste e oggetti del database, incluse le autorizzazioni con ambito, mentre i controlli granulari consentono privilegi a livello di colonna e l'applicazione di politiche di sicurezza come la sicurezza a livello di riga (RLS) e il mascheramento dinamico dei dati (DDM).
Concedi/Revoca
Con le autorizzazioni federate, puoi definire le autorizzazioni per gli accessi a livello di tabella, come l'accesso alla lettura e alla scrittura di dati in tabelle e viste nel database Redshift Federated Permissions da qualsiasi magazzino Redshift.
GRANT SELECT ON "sales_db@finance-catalog".sales_schema.sales_table TO "IAMR:sales_analyst"; GRANT INSERT ON "sales_db@finance-catalog".sales_schema.sales_view TO "IAMR:sales_data_engineer"; REVOKE UPDATE ON "sales_db@finance-catalog".sales_schema.us_sales_view FROM "IAMR:us_sales_analyst"; REVOKE DELETE ON "sales_db@finance-catalog".sales_schema.us_sales_view FROM "IAMR:us_sales_analyst";
Le autorizzazioni federate di Amazon Redshift supportano le autorizzazioni mirate per consentire di concedere o revocare autorizzazioni su tutti gli oggetti di un tipo all'interno di un database o di uno schema.
GRANT SELECT FOR TABLES IN SCHEMA "sales_db@finance-catalog".sales_schema TO "IAMR:sales_manager"; REVOKE UPDATE FOR TABLES IN SCHEMA sales_schmea DATABASE "sales_db@finance-catalog" FROM "IAMR:sales_analyst";
Puoi definire la concessione o la revoca delle autorizzazioni di accesso al database.
GRANT CREATE ON DATABASE "sales_db@finance-catalog" TO "IAMR:sales_admin"; REVOKE TEMP ON DATABASE "sales_db@finance-catalog" FROM "IAMR:sales_analyst";
Per ulteriori informazioni sulla sintassi di concessione supportata dalle autorizzazioni federate di Amazon Redshift, consulta. Autorizzazioni che puoi concedere sul catalogo di autorizzazioni federate di Amazon Redshift
Controllo granulare degli accessi
Puoi definire un controllo granulare degli accessi sui dati sensibili utilizzando il controllo degli accessi a livello di colonna, la sicurezza a livello di riga (RLS) e il mascheramento dinamico dei dati (DDM) in un database con autorizzazioni federative di Amazon Redshift. Il controllo degli accessi a livello di colonna consente di definire privilegi di accesso a livello di colonna più dettagliati su tabelle e viste. I superutenti e gli utenti o i ruoli con il sys:secadmin ruolo nel database possono creare politiche RLS e DDM, associare queste politiche a relazioni specifiche e abilitare RLS su una relazione.
Controllo degli accessi a livello di colonna:
È possibile concedere o revocare privilegi specifici su singole colonne di una tabella o di una vista.
GRANT SELECT ON "sales_db@finance-catalog".sales_schema.sales_table(order_number, sales_date, purchase_amount, sale_amount) TO "IAMR:sales_revenue_analyst"; REVOKE UPDATE ON "sales_db@finance-catalog".sales_schema.us_sales_view(order_number, sales_date, purchase_amount, sale_amount) FROM "IAMR:sales_revenue_analyst";
Sicurezza a livello di riga (RLS):
È possibile attivare o disattivare la sicurezza a livello di riga per una relazione.
ALTER TABLE "sales_db@finance-catalog".sales_schema.sales_table ROW LEVEL SECURITY ON;
È possibile creare, modificare, eliminare la politica RLS sul database.
-- Create an RLS policy CREATE RLS POLICY "sales_db@finance-catalog".policy_america WITH (region VARCHAR(10)) USING (region = 'USA'); -- Alter an RLS policy ALTER RLS POLICY "sales_db@finance-catalog".policy_america USING (region IN ('USA', 'CANADA', 'Mexico')); -- Drop an RLS policy DROP RLS POLICY "sales_db@finance-catalog".policy_america;
È possibile allegare o scollegare una politica RLS su una relazione.
-- Attach an RLS policy ATTACH RLS POLICY "sales_db@finance-catalog".policy_america ON "sales_db@finance-catalog".sales_schema.sales_table TO "IAMR:america_sales_analyst"; -- Detach an RLS policy DETACH RLS POLICY "sales_db@finance-catalog".policy_america ON "sales_db@finance-catalog".sales_schema.sales_view_america FROM "IAMR:global_sales_analyst";
Mascheramento dinamico dei dati (DDM):
È possibile creare, modificare ed eliminare la politica di mascheramento sul database.
-- Create a masking policy CREATE MASKING POLICY "sales_db@finance-catalog".hash_credit WITH (credit_card varchar(256)) USING (sha2(credit_card + 'testSalt', 256)); -- Alter an masking policy ALTER MASKING POLICY "sales_db@finance-catalog".hash_credit USING (sha2(credit_card + 'otherTestSalt', 256)); -- Drop an masking policy DROP MASKING POLICY "sales_db@finance-catalog".hash_credit;
È possibile allegare o scollegare una politica di mascheramento su una relazione.
-- Attach a masking policy ATTACH MASKING POLICY hash_credit ON "sales_db@finance-catalog".sales_schema.transaction_table (credit_card) TO "IAMR:sales_analyst" PRIORITY 30; -- Detach a masking policy DETACH MASKING POLICY hash_credit ON "sales_db@finance-catalog".sales_schema.transaction_view (credit_card) FROM "IAMR:transaction_analyst";
Un superutente o un utente con il sys:secadmin privilegio può visualizzare le politiche RLS e DDM, nonché i relativi allegati, su una relazione con autorizzazioni federate, utilizzando il comando. MOSTRA LE POLITICHE
Nota
-
Le funzioni definite dall'utente (UDF) nelle definizioni delle policy RLS e DDM non sono supportate con le autorizzazioni federate di Amazon Redshift.
-
Le funzioni SQL di Redshift user_is_member_of, role_is_member_of, user_is_member_of_role non sono supportate con le autorizzazioni federate di Amazon Redshift.
Autorizzazioni che puoi concedere sul catalogo di autorizzazioni federate di Amazon Redshift
Istruzioni SQL per supportare la gestione delle autorizzazioni sui database con autorizzazione federata Amazon Redshift su risorse a diversi livelli di granularità. La sintassi supporta sia i riferimenti alle tabelle locali (quando è connessa al database contenente la risorsa o quando il database di origine è in USE) sia i riferimenti interdatabase completamente qualificati.
Nota
-
usernamepuò fare riferimento a un utente IAM, a un ruolo IAM o a un utente IDC ()AWS IAM Identity Center. -
role_namepuò fare riferimento a un gruppo IdC. I gruppi IAM non sono supportati.
Autorizzazioni granulari
GRANT { SELECT | INSERT | UPDATE | DELETE | TRUNCATE} ON [ TABLE ] { table_name | database@catalog.schema_name.table_name } TO { username | ROLE role_name | PUBLIC } REVOKE { SELECT | INSERT | UPDATE | DELETE | TRUNCATE } ON [ TABLE ] { table_name | database@catalog.schema_name.table_name } FROM { username | ROLE role_name | PUBLIC }
Privilegi a livello di colonna
GRANT { { SELECT | UPDATE | DELETE } ( column_name [, ...] ) [, ...] | ALL [ PRIVILEGES ] ( column_name [,...] ) } ON { table_name | database@catalog.schema_name.table_name } TO { username | ROLE role_name | PUBLIC } REVOKE { { SELECT | UPDATE | DELETE } ( column_name [, ...] ) [, ...] | ALL [ PRIVILEGES ] ( column_name [,...] ) } ON { table_name | database@catalog.schema_name.table_name } FROM { username | ROLE role_name | PUBLIC }
Autorizzazioni con ambito
GRANT { CREATE | USAGE | ALTER | DROP } [,...] | ALL [ PRIVILEGES ] } FOR SCHEMAS IN DATABASEdatabase@catalogTO {username[ WITH GRANT OPTION ] | ROLErole_name} [, ...] GRANT { { SELECT | INSERT | UPDATE | DELETE | DROP | ALTER | TRUNCATE | REFERENCES } [, ...] } | ALL [ PRIVILEGES ] } } FOR TABLES IN { SCHEMAschema_name[DATABASEdatabase@catalog] | DATABASEdatabase@catalog} TO {username[ WITH GRANT OPTION ] | ROLErole_name} [, ...] REVOKE [ GRANT OPTION ] { CREATE | USAGE | ALTER | DROP } [,...] | ALL [ PRIVILEGES ] } FOR SCHEMAS IN DATABASEdatabase@catalogFROM {username| ROLErole_name} [, ...] REVOKE [ GRANT OPTION ] { { SELECT | INSERT | UPDATE | DELETE | DROP | ALTER | TRUNCATE | REFERENCES } [, ...] } | ALL [ PRIVILEGES ] } } FOR TABLES IN { SCHEMAschema_name[ DATABASEdatabase@catalog] | DATABASEdatabase@catalog} FROM {username| ROLErole_name} [, ...]