Gestion du contrôle d'accès sur le catalogue d'autorisations fédérées Amazon Redshift - Amazon Redshift

Amazon Redshift ne prendra plus en charge la création de nouveaux Python UDFs à compter du 1er novembre 2025. Si vous souhaitez utiliser Python UDFs, créez la version UDFs antérieure à cette date. Le Python existant UDFs continuera à fonctionner normalement. Pour plus d’informations, consultez le billet de blog .

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Gestion du contrôle d'accès sur le catalogue d'autorisations fédérées Amazon Redshift

Grâce aux autorisations fédérées Amazon Redshift, les utilisateurs peuvent définir des contrôles d'accès grossiers et précis depuis n'importe quel entrepôt Redshift du. Compte AWS Les autorisations générales gèrent l'accès aux tables, aux vues et aux objets de base de données, y compris les autorisations étendues, tandis que les contrôles précis autorisent des privilèges au niveau des colonnes et l'application de politiques de sécurité telles que la sécurité au niveau des lignes (RLS) et le masquage dynamique des données (DDM).

Accorder/Révoquer

Avec les autorisations fédérées, vous pouvez définir des autorisations sur les accès au niveau des tables, telles que l'accès à la lecture et à l'écriture de données dans des tables et à des vues dans la base de données Redshift Federated Permissions depuis n'importe quel entrepôt 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";

Les autorisations fédérées Amazon Redshift prennent en charge les autorisations étendues pour vous permettre d'accorder ou de révoquer des autorisations sur tous les objets d'un type au sein d'une base de données ou d'un schéma.

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

Vous pouvez définir les autorisations d'accès accorder/révoquer sur la base de données.

GRANT CREATE ON DATABASE "sales_db@finance-catalog" TO "IAMR:sales_admin"; REVOKE TEMP ON DATABASE "sales_db@finance-catalog" FROM "IAMR:sales_analyst";

Pour plus d'informations sur la syntaxe prise en charge par les autorisations fédérées Amazon Redshift pour l'octroi, consultez. Autorisations que vous pouvez accorder sur le catalogue d'autorisations fédérées Amazon Redshift

Contrôle précis des accès

Vous pouvez définir un contrôle d'accès précis pour les données sensibles à l'aide du contrôle d'accès au niveau des colonnes, de la sécurité au niveau des lignes (RLS) et du masquage dynamique des données (DDM) dans une base de données avec les autorisations de fédération Amazon Redshift. Le contrôle d'accès au niveau des colonnes permet de définir des privilèges d'accès plus précis au niveau des colonnes sur les tables et les vues. Les superutilisateurs et les utilisateurs ou rôles dotés du sys:secadmin rôle dans la base de données peuvent créer des politiques RLS et DDM, associer ces politiques à des relations spécifiques et activer le RLS sur une relation.

Contrôle d'accès au niveau des colonnes :

Vous pouvez accorder ou révoquer des privilèges spécifiques sur des colonnes individuelles d'une table ou d'une vue.

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

Sécurité au niveau des lignes (RLS) :

Vous pouvez activer ou désactiver la sécurité au niveau des lignes pour une relation.

ALTER TABLE "sales_db@finance-catalog".sales_schema.sales_table ROW LEVEL SECURITY ON;

Vous pouvez créer, modifier ou supprimer une politique RLS sur la base de données.

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

Vous pouvez associer ou détacher une politique RLS à une relation.

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

Masquage dynamique des données (DDM) :

Vous pouvez créer, modifier ou supprimer une politique de masquage dans la base de données.

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

Vous pouvez joindre ou détacher une politique de masquage à une relation.

-- 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 superutilisateur ou un utilisateur disposant du sys:secadmin privilège peut consulter les politiques RLS et DDM, ainsi que leurs pièces jointes dans le cadre d'une relation avec des autorisations fédérées, à l'aide de la commande. AFFICHER LES POLITIQUES

Note
  • Fonctions définies par l'utilisateur (UDF) dans RLS, les définitions de politiques DDM ne sont pas prises en charge par les autorisations fédérées Amazon Redshift.

  • Les fonctions SQL Redshift user_is_member_of, role_is_member_of, user_is_member_of_role ne sont pas prises en charge par les autorisations fédérées Amazon Redshift.

Autorisations que vous pouvez accorder sur le catalogue d'autorisations fédérées Amazon Redshift

Instructions SQL pour prendre en charge la gestion des autorisations sur la base de données avec les autorisations fédérées Amazon Redshift sur les ressources à différents niveaux de granularité. La syntaxe prend en charge à la fois les références de table locales (lorsqu'elles sont connectées à la base de données contenant la ressource ou lorsque la base de données source est en mode USE) et les références interbases de données complètes.

Remarque

  • usernamepeut faire référence à un utilisateur IAM, à un rôle IAM ou à un utilisateur iDC ()AWS IAM Identity Center.

  • role_namepeut faire référence à un groupe iDC. Les groupes IAM ne sont pas pris en charge.

Autorisations grossières

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 }

Privilèges au niveau des colonnes

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 }

Autorisations délimitées

GRANT { CREATE | USAGE | ALTER | DROP } [,...] | ALL [ PRIVILEGES ] } FOR SCHEMAS IN DATABASE database@catalog TO { username [ WITH GRANT OPTION ] | ROLE role_name } [, ...] GRANT { { SELECT | INSERT | UPDATE | DELETE | DROP | ALTER | TRUNCATE | REFERENCES } [, ...] } | ALL [ PRIVILEGES ] } } FOR TABLES IN { SCHEMA schema_name [DATABASE database@catalog ] | DATABASE database@catalog } TO { username [ WITH GRANT OPTION ] | ROLE role_name } [, ...] REVOKE [ GRANT OPTION ] { CREATE | USAGE | ALTER | DROP } [,...] | ALL [ PRIVILEGES ] } FOR SCHEMAS IN DATABASE database@catalog FROM { username | ROLE role_name } [, ...] REVOKE [ GRANT OPTION ] { { SELECT | INSERT | UPDATE | DELETE | DROP | ALTER | TRUNCATE | REFERENCES } [, ...] } | ALL [ PRIVILEGES ] } } FOR TABLES IN { SCHEMA schema_name [ DATABASE database@catalog ] | DATABASE database@catalog } FROM { username | ROLE role_name } [, ...]