職務の分離の実施
職務の分離機能を使用して、他のCQLコマンドの実行権限のない、パーミッション管理の管理者ロールを構成します。
職務の分離機能を使用して、他のCQLコマンドの実行権限のない、パーミッション管理の管理者ロールを構成します。
パーミッション管理権限の割り当て
AUTHORIZE
granted is true(付与されたのは真実) - リソースに付与されたパーミッションを管理します。このロールでは、ユーザーはパーミッションに対応するCQLコマンドを実行することもできます。たとえば、all keyspaces
リソースで承認と選択の両方を持つadmin
ロールです。GRANT AUTHORIZE, SELECT ON ALL KEYSPACES TO admin;
そのロールを持つユーザーは、独自のロールを含む他のロールに対するAUTHORIZEとSELECTの両方のパーミッションをGRANTおよびREVOKEできます。LIST ALL PERMISSIONS OF admin;
role | username | resource | permission | granted | restricted | grantable -------+----------+-----------------+------------+---------+------------+----------- admin | dbadmin | <all keyspaces> | SELECT | True | False | False admin | dbadmin | <all keyspaces> | AUTHORIZE | True | False | False
- grantable is true for a permission(パーミッションに付与可能は真実) - 割り当てられていない、他のロールに対して指定されたパーミッションのみを管理します。関連するコマンドは、付与されたのが真実の場合も、実行可能です。 たとえば、
sec_admin
が他のロールに対するパーミッションをGRANTおよびREVOKEできるようにし、すべてのキースペース内のデータにアクセスしないようにするには、次のようにします。GRANT AUTHORIZE FOR CREATE, ALTER, DROP, SELECT, MODIFY, DESCRIBE ON ALL KEYSPACES TO sec_admin;
パーミッションが、以下であることを確認します。LIST ALL PERMISSIONS OF sec_admin;
Granted(付与済み)がfalseで、grantable(付与可能)がtrueである。role | username | resource | permission | granted | restricted | grantable -----------+------------+-----------------+------------+---------+------------+----------- sec_admin | sec_admin | <all keyspaces> | CREATE | False | False | True sec_admin | sec_admin | <all keyspaces> | ALTER | False | False | True sec_admin | sec_admin | <all keyspaces> | DROP | False | False | True sec_admin | sec_admin | <all keyspaces> | SELECT | False | False | True sec_admin | sec_admin | <all keyspaces> | MODIFY | False | False | True sec_admin | sec_admin | <all keyspaces> | DESCRIBE | False | False | True
- 新しいロールを作成するには、ALL ROLESにCREATEパーミッションが付与される必要があります。
- GRANT/REVOKEには、リソースに対するパーミッションが付与可能であることが必要です(
AUTHORIZE FOR permission_name
)。 - ユーザーは、自身のロール・プロパティのLOGINおよびSUPERUSERを変更することはできません。ALTERパーミッションを持つユーザーが、自身のアカウントをSUPERUSERにしたり、より上位のパーミッションを持つロールを作成したりすることはできません。
構文の承認
GRANTおよびREVOKEできるようにします。
GRANT AUTHORIZE ON (ALL KEYSPACES | TABLE table_name | 'filter_string' ROWS IN table_name) TO role_name;
- リストされたパーミッションのみ。
GRANT AUTHORIZE FOR permission_list ON resource_name TO role_name;
タイプ | パーミッション | リソース |
---|---|---|
データ |
|
|
関数 |
ALL FUNCTIONS ALL FUNCTIONS IN KEYSPACE keyspace_name FUNCTION function_name ( argument_types ) |
|
検索インデックス |
SEARCH.ALTER SEARCH.COMMIT SEARCH.CREATE SEARCH.DROP SEARCH.REBUILD SEARCH.RELOAD |
ALL SEARCH INDICES SEARCH INDEX [keyspace_name.]table_name |
ロール |
ALTER CREATE DESCRIBE DROP |
ALL ROLES ROLE role_name |
プロキシ・ロール | PROXY.EXECUTE PROXY.LOGIN |
ROLE role_name |
認証スキーム | EXECUTE | ALL AUTHENTICATION SCHEMES LDAP SCHEME KERBEROS SCHEME INTERNAL SCHEME |
MBean | DESCRIBE、EXECUTE、MODIFY、およびSELECT | ALL MBEANS > MBEANS pattern > MBEAN name |
Sparkアプリケーション |
CREATE DESCRIBE |
ANY WORKPOOL > WORKPOOL datacenter_name |
MODIFY DESCRIBE |
ANY SUBMISSION ANY SUBMISSION IN WORKPOOL datacenter_name SUBMISSION id IN WORKPOOL datacenter_name |
|
リモート・コール | EXECUTE | ALL REMOTE CALLS > REMOTE OBJECT object_name > REMOTE METHOD object_name.method_name |
ロール管理パーミッションの委任
-
AUTHORIZEがロールに付与されると、ターゲット・ロールは、リソースに対するパーミッションを他のロール(それ自体を含む)に委任できます。
GRANT AUTHORIZE ON ALL ROLES TO role_name;
このパーミッションは、ロールのパーミッションがリストされたときにgranted(付与済み)として表示されます。ヒント:ALL PERMISSIONS
が付与されると、そのロールは、それ自体を含むすべてのロールに対するすべてのパーミッションをGRANTおよびREVOKEする権限を持ちます。 - ROLE
GRANT permission[, permission ...] ON ROLE role_name TO role_name;
ここで、パーミッションは、ALL PERMISSIONS、ALTER、AUTHORIZE、CREATE、DESCRIBE、およびDROPです
パーミッション | リソース | |
---|---|---|
AUTHORIZE | ALL ROLES | 発行元ロールが付与されたそのロールのパーミッションをGRANTおよびREVOKEします。 |
AUTHORIZE FOR permission_list | ALL ROLES | リストされたパーミッションをGRANTおよびREVOKEします。 |
AUTHORIZE | ROLE name | 発行元ロールが付与されたそのロールのパーミッションをGRANTおよびREVOKEします。 |
AUTHORIZE FOR permission_list | ROLE name | リストされたパーミッションをGRANTおよびREVOKEします。 |
リソース管理パーミッションの委任
- 認証スキーム
-
- ロールを管理する管理者に権限を委任します。
GRANT AUTHORIZE [FOR EXECUTE] ON (ALL AUTHETNICATION SCHEMES | LDAP SCHEME | KERBEROS SCHEME | INTERNAL SCHEME) TO role_name;
- AUTHORIZE - AUTHORIZEパーミッションをロールが委任できるようにします。さらにEXECUTEも付与されている場合、このロールは実行パーミッションを委任できます。
- AUTHORIZE FOR EXECUTE - 独自のログイン・スキームを変更せずに、他のどのロールがスキーマ・パーミッションを割り当てることができるかをロールが委任できるようにします。
- ロールを管理する管理者に権限を委任します。
アクセスの管理
オブジェクトに対するパーミッションを管理できるロールを設定します。
アクセス許可なしでオブジェクトに対するパーミッションを管理できるロールを設定します。
手順
-
ロールを作成します。たとえば、
securty_admin
です。CREATE ROLE security_admin;
-
そのロールにロールの管理を許可します:
GRANT ALTER, CREATE, DROP, DESCRIBE ON ALL ROLES TO security_admin;
-
アクセス権を持たないすべてのパーミッションに対して承認を許可します。
- データ・リソース
AUTHORIZE、CREATE、ALTER、DROP、SELECT、MODIFY、およびDESCRIBEパーミッションを他のロールに付与するロールを許可します。GRANT AUTHORIZE FOR ALL PERMISSIONS ON ALL KEYSPACES TO security_admin;
- 関数と集計リソース
AUTHORIZE、CREATE、ALTER、DROP、およびEXECUTEパーミッションを他のロールに付与するロールを許可します。GRANT AUTHORIZE FOR ALL PERMISSIONS ON ALL FUNCTIONS TO security_admin;
- 検索インデックス
AUTHORIZE、SEARCH.CREATE、SEARCH.ALTER、SEARCH.DROP、SEARCH.RELOAD、SEARCH.REBUILD、およびSEARCH.COMMITを他のロールに付与するロールを許可します。GRANT AUTHORIZE FOR ALL PERMISSIONS ON ALL SEARCH INDICES TO security_admin;
- ロール
AUTHORIZE、CREATE、ALTER、DROP、およびDESCRIBEパーミッションを他のロールに付与するロールを許可します。GRANT AUTHORIZE FOR ALL PERMISSIONS ON ALL ROLES TO security_admin;
- 認証スキームのリソース
AUTHORIZE、およびEXECUTEパーミッションを他のロールに付与するロールを許可します。GRANT AUTHORIZE FOR ALL PERMISSIONS ON ALL AUTHENTICATION SCHEMES TO security_admin;
- DSEユーティリティのJMXリソース(MBean)
SELECT、MODIFY、AUTHORIZE、DESCRIBE、およびEXECUTEパーミッションを他のロールに付与するロールを許可します。GRANT AUTHORIZE FOR ALL PERMISSIONS ON ALL MBEANS TO security_admin;
- 分析アプリケーション
- ワークプール
CREATE、DESCRIBE、およびAUTHORIZEパーミッションを他のロールに付与するロールを許可します。GRANT AUTHORIZE FOR ALL PERMISSIONS ON ANY WORKPOOL TO security_admin;
- 送信
MODIFY、DESCRIBE、およびAUTHORIZEパーミッションを他のロールに付与するロールを許可します。GRANT AUTHORIZE FOR ALL PERMISSIONS ON ANY SUBMISSION TO security_admin;
- ワークプール
- リモート・プロシージャー・コール
GRANT AUTHORIZE FOR ALL PERMISSIONS ON ALL REMOTE CALLS TO security_admin;
- データ・リソース
-
ロール管理モードに応じてロールを割り当てます。
- Internal - GRANTコマンドを使用して、ログインまたは別のグループ・ロールにロールを割り当てます。
GRANT security_admin TO login_role_name;
- LDAP - 一致するCN(securty_admin)を持つグループ・オブジェクトを作成し、ユーザーをグループのメンバーとして割り当てます。
- Internal - GRANTコマンドを使用して、ログインまたは別のグループ・ロールにロールを割り当てます。