跳到主要内容

安全规则

安全规则的接口,可通过 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();