安全规则
安全规则的接口,可通过 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. 输入参数
字段 | 必填 | 类型 | 说明 |
---|---|---|---|
Action | 是 | String | 接口名称 |
Param | 是 | Object | 接口参数 |
Param 字段说明
字段 | 必填 | 类型 | 说明 |
---|---|---|---|
CollectionName | 是 | String | 集合名 |
EnvId | 是 | String | 环境 ID |
3. 返回结果
字段 | 必填 | 类型 | 说明 |
---|---|---|---|
RequestId | 是 | String | 请求唯一标识 |
AclTag | 否 | String | 权限类别 |
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. 输入参数
字段 | 必填 | 类型 | 说明 |
---|---|---|---|
Action | 是 | String | 接口名称 |
Param | 是 | Object | 接口参数 |
Param 字段说明
字段 | 必填 | 类型 | 说明 |
---|---|---|---|
CollectionName | 是 | String | 集合名 |
AclTag | 是 | String | 数据库简易权限 READONLY PRIVATE ADMINWRITE ADMINONLY |
EnvId | 是 | String | 环境 ID |
3. 返回结果
字段 | 必填 | 类型 | 说明 |
---|---|---|---|
RequestId | String | 是 | 请求唯一标识 |
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. 输入参数
字段 | 必填 | 类型 | 说明 |
---|---|---|---|
Action | 是 | String | 接口名称 |
Param | 是 | Object | 接口参数 |
Param 字段说明
字段 | 必填 | 类型 | 说明 |
---|---|---|---|
CollectionName | 是 | String | 集合名 |
EnvId | 是 | String | 环境 ID |
AclTag | 是 | String | 权限类别 |
Rule | 否 | String | 权限类别设置为 CUSTOM 时,需要设置该字段(数据库安全规则文档) |
3. 返回结果
字段 | 必填 | 类型 | 说明 |
---|---|---|---|
RequestId | 是 | String | 请求唯一标识 |
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. 输入参数
字段 | 必填 | 类型 | 说明 |
---|---|---|---|
Action | 是 | String | 接口名称 |
Param | 是 | Object | 接口参数 |
Param 字段说明
字段 | 必填 | 类型 | 说明 |
---|---|---|---|
CollectionName | 是 | String | 集合名 |
EnvId | 是 | String | 环境 ID |
3. 返回结果
字段 | 必填 | 类型 | 说明 |
---|---|---|---|
RequestId | 是 | String | 请求唯一标识 |
AclTag | 是 | String | 权限类别 |
Rule | 是 | String 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. 输入参数
字段 | 必填 | 类型 | 说明 |
---|---|---|---|
Action | 是 | String | 接口名称 |
Param | 是 | Object | 接口参数 |
Param 字段说明
字段 | 必填 | 类型 | 说明 |
---|---|---|---|
AclTag | 是 | String | 此处填 CUSTOM |
EnvId | 是 | String | 环境 ID |
ResourceType | 是 | String | 此处填 FUNCTION |
Rule | 是 | String | 查看云函数安全规则文档 |
3. 返回结果
字段 | 必填 | 类型 | 说明 |
---|---|---|---|
RequestId | 是 | String | 请求唯一标识 |
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. 输入参数
字段 | 必填 | 类型 | 说明 |
---|---|---|---|
Action | 是 | String | 接口名称 |
Param | 是 | Object | 接口参数 |
Param 字段说明
字段 | 必填 | 类型 | 说明 |
---|---|---|---|
ResourceType | 是 | String | 此处填 FUNCTION |
EnvId | 是 | String | 环境 ID |
3. 返回结果
字段 | 必填 | 类型 | 说明 |
---|---|---|---|
RequestId | 是 | String | 请求唯一标识 |
AclTag | 是 | String | 权限类别 |
Rule | 是 | String 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. 输入参数
字段 | 必填 | 类型 | 说明 |
---|---|---|---|
Action | 是 | String | 接口名称 |
Param | 是 | Object | 接口参数 |
Param 字段说明
字段 | 必填 | 类型 | 说明 |
---|---|---|---|
Bucket | 是 | String | 桶名 |
AclTag | 是 | String | 权限类别 |
EnvId | 是 | String | 环境 ID |
Rule | 否 | String | 权限类别为 CUSTOM 时,设置该字段,存储安全规则文档 |
3. 返回结果
字段 | 必填 | 类型 | 说明 |
---|---|---|---|
RequestId | 是 | String | 请求唯一标识 |
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. 输入参数
字段 | 必填 | 类型 | 说明 |
---|---|---|---|
Action | 是 | String | 接口名称 |
Param | 是 | Object | 接口参数 |
Param 字段说明
字段 | 必填 | 类型 | 说明 |
---|---|---|---|
Bucket | 是 | String | 桶名称 |
EnvId | 是 | String | 环境 ID |
3. 返回结果
字段 | 必填 | 类型 | 说明 |
---|---|---|---|
RequestId | 是 | String | 请求唯一标识 |
AclTag | 是 | String | 权限类别 |
Rule | 是 | String 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. 输入参数
字段 | 必填 | 类型 | 说明 |
---|---|---|---|
Action | 是 | String | 接口名称 |
Param | 是 | Object | 接口参数 |
Param 字段说明
字段 | 必填 | 类型 | 说明 |
---|---|---|---|
Bucket | 是 | String | 桶名称 |
EnvId | 是 | String | 环境 ID |
3. 返回结果
字段 | 必填 | 类型 | 说明 |
---|---|---|---|
RequestId | 是 | String | 请求唯一标识 |
Status | 是 | String | 开/关防盗链任务状态。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();