为指定表设置资源策略(Resource Policy),实现表级别的访问控制。
注意事项
--resource-policy参数接受JSON格式的策略字符串,策略结构遵循阿里云资源策略规范,包含Version、Statement等字段。
设置新的策略会覆盖该表已有的策略。如需在现有策略基础上修改,请先通过get-table-policy命令获取当前策略,修改后再设置。
JSON字符串可以直接通过命令行传入,也可以使用
file://前缀从本地文件读取策略内容。
命令格式
ossutil tables-api put-table-policy --table-bucket-arn value --namespace value --name value --resource-policy value [flags]
参数 | 类型 | 说明 |
--name | string | 表名称。必选参数。 |
--namespace | string | 表所属的命名空间名称。必选参数。 |
--resource-policy | string | 资源策略JSON字符串。支持直接传入JSON字符串或通过 |
--table-bucket-arn | string | Table Bucket的ARN,格式为 |
说明
put-table-policy命令对应API接口PutTablePolicy。关于API中的具体参数含义,请参见PutTablePolicy。
关于支持的全局命令行选项,请参见ossutil全局选项。
使用示例
通过命令行直接传入JSON字符串,为表设置允许指定账号读取表信息和元数据位置的资源策略。
ossutil tables-api put-table-policy --table-bucket-arn acs:osstables:cn-hangzhou:1234567890:bucket/my-table-bucket --namespace my_namespace --name my_table --resource-policy '{"Version":"1","Statement":[{"Effect":"Allow","Principal":["acs:ram::9876543210:root"],"Action":["osstables:GetTable","osstables:GetTableMetadataLocation"],"Resource":["acs:osstables:cn-hangzhou:1234567890:bucket/my-table-bucket/namespace/my_namespace/table/my_table"]}]}'通过本地文件传入策略JSON,使用
file://前缀指定策略文件路径。ossutil tables-api put-table-policy --table-bucket-arn acs:osstables:cn-hangzhou:1234567890:bucket/my-table-bucket --namespace my_namespace --name my_table --resource-policy file://policy.json为表设置拒绝删除操作的资源策略。
ossutil tables-api put-table-policy --table-bucket-arn acs:osstables:cn-hangzhou:1234567890:bucket/my-table-bucket --namespace my_namespace --name my_table --resource-policy '{"Version":"1","Statement":[{"Effect":"Deny","Principal":["*"],"Action":["osstables:DeleteTable"],"Resource":["acs:osstables:cn-hangzhou:1234567890:bucket/my-table-bucket/namespace/my_namespace/table/my_table"]}]}'
该文章对您有帮助吗?