本文介绍如何设置、获取和删除指定存储空间(Bucket)的授权策略(Policy)。
背景信息
Bucket Policy是基于资源的授权策略。Bucket Policy常见的应用场景如下:
- 向其他账号的RAM用户授权访问。
您可以授予其他账号的RAM用户访问您的OSS资源的权限。
- 向匿名用户授予带特定IP条件限制的访问权限。
某些场景下,您需要向匿名用户授予带IP限制的访问策略。例如,企业内部的机密文档,只允许在企业内部访问,不允许在其他区域访问。由于企业内部人员较多,如果针对每个人配置RAM Policy,工作量非常大。此时,您可以基于Bucket Policy设置带IP限制的访问策略,从而高效方便地进行授权。
有关Bucket Policy的配置详情及场景案例,请参见使用Bucket Policy授权其他用户访问OSS资源。有关Policy语法,请参见权限策略语法和结构。
设置Bucket Policy
以下代码用于设置Bucket Policy:
const OSS = require('ali-oss')
const client = new OSS({
bucket: '<Your BucketName>',
// region以杭州为例(oss-cn-hangzhou),其他region按实际情况填写。
region: '<Your Region>',
// 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。
accessKeyId: '<Your AccessKeyId>',
accessKeySecret: '<Your AccessKeySecret>',
});
//设置授权策略。
const policy = {
Version: '1',
Statement: [
{
Action: ['oss:PutObject', 'oss:GetObject'],
Effect: 'Deny',
Principal: ['1234567890'],
Resource: ['acs:oss:*:1234567890:*/*']
}
]
};
async function putPolicy() {
const result = await client.putBucketPolicy('<Your Bucket Name>', policy);
console.log(result)
}
putPolicy()
有关设置Bucket Policy详情,请参见PutBucketPolicy。
获取Bucket Policy
以下代码用于获取Bucket Policy信息:
const OSS = require('ali-oss')
const client = new OSS({
bucket: '<Your BucketName>',
// region以杭州为例(oss-cn-hangzhou),其他region按实际情况填写。
region: '<Your Region>',
// 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。
accessKeyId: '<Your AccessKeyId>',
accessKeySecret: '<Your AccessKeySecret>',
});
// 获取授权策略。
async function getPolicy() {
const result = await client.getBucketPolicy('<Your Bucket Name>');
console.log(result.policy)
}
getPolicy()
有关获取Bucket Policy信息详情,请参见GetBucketPolicy。
删除Bucket Policy
以下代码用于删除Bucket Policy:
const OSS = require('ali-oss')
const client = new OSS({
bucket: '<Your BucketName>',
// region以杭州为例(oss-cn-hangzhou),其他region按实际情况填写。
region: '<Your Region>',
// 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。
accessKeyId: '<Your AccessKeyId>',
accessKeySecret: '<Your AccessKeySecret>',
});
//删除授权策略。
async function deletePolicy() {
const result = await client.deleteBucketPolicy('<Your Bucket Name>');
console.log(result)
}
deletePolicy()
有关删除Bucket Policy详情,请参见DeleteBucketPolicy。
在文档使用中是否遇到以下问题
更多建议
匿名提交