跳到主要内容

安全规则

安全规则的接口,可通过 commonService 来调用

权限类别(以下前 4 种属于简易权限,CUSTOM 属于安全规则特有)#

  • READONLY:所有用户可读,仅创建者和管理员可写
  • PRIVATE:仅创建者及管理员可读写
  • ADMINWRITE:所有用户可读,仅管理员可写
  • ADMINONLY:仅管理员可读写
  • CUSTOM: 自定义安全规则

获取数据库简易权限#

1. 接口描述#

接口功能:获取数据库简易权限

接口声明:manager.commonService().call({Action: 'DescribeDatabaseACL',Param: {}}): Promise<Object>

⚠️ 本接口从 3.0.0 版本后,commonService 作为方法使用,请求参数为(service?:string, version?:string) ,属于不兼容变更

2. 输入参数#

字段必填类型说明
ActionString接口名称
ParamObject接口参数

Param 字段说明#

字段必填类型说明
CollectionNameString集合名
EnvIdString环境 ID

3. 返回结果#

字段必填类型说明
RequestIdString请求唯一标识
AclTagString权限类别

4. 示例代码#

const cloudbaseConfig = {  secretId: "Your SecretId",  secretKey: "Your SecretKey",  envId: "Your envId" // 云开发环境ID,可在腾讯云云开发控制台获取};
let manager = new CloudBase(cloudbaseConfig);
async function test() {  const res = await manager.commonService().call({    Action: "DescribeDatabaseACL",    Param: {      CollectionName: "xxx",      EnvId: cloudbaseConfig.envId    }  });
  console.log(res.AclTag); // 打印权限类别}
test();

修改数据库简易权限#

1. 接口描述#

接口功能:修改数据库简易权限

接口声明:manager.commonService().call({Action: 'ModifyDatabaseACL',Param: {}}): Promise<Object>

⚠️ 本接口从 3.0.0 版本后,commonService 作为方法使用,请求参数为(service?:string, version?:string) ,属于不兼容变更

2. 输入参数#

字段必填类型说明
ActionString接口名称
ParamObject接口参数

Param 字段说明#

字段必填类型说明
CollectionNameString集合名
AclTagString数据库简易权限 READONLY PRIVATE ADMINWRITE ADMINONLY
EnvIdString环境 ID

3. 返回结果#

字段必填类型说明
RequestIdString请求唯一标识

4. 示例代码#

const cloudbaseConfig = {  secretId: "Your SecretId",  secretKey: "Your SecretKey",  envId: "Your envId" // 云开发环境ID,可在腾讯云云开发控制台获取};
let manager = new CloudBase(cloudBaseConfig);
async function test() {  const res = await manager.commonService().call({    Action: "ModifyDatabaseACL",    Param: {      CollectionName: "xxx",      EnvId: cloudbaseConfig.envId,      AclTag: "PRIVATE"    }  });  console.log(res);}
test();

设置数据库安全规则#

1. 接口描述#

接口功能:设置数据库安全规则

接口声明:manager.commonService().call({Action: 'ModifySafeRule',Param: {}}): Promise<Object>

⚠️ 本接口从 3.0.0 版本后,commonService 作为方法使用,请求参数为(service?:string, version?:string) ,属于不兼容变更

2. 输入参数#

字段必填类型说明
ActionString接口名称
ParamObject接口参数

Param 字段说明#

字段必填类型说明
CollectionNameString集合名
EnvIdString环境 ID
AclTagString权限类别
RuleString权限类别设置为 CUSTOM 时,需要设置该字段(数据库安全规则文档

3. 返回结果#

字段必填类型说明
RequestIdString请求唯一标识

4. 示例代码#

const cloudbaseConfig = {  secretId: "Your SecretId",  secretKey: "Your SecretKey",  envId: "Your envId" // 云开发环境ID,可在腾讯云云开发控制台获取};
let manager = new CloudBase(cloudBaseConfig);
async function test() {  const res = await manager.commonService().call({    Action: "ModifySafeRule",    Param: {      CollectionName: "coll-1",      AclTag: "CUSTOM",      EnvId: "xxx",      Rule: JSON.stringify({        read: true,        write: "doc._openid == auth.openid"      })    }  });  console.log(res);}
test();

查询数据库安全规则#

1. 接口描述#

接口功能:查询数据库安全规则

接口声明:manager.commonService().call({Action: 'DescribeSafeRule',Param: {}}): Promise<Object>

⚠️ 本接口从 3.0.0 版本后,commonService 作为方法使用,请求参数为(service?:string, version?:string) ,属于不兼容变更

2. 输入参数#

字段必填类型说明
ActionString接口名称
ParamObject接口参数

Param 字段说明#

字段必填类型说明
CollectionNameString集合名
EnvIdString环境 ID

3. 返回结果#

字段必填类型说明
RequestIdString请求唯一标识
AclTagString权限类别
RuleString or null安全规则

4. 示例代码#

const cloudbaseConfig = {  secretId: "Your SecretId",  secretKey: "Your SecretKey",  envId: "Your envId" // 云开发环境ID,可在腾讯云云开发控制台获取};
let manager = new CloudBase(cloudBaseConfig);
async function test() {  const res = await manager.commonService().call({    Action: "DescribeSafeRule",    Param: {      CollectionName: "coll-1",      EnvId: cloudbaseConfig.envId    }  });  console.log(res.AclTag);  console.log(res.Rule);}test();

设置云函数安全规则#

1. 接口描述#

接口功能:设置云函数安全规则

接口声明:manager.commonService().call({Action: 'ModifySecurityRule',Param: {}}): Promise<Object>

⚠️ 本接口从 3.0.0 版本后,commonService 作为方法使用,请求参数为(service?:string, version?:string) ,属于不兼容变更

2. 输入参数#

字段必填类型说明
ActionString接口名称
ParamObject接口参数

Param 字段说明#

字段必填类型说明
AclTagString此处填 CUSTOM
EnvIdString环境 ID
ResourceTypeString此处填 FUNCTION
RuleString查看云函数安全规则文档

3. 返回结果#

字段必填类型说明
RequestIdString请求唯一标识

4. 示例代码#

const manager = new CloudBase({  secretId: "Your SecretId",  secretKey: "Your SecretKey",  envId: "Your envId" // 云开发环境ID,可在腾讯云云开发控制台获取});
const { env } = manager;
async function test() {  const res = await manager.commonService().call({    Action: "ModifySecurityRule",    Param: {      AclTag: "CUSTOM",      EnvId: envId,      ResourceType: "FUNCTION",      Rule: JSON.stringify({        "*": {          invoke: true        }      })    }  });  console.log(res);}test();

查询云函数安全规则#

1. 接口描述#

接口功能:查询云函数安全规则

接口声明:manager.commonService().call({Action: 'DescribeSecurityRule',Param: {}}): Promise<Object>

⚠️ 本接口从 3.0.0 版本后,commonService 作为方法使用,请求参数为(service?:string, version?:string) ,属于不兼容变更

2. 输入参数#

字段必填类型说明
ActionString接口名称
ParamObject接口参数

Param 字段说明#

字段必填类型说明
ResourceTypeString此处填 FUNCTION
EnvIdString环境 ID

3. 返回结果#

字段必填类型说明
RequestIdString请求唯一标识
AclTagString权限类别
RuleString or null安全规则

4. 示例代码#

const cloudbaseConfig = {  secretId: "Your SecretId",  secretKey: "Your SecretKey",  envId: "Your envId" // 云开发环境ID,可在腾讯云云开发控制台获取};
let manager = new CloudBase(cloudBaseConfig);
async function test() {  const res = await manager.commonService().call({    Action: "DescribeSecurityRule",    Param: {      EnvId: "hello-tcb-9glo12vd5bd3bd0d",      ResourceType: "FUNCTION"    }  });  console.log(res.AclTag);  console.log(res.Rule);}
test();

设置存储安全规则#

1. 接口描述#

接口功能:设置存储安全规则

接口声明:manager.commonService().call({Action: 'ModifyStorageSafeRule',Param: {}}): Promise<Object>

⚠️ 本接口从 3.0.0 版本后,commonService 作为方法使用,请求参数为(service?:string, version?:string) ,属于不兼容变更

2. 输入参数#

字段必填类型说明
ActionString接口名称
ParamObject接口参数

Param 字段说明#

字段必填类型说明
BucketString桶名
AclTagString权限类别
EnvIdString环境 ID
RuleString权限类别为 CUSTOM 时,设置该字段,存储安全规则文档

3. 返回结果#

字段必填类型说明
RequestIdString请求唯一标识

4. 示例代码#

const manager = new CloudBase({  secretId: "Your SecretId",  secretKey: "Your SecretKey",  envId: "Your envId" // 云开发环境ID,可在腾讯云云开发控制台获取});
const { env } = manager;
// 先获取桶名const {  EnvInfo: { Storages }} = await env.getEnvInfo();const { Bucket } = Storages[0];
async function test() {  const res = await manager.commonService().call({    Action: "ModifyStorageSafeRule",    Param: {      Bucket,      AclTag: "CUSTOM",      EnvId: envId,      Rule: JSON.stringify({        read: true,        write: "resource.openid == auth.uid"      })    }  });  console.log(res);}test();

查询存储安全规则#

1. 接口描述#

接口功能:查询存储安全规则

接口声明:manager.commonService().call({Action: 'DescribeStorageSafeRule',Param: {}}): Promise<Object>

⚠️ 本接口从 3.0.0 版本后,commonService 作为方法使用,请求参数为(service?:string, version?:string) ,属于不兼容变更

2. 输入参数#

字段必填类型说明
ActionString接口名称
ParamObject接口参数

Param 字段说明#

字段必填类型说明
BucketString桶名称
EnvIdString环境 ID

3. 返回结果#

字段必填类型说明
RequestIdString请求唯一标识
AclTagString权限类别
RuleString or null安全规则

4. 示例代码#

const cloudbaseConfig = {  secretId: "Your SecretId",  secretKey: "Your SecretKey",  envId: "Your envId" // 云开发环境ID,可在腾讯云云开发控制台获取};
let manager = new CloudBase(cloudBaseConfig);
async function test() {  const res = await manager.commonService().call({    Action: "DescribeStorageSafeRule",    Param: {      Bucket: "xxx",      EnvId: cloudBaseConfig.envId    }  });  console.log(res.AclTag);  console.log(res.Rule);}
test();

查询存储安全规则修改异步任务状态#

1. 接口描述#

接口功能:查询存储安全规则修改异步任务状态

接口声明:manager.commonService().call({Action: 'DescribeCDNChainTask',Param: {}}): Promise<Object>

⚠️ 本接口从 3.0.0 版本后,commonService 作为方法使用,请求参数为(service?:string, version?:string) ,属于不兼容变更

2. 输入参数#

字段必填类型说明
ActionString接口名称
ParamObject接口参数

Param 字段说明#

字段必填类型说明
BucketString桶名称
EnvIdString环境 ID

3. 返回结果#

字段必填类型说明
RequestIdString请求唯一标识
StatusString开/关防盗链任务状态。WAITING、PENDING、FINISHED、ERROR

4. 示例代码#

const cloudbaseConfig = {  secretId: "Your SecretId",  secretKey: "Your SecretKey",  envId: "Your envId" // 云开发环境ID,可在腾讯云云开发控制台获取};
let manager = new CloudBase(cloudBaseConfig);
async function test() {  // 获取环境信息 取bucket  const {    EnvInfo: { Storages }  } = await env.getEnvInfo();  console.log(Storages);  const { Bucket } = Storages[0];  const res = await manager.commonService().call({    Action: "ModifyStorageSafeRule",    Param: {      Bucket,      AclTag: "CUSTOM",      EnvId: envId,      Rule: JSON.stringify({        read: true,        write: "resource.openid == auth.uid"      })    }  });  console.log(res);  expect(res.RequestId !== undefined).toBe(true);
  let status = "";  do {    status = (      await commonService.call({        Action: "DescribeCDNChainTask",        Param: {          Bucket,          EnvId: envId        }      })    ).Status;    console.log(status);  } while (status !== "FINISHED" && status !== "ERROR");}
test();