セッションポリシーの使用¶
このトピックでは、セッションポリシーの使用方法の例を示します。
標準セッションポリシー¶
以下の手順は、セッションポリシーを作成し、アカウントまたはユーザーにセッションポリシーを設定するための代表的なガイドです。
これらのステップは、 policy_admin という名前のカスタムロールがセッションポリシーを所有し(つまり、セッションポリシーに対する OWNERSHIP 権限を持っている)、アカウントまたはユーザーにセッションポリシーを設定する責任がある(つまり、 ACCOUNT 権限または APPLY SESSION POLICY ON USER 権限の APPLY SESSION POLICY)ことを前提としています。
注釈
アカウントにポリシーを設定するには、 policy_admin カスタムロールに次の権限が必要です。
セッションポリシーを含むデータベースとスキーマの USAGE。
セッションポリシーを含むスキーマの CREATE SESSION POLICY。
次のステップに従って、セッションポリシーを実装します。
ユーザーがセッションポリシーを作成および管理できるようにするカスタムロールを作成します。この例では、カスタムロールは
policy_adminですが、ロールには適切な名前を付けることができます。カスタムロールがすでに存在する場合は、次のステップに進みます。
それ以外の場合は、
policy_adminカスタムロールを作成します。カスタムロールに権限を付与します。
policy_adminカスタムロールに次の権限がまだない場合は、以下に示すようにこれらの権限を付与します。USAGE セッションポリシーを含むデータベースとスキーマ。
セッションポリシーを含むスキーマの CREATE SESSION POLICY。
アカウントの APPLY SESSION POLICY。
ユーザーレベルでセッションポリシーを設定する場合は、各ユーザーの APPLY SESSION POLICY。
セッションポリシーを個々のユーザーに関連付ける場合、
詳細については、 コマンド、操作、および権限の概要 をご参照ください。
新しいセッションポリシーを作成します。
詳細については、 CREATE SESSION POLICY をご参照ください。
ALTER ACCOUNT コマンドでアカウントを、 ALTER USER コマンドでユーザーをセッションポリシーに設定します。
重要
アカウントまたはユーザーにすでに設定されているセッションポリシーを置き換えるには、最初にセッションポリシーの設定を解除してから、アカウントまたはユーザーに新しいセッションポリシーを設定します。例:
セッションポリシーでセカンダリロールを指定する¶
以下のセクションでは、セッションポリシーでセカンダリロールを指定する方法について詳しく説明します。
セッションポリシーにおけるセカンダリロールの詳細については、 セッションポリシーにおけるセカンダリロール を参照してください
セッションポリシーにプロパティを設定する¶
セキュリティ管理者は、新しいセッションポリシーを作成するか、既存のセッションポリシーを変更して、 ALLOWED_SECONDARY_ROLES プロパティを設定することができます。例:
すべてのセカンダリロールを許可する新しいセッションポリシーを作成します。
セカンダリロールを許可しないように、既存のセッションポリシーを変更します。
ALTER SESSION POLICY コマンドは、そのプロパティがすでに設定されている場合、そのプロパティ値を変更することができます。
構文の詳細については、 セッションポリシーの管理 を参照してください。
ALLOWED_SECONDARY_ROLES プロパティの値を表示するには、 DESCRIBE SESSION POLICY コマンドを使用するか、 GET_DDL 関数を呼び出します。
セッションポリシーのプロパティの設定を解除する¶
ALTER SESSION POLICY コマンドを使用して、セッションポリシーのセカンダリロールを設定解除することができます。
アカウント内のすべてのユーザーに対してセカンダリロールを許可しない¶
アカウント内のすべてのユーザーがセカンダリロールを使用できないようにするには、アカウントにセッションポリシーを設定し、そのセッションでセカンダリロールを使用できないようにします。例:
セカンダリロールを許可しないようにセッションポリシーを変更します。
アカウントにセッションポリシーを割り当てます。
ユーザーが USE SECONDARY ROLES analyst; のような USE SECONDARY ROLES コマンドでセカンダリロールをアクティブにしようとすると、以下のエラーメッセージが発生します。
特定のユーザーに対してセカンダリロールを許可しない¶
特定のユーザーにセカンダリロールの使用を許可しないようにするには、そのセッションでセカンダリロールを許可しないセッションポリシーをユーザーに設定します。例えば、そのセッションポリシーがすでに存在する場合は次のようになります。
アカウントにセッションポリシーが設定されている場合、ユーザーに割り当てられたセッションポリシーは、アカウントのセッションポリシーを上書きします。
ユーザーが USE SECONDARY ROLES コマンドを実行してセカンダリロール(USE SECONDARY ROLES (ANALYST, DATA_SCIENTIST); など)をアクティブにすると、以下のエラーメッセージが表示されます。
ユーザーに特定のセカンダリロールの使用を許可する¶
ユーザーが特定のセカンダリロールを使用できるようにするには、以下を実行します。
ユーザーが使用できるセカンダリロールを指定するセッションポリシーを作成します。
ユーザーにセッションポリシーを設定します。
ユーザーは必要に応じて、 USE SECONDARY ROLES コマンドでセカンダリロールをアクティブにすることができます。例:
すべてのセカンダリロールをアクティブにします。
DATA_SCIENTISTをセカンダリロールとしてアクティブにします。
構文の詳細については、 USE SECONDARY ROLES を参照してください。
セッションポリシーをターゲットアカウントに複製する¶
セッションポリシーとその参照(ユーザーまたはアカウントへの割り当て)は、データベースの複製とアカウントの複製を使用して、ソースアカウントからターゲットアカウントに複製できます。詳細については、以下をご参照ください。
セカンダリロールを指定するセッションポリシーの複製に関する詳細は、 セカンダリロールを持つセッションポリシーの複製 を参照してください。