このトピックでは、ポリシーベースのアクセス制御およびダウンロード制御機能の使用方法について説明します。
GRANT 文を使用したポリシーベースのアクセス制御
ポリシーベースのアクセス制御と権限の取り消しの構文:
GRANT [privileges] ON <objectType> <objectName> to role <rolename> privilegeproperties("policy" = "true", "allow"="[true|false]", "conditions"= "acs:SourceIp in ('192.168.0.0/16','172.12.0.0/16') and 'odps:InstanceId'='aaaaaa'");
REVOKE [privileges] ON <objectType> <objectName> from role <rolename> privilegeproperties ("policy" = "true", "allow"="[true|false]");
説明
- ポリシーベースのアクセス制御を使用してロールのみに権限を付与できます。
- privilegeproperties パラメーターの
{"policy" = "true"}
フィールドは、ポリシーベースのアクセス制御が使用されることを示します。 - privilegeproperties パラメーターの
{"allow"="[true|false]"}
フィールドは、権限付与の有無を指定します。 権限を禁止するには{"deny"="[true|false]"}
フィールドを使用します。 - 権限を取り消すことができるのは、 REVOKE 文の allow、objectName、 rolename が権限で指定されたものと同一である場合のみです。
例:
- 例 1
aliyun_test ロールに dataworks_test プロジェクトの読み取り専用の権限を付与します。
grant Read on project dataworks_test to role aliyun_test privilegeproperties("policy" = "true", "allow"="true");
- 例 2
aliyun_test ロールに MaxCompute プロジェクトのすべてのテーブルに対する読み取り専用権限を付与します。
grant Select on table * to role aliyun_test privilegeproperties("policy" = "true", "allow"="true");
- 例 3
aliyun_test ロールを無効化して MaxCompute プロジェクトのすべてのテーブルを削除します。
grant Drop on table * to role aliyun_test privilegeproperties("policy" = "true", "allow"="false");
ダウンロード制御
トンネルベースのデータダウンロードを制御するために、権限モデルにダウンロード制御が提供されています。 トンネルを使用してデータをダウンロードするには、ダウンロード権限が必要です。
構文:
grant download on <objectType> <objectName> to [role|user] <name>;
説明
- プロジェクトオーナーまたは Super_Administrator ロールを付与されているユーザーのみが、ダウンロード権限を付与できます。
- テーブルリソースのダウンロード権限のみが付与可能です。