diff --git a/docs/obs/perms-cfg/ALL_META.TXT.json b/docs/obs/perms-cfg/ALL_META.TXT.json new file mode 100644 index 000000000..8a537316d --- /dev/null +++ b/docs/obs/perms-cfg/ALL_META.TXT.json @@ -0,0 +1,412 @@ +[ + { + "uri":"obs_40_0001.html", + "product_code":"obs", + "code":"1", + "des":"By default, OBS resources (buckets and objects) are private. Only resource owners can access their OBS resources. Without authorization, other users cannot access OBS. OB", + "doc_type":"perms-cfg", + "kw":"Introduction to OBS Access Control,Permission Configuration Guide", + "title":"Introduction to OBS Access Control", + "githuburl":"" + }, + { + "uri":"obs_40_0002.html", + "product_code":"obs", + "code":"2", + "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "doc_type":"perms-cfg", + "kw":"Permission Control Mechanisms", + "title":"Permission Control Mechanisms", + "githuburl":"" + }, + { + "uri":"obs_40_0003.html", + "product_code":"obs", + "code":"3", + "des":"By default, newly created IAM users do not have any permissions. You need to add the user to one or more groups, and attach permission policies or roles to these groups. ", + "doc_type":"perms-cfg", + "kw":"IAM Permissions,Permission Control Mechanisms,Permission Configuration Guide", + "title":"IAM Permissions", + "githuburl":"" + }, + { + "uri":"obs_40_0004.html", + "product_code":"obs", + "code":"4", + "des":"A bucket policy applies to an OBS bucket and objects in the bucket. By leveraging bucket policies, the owner of a bucket can authorize IAM users or other accounts the per", + "doc_type":"perms-cfg", + "kw":"Bucket Policies,Permission Control Mechanisms,Permission Configuration Guide", + "title":"Bucket Policies", + "githuburl":"" + }, + { + "uri":"obs_40_0005.html", + "product_code":"obs", + "code":"5", + "des":"An ACL is a list that defines grantees and their granted permissions.Bucket and object ACLs are attached to accounts. By default, an ACL is created when a bucket or objec", + "doc_type":"perms-cfg", + "kw":"ACLs,Permission Control Mechanisms,Permission Configuration Guide", + "title":"ACLs", + "githuburl":"" + }, + { + "uri":"obs_40_0006.html", + "product_code":"obs", + "code":"6", + "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "doc_type":"perms-cfg", + "kw":"Access Requests", + "title":"Access Requests", + "githuburl":"" + }, + { + "uri":"obs_40_0007.html", + "product_code":"obs", + "code":"7", + "des":"OBS provides REST APIs that supports authenticated requests and anonymous requests. Anonymous requests are typically used for scenarios that require public access, such a", + "doc_type":"perms-cfg", + "kw":"Accessing OBS Using Permanent Access Keys,Access Requests,Permission Configuration Guide", + "title":"Accessing OBS Using Permanent Access Keys", + "githuburl":"" + }, + { + "uri":"obs_40_0008.html", + "product_code":"obs", + "code":"8", + "des":"OBS can be accessed through temporary access keys and the security token, which can be obtained on IAM. You can assign the temporary access keys (including the security t", + "doc_type":"perms-cfg", + "kw":"Accessing OBS Using Temporary Access Keys,Access Requests,Permission Configuration Guide", + "title":"Accessing OBS Using Temporary Access Keys", + "githuburl":"" + }, + { + "uri":"obs_40_0009.html", + "product_code":"obs", + "code":"9", + "des":"You can use a temporary URL to access OBS and perform operations such as bucket creation or object upload and download. This section describes how to share objects using ", + "doc_type":"perms-cfg", + "kw":"Accessing OBS Using a Temporary URL,Access Requests,Permission Configuration Guide", + "title":"Accessing OBS Using a Temporary URL", + "githuburl":"" + }, + { + "uri":"obs_40_0010.html", + "product_code":"obs", + "code":"10", + "des":"The IAM agency is a function of Identity and Access Management (IAM). In some OBS application scenarios (such as CDN private bucket retrieval and cross-region replication", + "doc_type":"perms-cfg", + "kw":"Accessing OBS Using an IAM Agency,Access Requests,Permission Configuration Guide", + "title":"Accessing OBS Using an IAM Agency", + "githuburl":"" + }, + { + "uri":"obs_40_0011.html", + "product_code":"obs", + "code":"11", + "des":"The following typical scenarios are provided to help you better configure OBS permission control.Factors to consider before configuring permission control:Who are granted", + "doc_type":"perms-cfg", + "kw":"Typical Permission Control Scenarios,Permission Configuration Guide", + "title":"Typical Permission Control Scenarios", + "githuburl":"" + }, + { + "uri":"obs_40_0012.html", + "product_code":"obs", + "code":"12", + "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "doc_type":"perms-cfg", + "kw":"Configuration Cases in Typical Permission Control Scenarios", + "title":"Configuration Cases in Typical Permission Control Scenarios", + "githuburl":"" + }, + { + "uri":"obs_40_0013.html", + "product_code":"obs", + "code":"13", + "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "doc_type":"perms-cfg", + "kw":"Granting Permissions to an IAM User Under the Account", + "title":"Granting Permissions to an IAM User Under the Account", + "githuburl":"" + }, + { + "uri":"obs_40_0014.html", + "product_code":"obs", + "code":"14", + "des":"This topic describes how to grant an IAM user the permissions required to create and list buckets. An IAM user with this permission can create buckets. The created bucket", + "doc_type":"perms-cfg", + "kw":"Granting an IAM User the Permissions Required to List and Create Buckets,Granting Permissions to an ", + "title":"Granting an IAM User the Permissions Required to List and Create Buckets", + "githuburl":"" + }, + { + "uri":"obs_40_0015.html", + "product_code":"obs", + "code":"15", + "des":"This topic describes how to grant an IAM user the read and write permissions on an OBS bucket.You are advised to use bucket policies to grant resource-level permissions t", + "doc_type":"perms-cfg", + "kw":"Granting an IAM User the Read and Write Permissions on a Bucket,Granting Permissions to an IAM User ", + "title":"Granting an IAM User the Read and Write Permissions on a Bucket", + "githuburl":"" + }, + { + "uri":"obs_40_0016.html", + "product_code":"obs", + "code":"16", + "des":"This topic describes how to grant an IAM user the permissions required to perform specific operations on an OBS bucket. Below describes how to grant the bucket deletion p", + "doc_type":"perms-cfg", + "kw":"Granting an IAM User the Permissions Required to Perform Specific Operations on a Specific Bucket,Gr", + "title":"Granting an IAM User the Permissions Required to Perform Specific Operations on a Specific Bucket", + "githuburl":"" + }, + { + "uri":"obs_40_0017.html", + "product_code":"obs", + "code":"17", + "des":"This topic describes how to grant an IAM user the read permission on an object or a set of objects in an OBS bucket.You are advised to use bucket policies to grant resour", + "doc_type":"perms-cfg", + "kw":"Granting an IAM User the Read Permission on a Specific Object,Granting Permissions to an IAM User Un", + "title":"Granting an IAM User the Read Permission on a Specific Object", + "githuburl":"" + }, + { + "uri":"obs_40_0018.html", + "product_code":"obs", + "code":"18", + "des":"This topic describes how to grant an IAM user certain permissions on specific objects in a bucket. Below explains how to grant the object download permission.If you need ", + "doc_type":"perms-cfg", + "kw":"Granting an IAM User the Permissions Required to Perform Specific Operations on Certain Objects,Gran", + "title":"Granting an IAM User the Permissions Required to Perform Specific Operations on Certain Objects", + "githuburl":"" + }, + { + "uri":"obs_40_0019.html", + "product_code":"obs", + "code":"19", + "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "doc_type":"perms-cfg", + "kw":"Granting Permissions to Multiple IAM Users or User Groups Under the Account", + "title":"Granting Permissions to Multiple IAM Users or User Groups Under the Account", + "githuburl":"" + }, + { + "uri":"obs_40_0020.html", + "product_code":"obs", + "code":"20", + "des":"This topic describes how to grant multiple IAM users or user groups all permissions on all OBS resources. Users with this permission can perform any OBS operation.IAM cus", + "doc_type":"perms-cfg", + "kw":"Granting IAM User Groups All Permissions on All OBS Resources,Granting Permissions to Multiple IAM U", + "title":"Granting IAM User Groups All Permissions on All OBS Resources", + "githuburl":"" + }, + { + "uri":"obs_40_0021.html", + "product_code":"obs", + "code":"21", + "des":"This topic describes how to use the OBS-related system roles and policies preset in IAM to grant basic operation permissions on all OBS resources to multiple IAM users or", + "doc_type":"perms-cfg", + "kw":"Granting IAM User Groups Basic Permissions on All OBS Resources,Granting Permissions to Multiple IAM", + "title":"Granting IAM User Groups Basic Permissions on All OBS Resources", + "githuburl":"" + }, + { + "uri":"obs_40_0022.html", + "product_code":"obs", + "code":"22", + "des":"This topic describes how to grant multiple IAM users or user groups specific permissions on all OBS resources.IAM custom policiesAfter the configuration is complete, you ", + "doc_type":"perms-cfg", + "kw":"Granting IAM User Groups Specified Permissions on All OBS Resources,Granting Permissions to Multiple", + "title":"Granting IAM User Groups Specified Permissions on All OBS Resources", + "githuburl":"" + }, + { + "uri":"obs_40_0023.html", + "product_code":"obs", + "code":"23", + "des":"This topic describes how to grant certain operation permissions on specific OBS resources (can be a bucket or an object) to multiple IAM users or user groups.IAM custom p", + "doc_type":"perms-cfg", + "kw":"Granting IAM User Groups Specified Permissions on Certain OBS Resources,Granting Permissions to Mult", + "title":"Granting IAM User Groups Specified Permissions on Certain OBS Resources", + "githuburl":"" + }, + { + "uri":"obs_40_0044.html", + "product_code":"obs", + "code":"24", + "des":"This topic describes how to grant certain operation permissions on specific folders in an OBS bucket to multiple IAM users or user groups.IAM custom policiesAfter the con", + "doc_type":"perms-cfg", + "kw":"Granting IAM User Groups Specified Permissions on Certain OBS Folders,Granting Permissions to Multip", + "title":"Granting IAM User Groups Specified Permissions on Certain OBS Folders", + "githuburl":"" + }, + { + "uri":"obs_40_0024.html", + "product_code":"obs", + "code":"25", + "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "doc_type":"perms-cfg", + "kw":"Granting Permissions to Other Accounts", + "title":"Granting Permissions to Other Accounts", + "githuburl":"" + }, + { + "uri":"obs_40_0025.html", + "product_code":"obs", + "code":"26", + "des":"This topic describes how to grant other accounts (excluding the IAM users under them) the read and write permissions on OBS buckets. For details about how to grant permis", + "doc_type":"perms-cfg", + "kw":"Granting an Account the Read and Write Permissions on a Bucket,Granting Permissions to Other Account", + "title":"Granting an Account the Read and Write Permissions on a Bucket", + "githuburl":"" + }, + { + "uri":"obs_40_0026.html", + "product_code":"obs", + "code":"27", + "des":"This topic describes how to grant other accounts (excluding the IAM users under them) specific operation permissions on OBS buckets. For details about how to grant permis", + "doc_type":"perms-cfg", + "kw":"Granting an Account the Specified Permissions on a Bucket,Granting Permissions to Other Accounts,Per", + "title":"Granting an Account the Specified Permissions on a Bucket", + "githuburl":"" + }, + { + "uri":"obs_40_0027.html", + "product_code":"obs", + "code":"28", + "des":"This topic describes how to grant IAM users the permissions to access OBS buckets and resources in them.The following describes how to grant the permissions to upload and", + "doc_type":"perms-cfg", + "kw":"Granting IAM Users Under an Account the Access to a Bucket and Resources in the Bucket,Granting Perm", + "title":"Granting IAM Users Under an Account the Access to a Bucket and Resources in the Bucket", + "githuburl":"" + }, + { + "uri":"obs_40_0028.html", + "product_code":"obs", + "code":"29", + "des":"This case describes how to grant other accounts (excluding IAM users under the account) the read permission for an object or a type of objects in an OBS bucket. For detai", + "doc_type":"perms-cfg", + "kw":"Granting an Account Read Permissions on Certain Objects,Granting Permissions to Other Accounts,Permi", + "title":"Granting an Account Read Permissions on Certain Objects", + "githuburl":"" + }, + { + "uri":"obs_40_0029.html", + "product_code":"obs", + "code":"30", + "des":"This case describes how to grant other accounts the specified operation permission on a specified object in an OBS bucket. The following describes how to grant the permis", + "doc_type":"perms-cfg", + "kw":"Granting an Account the Specified Permissions on Certain Objects,Granting Permissions to Other Accou", + "title":"Granting an Account the Specified Permissions on Certain Objects", + "githuburl":"" + }, + { + "uri":"obs_40_0030.html", + "product_code":"obs", + "code":"31", + "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "doc_type":"perms-cfg", + "kw":"Granting Permissions to Anonymous Users", + "title":"Granting Permissions to Anonymous Users", + "githuburl":"" + }, + { + "uri":"obs_40_0031.html", + "product_code":"obs", + "code":"32", + "des":"If a bucket needs to be accessed by anonymous users, you can configure a bucket policy and bucket ACL to grant the access permission to anonymous users. The following use", + "doc_type":"perms-cfg", + "kw":"Granting Anonymous Users Public Read Permissions on a Bucket,Granting Permissions to Anonymous Users", + "title":"Granting Anonymous Users Public Read Permissions on a Bucket", + "githuburl":"" + }, + { + "uri":"obs_40_0032.html", + "product_code":"obs", + "code":"33", + "des":"If all objects in a folder need to be accessible to anonymous users, you can configure a bucket policy to grant anonymous users the permission to access the folder.The pr", + "doc_type":"perms-cfg", + "kw":"Granting Anonymous Users Public Read Permissions on a Directory,Granting Permissions to Anonymous Us", + "title":"Granting Anonymous Users Public Read Permissions on a Directory", + "githuburl":"" + }, + { + "uri":"obs_40_0033.html", + "product_code":"obs", + "code":"34", + "des":"Enterprise A stores a large volume of map data in OBS, and offers the data for public query. This enterprise sets a read permission for anonymous users, and provides the ", + "doc_type":"perms-cfg", + "kw":"Granting Anonymous Users Public Read Permissions on Certain Objects,Granting Permissions to Anonymou", + "title":"Granting Anonymous Users Public Read Permissions on Certain Objects", + "githuburl":"" + }, + { + "uri":"obs_40_0034.html", + "product_code":"obs", + "code":"35", + "des":"If you want to open an object to all users for a limited period of time, you can use the object sharing function.Once the Share File dialog box is opened, the URL is effe", + "doc_type":"perms-cfg", + "kw":"Temporarily Sharing Objects with Anonymous Users,Granting Permissions to Anonymous Users,Permission ", + "title":"Temporarily Sharing Objects with Anonymous Users", + "githuburl":"" + }, + { + "uri":"obs_40_0037.html", + "product_code":"obs", + "code":"36", + "des":"This case describes how to use temporary access keys (temporary AK/SK and security token) to access OBS in temporary authorization mode.Assume that you want to enable an ", + "doc_type":"perms-cfg", + "kw":"Granting Temporary Access to OBS,Configuration Cases in Typical Permission Control Scenarios,Permiss", + "title":"Granting Temporary Access to OBS", + "githuburl":"" + }, + { + "uri":"obs_40_0036.html", + "product_code":"obs", + "code":"37", + "des":"This case describes how to restrict the source IP addresses that can access an OBS bucket. The following shows how to deny a client access whose source IP address is with", + "doc_type":"perms-cfg", + "kw":"Preventing Specific IP Addresses from Accessing a Bucket,Configuration Cases in Typical Permission C", + "title":"Preventing Specific IP Addresses from Accessing a Bucket", + "githuburl":"" + }, + { + "uri":"obs_40_0042.html", + "product_code":"obs", + "code":"38", + "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "doc_type":"perms-cfg", + "kw":"Appendix", + "title":"Appendix", + "githuburl":"" + }, + { + "uri":"obs_40_0041.html", + "product_code":"obs", + "code":"39", + "des":"A policy in JSON format is described as follows:Example:{ \n\"Statement\" : [{\n \"Sid\": \"ExampleStatementID1\",\n \"Principal\": \"*\",\n \"Effect\": \"Allow\", \n \"Act", + "doc_type":"perms-cfg", + "kw":"Bucket Policy Parameters,Appendix,Permission Configuration Guide", + "title":"Bucket Policy Parameters", + "githuburl":"" + }, + { + "uri":"obs_40_0043.html", + "product_code":"obs", + "code":"40", + "des":"Bucket ACLs are used to control basic read and write access to buckets. Custom settings of bucket policies support more actions that can be performed on buckets. Bucket A", + "doc_type":"perms-cfg", + "kw":"Relationship Between Bucket Policies and Bucket ACLs,Appendix,Permission Configuration Guide", + "title":"Relationship Between Bucket Policies and Bucket ACLs", + "githuburl":"" + }, + { + "uri":"obs_40_0039.html", + "product_code":"obs", + "code":"41", + "des":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "doc_type":"perms-cfg", + "kw":"Change History,Permission Configuration Guide", + "title":"Change History", + "githuburl":"" + } +] \ No newline at end of file diff --git a/docs/obs/perms-cfg/CLASS.TXT.json b/docs/obs/perms-cfg/CLASS.TXT.json new file mode 100644 index 000000000..67210c451 --- /dev/null +++ b/docs/obs/perms-cfg/CLASS.TXT.json @@ -0,0 +1,371 @@ +[ + { + "desc":"By default, OBS resources (buckets and objects) are private. Only resource owners can access their OBS resources. Without authorization, other users cannot access OBS. OB", + "product_code":"obs", + "title":"Introduction to OBS Access Control", + "uri":"obs_40_0001.html", + "doc_type":"perms-cfg", + "p_code":"", + "code":"1" + }, + { + "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "product_code":"obs", + "title":"Permission Control Mechanisms", + "uri":"obs_40_0002.html", + "doc_type":"perms-cfg", + "p_code":"", + "code":"2" + }, + { + "desc":"By default, newly created IAM users do not have any permissions. You need to add the user to one or more groups, and attach permission policies or roles to these groups. ", + "product_code":"obs", + "title":"IAM Permissions", + "uri":"obs_40_0003.html", + "doc_type":"perms-cfg", + "p_code":"2", + "code":"3" + }, + { + "desc":"A bucket policy applies to an OBS bucket and objects in the bucket. By leveraging bucket policies, the owner of a bucket can authorize IAM users or other accounts the per", + "product_code":"obs", + "title":"Bucket Policies", + "uri":"obs_40_0004.html", + "doc_type":"perms-cfg", + "p_code":"2", + "code":"4" + }, + { + "desc":"An ACL is a list that defines grantees and their granted permissions.Bucket and object ACLs are attached to accounts. By default, an ACL is created when a bucket or objec", + "product_code":"obs", + "title":"ACLs", + "uri":"obs_40_0005.html", + "doc_type":"perms-cfg", + "p_code":"2", + "code":"5" + }, + { + "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "product_code":"obs", + "title":"Access Requests", + "uri":"obs_40_0006.html", + "doc_type":"perms-cfg", + "p_code":"", + "code":"6" + }, + { + "desc":"OBS provides REST APIs that supports authenticated requests and anonymous requests. Anonymous requests are typically used for scenarios that require public access, such a", + "product_code":"obs", + "title":"Accessing OBS Using Permanent Access Keys", + "uri":"obs_40_0007.html", + "doc_type":"perms-cfg", + "p_code":"6", + "code":"7" + }, + { + "desc":"OBS can be accessed through temporary access keys and the security token, which can be obtained on IAM. You can assign the temporary access keys (including the security t", + "product_code":"obs", + "title":"Accessing OBS Using Temporary Access Keys", + "uri":"obs_40_0008.html", + "doc_type":"perms-cfg", + "p_code":"6", + "code":"8" + }, + { + "desc":"You can use a temporary URL to access OBS and perform operations such as bucket creation or object upload and download. This section describes how to share objects using ", + "product_code":"obs", + "title":"Accessing OBS Using a Temporary URL", + "uri":"obs_40_0009.html", + "doc_type":"perms-cfg", + "p_code":"6", + "code":"9" + }, + { + "desc":"The IAM agency is a function of Identity and Access Management (IAM). In some OBS application scenarios (such as CDN private bucket retrieval and cross-region replication", + "product_code":"obs", + "title":"Accessing OBS Using an IAM Agency", + "uri":"obs_40_0010.html", + "doc_type":"perms-cfg", + "p_code":"6", + "code":"10" + }, + { + "desc":"The following typical scenarios are provided to help you better configure OBS permission control.Factors to consider before configuring permission control:Who are granted", + "product_code":"obs", + "title":"Typical Permission Control Scenarios", + "uri":"obs_40_0011.html", + "doc_type":"perms-cfg", + "p_code":"", + "code":"11" + }, + { + "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "product_code":"obs", + "title":"Configuration Cases in Typical Permission Control Scenarios", + "uri":"obs_40_0012.html", + "doc_type":"perms-cfg", + "p_code":"", + "code":"12" + }, + { + "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "product_code":"obs", + "title":"Granting Permissions to an IAM User Under the Account", + "uri":"obs_40_0013.html", + "doc_type":"perms-cfg", + "p_code":"12", + "code":"13" + }, + { + "desc":"This topic describes how to grant an IAM user the permissions required to create and list buckets. An IAM user with this permission can create buckets. The created bucket", + "product_code":"obs", + "title":"Granting an IAM User the Permissions Required to List and Create Buckets", + "uri":"obs_40_0014.html", + "doc_type":"perms-cfg", + "p_code":"13", + "code":"14" + }, + { + "desc":"This topic describes how to grant an IAM user the read and write permissions on an OBS bucket.You are advised to use bucket policies to grant resource-level permissions t", + "product_code":"obs", + "title":"Granting an IAM User the Read and Write Permissions on a Bucket", + "uri":"obs_40_0015.html", + "doc_type":"perms-cfg", + "p_code":"13", + "code":"15" + }, + { + "desc":"This topic describes how to grant an IAM user the permissions required to perform specific operations on an OBS bucket. Below describes how to grant the bucket deletion p", + "product_code":"obs", + "title":"Granting an IAM User the Permissions Required to Perform Specific Operations on a Specific Bucket", + "uri":"obs_40_0016.html", + "doc_type":"perms-cfg", + "p_code":"13", + "code":"16" + }, + { + "desc":"This topic describes how to grant an IAM user the read permission on an object or a set of objects in an OBS bucket.You are advised to use bucket policies to grant resour", + "product_code":"obs", + "title":"Granting an IAM User the Read Permission on a Specific Object", + "uri":"obs_40_0017.html", + "doc_type":"perms-cfg", + "p_code":"13", + "code":"17" + }, + { + "desc":"This topic describes how to grant an IAM user certain permissions on specific objects in a bucket. Below explains how to grant the object download permission.If you need ", + "product_code":"obs", + "title":"Granting an IAM User the Permissions Required to Perform Specific Operations on Certain Objects", + "uri":"obs_40_0018.html", + "doc_type":"perms-cfg", + "p_code":"13", + "code":"18" + }, + { + "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "product_code":"obs", + "title":"Granting Permissions to Multiple IAM Users or User Groups Under the Account", + "uri":"obs_40_0019.html", + "doc_type":"perms-cfg", + "p_code":"12", + "code":"19" + }, + { + "desc":"This topic describes how to grant multiple IAM users or user groups all permissions on all OBS resources. Users with this permission can perform any OBS operation.IAM cus", + "product_code":"obs", + "title":"Granting IAM User Groups All Permissions on All OBS Resources", + "uri":"obs_40_0020.html", + "doc_type":"perms-cfg", + "p_code":"19", + "code":"20" + }, + { + "desc":"This topic describes how to use the OBS-related system roles and policies preset in IAM to grant basic operation permissions on all OBS resources to multiple IAM users or", + "product_code":"obs", + "title":"Granting IAM User Groups Basic Permissions on All OBS Resources", + "uri":"obs_40_0021.html", + "doc_type":"perms-cfg", + "p_code":"19", + "code":"21" + }, + { + "desc":"This topic describes how to grant multiple IAM users or user groups specific permissions on all OBS resources.IAM custom policiesAfter the configuration is complete, you ", + "product_code":"obs", + "title":"Granting IAM User Groups Specified Permissions on All OBS Resources", + "uri":"obs_40_0022.html", + "doc_type":"perms-cfg", + "p_code":"19", + "code":"22" + }, + { + "desc":"This topic describes how to grant certain operation permissions on specific OBS resources (can be a bucket or an object) to multiple IAM users or user groups.IAM custom p", + "product_code":"obs", + "title":"Granting IAM User Groups Specified Permissions on Certain OBS Resources", + "uri":"obs_40_0023.html", + "doc_type":"perms-cfg", + "p_code":"19", + "code":"23" + }, + { + "desc":"This topic describes how to grant certain operation permissions on specific folders in an OBS bucket to multiple IAM users or user groups.IAM custom policiesAfter the con", + "product_code":"obs", + "title":"Granting IAM User Groups Specified Permissions on Certain OBS Folders", + "uri":"obs_40_0044.html", + "doc_type":"perms-cfg", + "p_code":"19", + "code":"24" + }, + { + "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "product_code":"obs", + "title":"Granting Permissions to Other Accounts", + "uri":"obs_40_0024.html", + "doc_type":"perms-cfg", + "p_code":"12", + "code":"25" + }, + { + "desc":"This topic describes how to grant other accounts (excluding the IAM users under them) the read and write permissions on OBS buckets. For details about how to grant permis", + "product_code":"obs", + "title":"Granting an Account the Read and Write Permissions on a Bucket", + "uri":"obs_40_0025.html", + "doc_type":"perms-cfg", + "p_code":"25", + "code":"26" + }, + { + "desc":"This topic describes how to grant other accounts (excluding the IAM users under them) specific operation permissions on OBS buckets. For details about how to grant permis", + "product_code":"obs", + "title":"Granting an Account the Specified Permissions on a Bucket", + "uri":"obs_40_0026.html", + "doc_type":"perms-cfg", + "p_code":"25", + "code":"27" + }, + { + "desc":"This topic describes how to grant IAM users the permissions to access OBS buckets and resources in them.The following describes how to grant the permissions to upload and", + "product_code":"obs", + "title":"Granting IAM Users Under an Account the Access to a Bucket and Resources in the Bucket", + "uri":"obs_40_0027.html", + "doc_type":"perms-cfg", + "p_code":"25", + "code":"28" + }, + { + "desc":"This case describes how to grant other accounts (excluding IAM users under the account) the read permission for an object or a type of objects in an OBS bucket. For detai", + "product_code":"obs", + "title":"Granting an Account Read Permissions on Certain Objects", + "uri":"obs_40_0028.html", + "doc_type":"perms-cfg", + "p_code":"25", + "code":"29" + }, + { + "desc":"This case describes how to grant other accounts the specified operation permission on a specified object in an OBS bucket. The following describes how to grant the permis", + "product_code":"obs", + "title":"Granting an Account the Specified Permissions on Certain Objects", + "uri":"obs_40_0029.html", + "doc_type":"perms-cfg", + "p_code":"25", + "code":"30" + }, + { + "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "product_code":"obs", + "title":"Granting Permissions to Anonymous Users", + "uri":"obs_40_0030.html", + "doc_type":"perms-cfg", + "p_code":"12", + "code":"31" + }, + { + "desc":"If a bucket needs to be accessed by anonymous users, you can configure a bucket policy and bucket ACL to grant the access permission to anonymous users. The following use", + "product_code":"obs", + "title":"Granting Anonymous Users Public Read Permissions on a Bucket", + "uri":"obs_40_0031.html", + "doc_type":"perms-cfg", + "p_code":"31", + "code":"32" + }, + { + "desc":"If all objects in a folder need to be accessible to anonymous users, you can configure a bucket policy to grant anonymous users the permission to access the folder.The pr", + "product_code":"obs", + "title":"Granting Anonymous Users Public Read Permissions on a Directory", + "uri":"obs_40_0032.html", + "doc_type":"perms-cfg", + "p_code":"31", + "code":"33" + }, + { + "desc":"Enterprise A stores a large volume of map data in OBS, and offers the data for public query. This enterprise sets a read permission for anonymous users, and provides the ", + "product_code":"obs", + "title":"Granting Anonymous Users Public Read Permissions on Certain Objects", + "uri":"obs_40_0033.html", + "doc_type":"perms-cfg", + "p_code":"31", + "code":"34" + }, + { + "desc":"If you want to open an object to all users for a limited period of time, you can use the object sharing function.Once the Share File dialog box is opened, the URL is effe", + "product_code":"obs", + "title":"Temporarily Sharing Objects with Anonymous Users", + "uri":"obs_40_0034.html", + "doc_type":"perms-cfg", + "p_code":"31", + "code":"35" + }, + { + "desc":"This case describes how to use temporary access keys (temporary AK/SK and security token) to access OBS in temporary authorization mode.Assume that you want to enable an ", + "product_code":"obs", + "title":"Granting Temporary Access to OBS", + "uri":"obs_40_0037.html", + "doc_type":"perms-cfg", + "p_code":"12", + "code":"36" + }, + { + "desc":"This case describes how to restrict the source IP addresses that can access an OBS bucket. The following shows how to deny a client access whose source IP address is with", + "product_code":"obs", + "title":"Preventing Specific IP Addresses from Accessing a Bucket", + "uri":"obs_40_0036.html", + "doc_type":"perms-cfg", + "p_code":"12", + "code":"37" + }, + { + "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "product_code":"obs", + "title":"Appendix", + "uri":"obs_40_0042.html", + "doc_type":"perms-cfg", + "p_code":"", + "code":"38" + }, + { + "desc":"A policy in JSON format is described as follows:Example:{ \n\"Statement\" : [{\n \"Sid\": \"ExampleStatementID1\",\n \"Principal\": \"*\",\n \"Effect\": \"Allow\", \n \"Act", + "product_code":"obs", + "title":"Bucket Policy Parameters", + "uri":"obs_40_0041.html", + "doc_type":"perms-cfg", + "p_code":"38", + "code":"39" + }, + { + "desc":"Bucket ACLs are used to control basic read and write access to buckets. Custom settings of bucket policies support more actions that can be performed on buckets. Bucket A", + "product_code":"obs", + "title":"Relationship Between Bucket Policies and Bucket ACLs", + "uri":"obs_40_0043.html", + "doc_type":"perms-cfg", + "p_code":"38", + "code":"40" + }, + { + "desc":"HUAWEI CLOUD Help Center presents technical documents to help you quickly get started with HUAWEI CLOUD services. The technical documents include Service Overview, Price Details, Purchase Guide, User Guide, API Reference, Best Practices, FAQs, and Videos.", + "product_code":"obs", + "title":"Change History", + "uri":"obs_40_0039.html", + "doc_type":"perms-cfg", + "p_code":"", + "code":"41" + } +] \ No newline at end of file diff --git a/docs/obs/perms-cfg/PARAMETERS.txt b/docs/obs/perms-cfg/PARAMETERS.txt new file mode 100644 index 000000000..6da8d5f07 --- /dev/null +++ b/docs/obs/perms-cfg/PARAMETERS.txt @@ -0,0 +1,3 @@ +version="" +language="en-us" +type="" \ No newline at end of file diff --git a/docs/obs/perms-cfg/en-us_image_0000001254687479.png b/docs/obs/perms-cfg/en-us_image_0000001254687479.png new file mode 100644 index 000000000..5f2182b87 Binary files /dev/null and b/docs/obs/perms-cfg/en-us_image_0000001254687479.png differ diff --git a/docs/obs/perms-cfg/en-us_image_0000001335934590.png b/docs/obs/perms-cfg/en-us_image_0000001335934590.png new file mode 100644 index 000000000..1b6e2d25d Binary files /dev/null and b/docs/obs/perms-cfg/en-us_image_0000001335934590.png differ diff --git a/docs/obs/perms-cfg/en-us_image_0000001385362028.png b/docs/obs/perms-cfg/en-us_image_0000001385362028.png new file mode 100644 index 000000000..0086b5094 Binary files /dev/null and b/docs/obs/perms-cfg/en-us_image_0000001385362028.png differ diff --git a/docs/obs/perms-cfg/en-us_image_0000001385525368.png b/docs/obs/perms-cfg/en-us_image_0000001385525368.png new file mode 100644 index 000000000..1060e4552 Binary files /dev/null and b/docs/obs/perms-cfg/en-us_image_0000001385525368.png differ diff --git a/docs/obs/perms-cfg/en-us_image_0000001385530212.png b/docs/obs/perms-cfg/en-us_image_0000001385530212.png new file mode 100644 index 000000000..ba789c33a Binary files /dev/null and b/docs/obs/perms-cfg/en-us_image_0000001385530212.png differ diff --git a/docs/obs/perms-cfg/en-us_image_0000001385655888.png b/docs/obs/perms-cfg/en-us_image_0000001385655888.png new file mode 100644 index 000000000..ed4e0a770 Binary files /dev/null and b/docs/obs/perms-cfg/en-us_image_0000001385655888.png differ diff --git a/docs/obs/perms-cfg/en-us_image_0000001385676688.png b/docs/obs/perms-cfg/en-us_image_0000001385676688.png new file mode 100644 index 000000000..16bd1d427 Binary files /dev/null and b/docs/obs/perms-cfg/en-us_image_0000001385676688.png differ diff --git a/docs/obs/perms-cfg/en-us_image_0000001385678272.png b/docs/obs/perms-cfg/en-us_image_0000001385678272.png new file mode 100644 index 000000000..1b5dca34e Binary files /dev/null and b/docs/obs/perms-cfg/en-us_image_0000001385678272.png differ diff --git a/docs/obs/perms-cfg/en-us_image_0000001385859230.png b/docs/obs/perms-cfg/en-us_image_0000001385859230.png new file mode 100644 index 000000000..fd727ef42 Binary files /dev/null and b/docs/obs/perms-cfg/en-us_image_0000001385859230.png differ diff --git a/docs/obs/perms-cfg/en-us_image_0000001385862242.png b/docs/obs/perms-cfg/en-us_image_0000001385862242.png new file mode 100644 index 000000000..c5fafbeee Binary files /dev/null and b/docs/obs/perms-cfg/en-us_image_0000001385862242.png differ diff --git a/docs/obs/perms-cfg/en-us_image_0000001385864766.png b/docs/obs/perms-cfg/en-us_image_0000001385864766.png new file mode 100644 index 000000000..5084cabd9 Binary files /dev/null and b/docs/obs/perms-cfg/en-us_image_0000001385864766.png differ diff --git a/docs/obs/perms-cfg/en-us_image_0000001386029478.png b/docs/obs/perms-cfg/en-us_image_0000001386029478.png new file mode 100644 index 000000000..2249e9ab7 Binary files /dev/null and b/docs/obs/perms-cfg/en-us_image_0000001386029478.png differ diff --git a/docs/obs/perms-cfg/en-us_image_0000001386185594.png b/docs/obs/perms-cfg/en-us_image_0000001386185594.png new file mode 100644 index 000000000..c5fafbeee Binary files /dev/null and b/docs/obs/perms-cfg/en-us_image_0000001386185594.png differ diff --git a/docs/obs/perms-cfg/en-us_image_0000001386340170.png b/docs/obs/perms-cfg/en-us_image_0000001386340170.png new file mode 100644 index 000000000..a30a58904 Binary files /dev/null and b/docs/obs/perms-cfg/en-us_image_0000001386340170.png differ diff --git a/docs/obs/perms-cfg/en-us_image_0000001386341906.png b/docs/obs/perms-cfg/en-us_image_0000001386341906.png new file mode 100644 index 000000000..c5fafbeee Binary files /dev/null and b/docs/obs/perms-cfg/en-us_image_0000001386341906.png differ diff --git a/docs/obs/perms-cfg/en-us_image_0000001435889185.png b/docs/obs/perms-cfg/en-us_image_0000001435889185.png new file mode 100644 index 000000000..ac7308594 Binary files /dev/null and b/docs/obs/perms-cfg/en-us_image_0000001435889185.png differ diff --git a/docs/obs/perms-cfg/en-us_image_0000001435981085.png b/docs/obs/perms-cfg/en-us_image_0000001435981085.png new file mode 100644 index 000000000..c5fafbeee Binary files /dev/null and b/docs/obs/perms-cfg/en-us_image_0000001435981085.png differ diff --git a/docs/obs/perms-cfg/en-us_image_0000001435988521.png b/docs/obs/perms-cfg/en-us_image_0000001435988521.png new file mode 100644 index 000000000..d3902709b Binary files /dev/null and b/docs/obs/perms-cfg/en-us_image_0000001435988521.png differ diff --git a/docs/obs/perms-cfg/en-us_image_0000001436140385.png b/docs/obs/perms-cfg/en-us_image_0000001436140385.png new file mode 100644 index 000000000..5084cabd9 Binary files /dev/null and b/docs/obs/perms-cfg/en-us_image_0000001436140385.png differ diff --git a/docs/obs/perms-cfg/en-us_image_0000001436146565.png b/docs/obs/perms-cfg/en-us_image_0000001436146565.png new file mode 100644 index 000000000..58817f318 Binary files /dev/null and b/docs/obs/perms-cfg/en-us_image_0000001436146565.png differ diff --git a/docs/obs/perms-cfg/en-us_image_0000001436220057.png b/docs/obs/perms-cfg/en-us_image_0000001436220057.png new file mode 100644 index 000000000..25629b72d Binary files /dev/null and b/docs/obs/perms-cfg/en-us_image_0000001436220057.png differ diff --git a/docs/obs/perms-cfg/en-us_image_0000001436253413.png b/docs/obs/perms-cfg/en-us_image_0000001436253413.png new file mode 100644 index 000000000..2f9228853 Binary files /dev/null and b/docs/obs/perms-cfg/en-us_image_0000001436253413.png differ diff --git a/docs/obs/perms-cfg/en-us_image_0000001436265909.png b/docs/obs/perms-cfg/en-us_image_0000001436265909.png new file mode 100644 index 000000000..e6587d493 Binary files /dev/null and b/docs/obs/perms-cfg/en-us_image_0000001436265909.png differ diff --git a/docs/obs/perms-cfg/en-us_image_0000001436302073.png b/docs/obs/perms-cfg/en-us_image_0000001436302073.png new file mode 100644 index 000000000..c5fafbeee Binary files /dev/null and b/docs/obs/perms-cfg/en-us_image_0000001436302073.png differ diff --git a/docs/obs/perms-cfg/en-us_image_0000001436303585.png b/docs/obs/perms-cfg/en-us_image_0000001436303585.png new file mode 100644 index 000000000..fd71c4fd7 Binary files /dev/null and b/docs/obs/perms-cfg/en-us_image_0000001436303585.png differ diff --git a/docs/obs/perms-cfg/en-us_image_0000001436305909.png b/docs/obs/perms-cfg/en-us_image_0000001436305909.png new file mode 100644 index 000000000..cf62487e8 Binary files /dev/null and b/docs/obs/perms-cfg/en-us_image_0000001436305909.png differ diff --git a/docs/obs/perms-cfg/en-us_image_0000001436307565.png b/docs/obs/perms-cfg/en-us_image_0000001436307565.png new file mode 100644 index 000000000..a3a26e8c3 Binary files /dev/null and b/docs/obs/perms-cfg/en-us_image_0000001436307565.png differ diff --git a/docs/obs/perms-cfg/en-us_image_0000001479778546.png b/docs/obs/perms-cfg/en-us_image_0000001479778546.png new file mode 100644 index 000000000..9e2b1446f Binary files /dev/null and b/docs/obs/perms-cfg/en-us_image_0000001479778546.png differ diff --git a/docs/obs/perms-cfg/en-us_image_0000001555603997.png b/docs/obs/perms-cfg/en-us_image_0000001555603997.png new file mode 100644 index 000000000..9d03237ea Binary files /dev/null and b/docs/obs/perms-cfg/en-us_image_0000001555603997.png differ diff --git a/docs/obs/perms-cfg/en-us_image_0257815079.png b/docs/obs/perms-cfg/en-us_image_0257815079.png new file mode 100644 index 000000000..9bdb13c13 Binary files /dev/null and b/docs/obs/perms-cfg/en-us_image_0257815079.png differ diff --git a/docs/obs/perms-cfg/en-us_image_0257817646.png b/docs/obs/perms-cfg/en-us_image_0257817646.png new file mode 100644 index 000000000..666846191 Binary files /dev/null and b/docs/obs/perms-cfg/en-us_image_0257817646.png differ diff --git a/docs/obs/perms-cfg/en-us_image_0257849924.png b/docs/obs/perms-cfg/en-us_image_0257849924.png new file mode 100644 index 000000000..8cbb71025 Binary files /dev/null and b/docs/obs/perms-cfg/en-us_image_0257849924.png differ diff --git a/docs/obs/perms-cfg/en-us_image_0268971273.jpg b/docs/obs/perms-cfg/en-us_image_0268971273.jpg new file mode 100644 index 000000000..306ec84ee Binary files /dev/null and b/docs/obs/perms-cfg/en-us_image_0268971273.jpg differ diff --git a/docs/obs/perms-cfg/en-us_image_0269157281.png b/docs/obs/perms-cfg/en-us_image_0269157281.png new file mode 100644 index 000000000..82140fb8d Binary files /dev/null and b/docs/obs/perms-cfg/en-us_image_0269157281.png differ diff --git a/docs/obs/perms-cfg/en-us_image_0269160697.png b/docs/obs/perms-cfg/en-us_image_0269160697.png new file mode 100644 index 000000000..e4b6e4189 Binary files /dev/null and b/docs/obs/perms-cfg/en-us_image_0269160697.png differ diff --git a/docs/obs/perms-cfg/obs_40_0001.html b/docs/obs/perms-cfg/obs_40_0001.html new file mode 100644 index 000000000..306635ffc --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0001.html @@ -0,0 +1,166 @@ + + +
By default, OBS resources (buckets and objects) are private. Only resource owners can access their OBS resources. Without authorization, other users cannot access OBS. OBS permission control refers to granting permissions to other accounts or IAM users by editing access policies. For example, if you have a bucket, you can authorize another IAM user to upload objects to your bucket. You can also open buckets to non-public cloud users, so that anyone can access your buckets as public resources over the Internet. OBS offers different methods to help resource owners grant resource permissions to others as required, keeping data secure.
+OBS provides multiple permission control mechanisms, including IAM permissions, bucket policies, object ACLs, and bucket ACLs. Table 1 describes the mechanisms and application scenarios.
+
Method + |
+Description + |
+Scenario + |
+
|---|---|---|
IAM permissions + |
+IAM permissions define the actions that can be performed on your cloud resources. In other words, IAM permissions specify what actions are allowed or denied. After an IAM user is created, the administrator needs to add the user to a group. IAM can grant the user group required OBS access permissions, and then all users in the group automatically inherit the permissions of the user group. + |
+
|
+
Bucket policies + |
+A bucket policy is attached to a bucket and objects in the bucket. Bucket owners can use bucket policies to grant IAM users or other accounts the permissions to operate buckets and objects in the buckets. ACLs of buckets and objects supplement bucket policies, and in many cases, bucket policies replace ACLs. + |
+
|
+
Object ACLs + |
+Controls access to objects for accounts or user groups. Object owners can configure the object access control list (ACL) to grant basic read and write permissions to specified accounts or user groups. + NOTE:
+
|
+
|
+
Bucket ACLs + |
+Controls access to buckets for accounts or user groups. Bucket owners can configure the bucket ACL to grant basic read and write permissions to specified accounts or user groups. + NOTE:
+
|
+
|
+
OBS provides multiple permission control mechanisms, including time-limited access to objects, object ACLs, bucket ACLs, and bucket policies. Some service-level permissions (for example, creating a bucket and listing all buckets) cannot be configured through OBS and can only be configured on IAM. OBS permissions apply only to resources (buckets and objects). To grant both OBS service-level and resource-level permissions, you must use IAM permissions or both IAM and OBS permissions.
+
The following factors determine the authorization result:
+For details about elements, see Bucket Policy Parameters.
+Table 2 describes elements in different permission control mechanisms.
+ +Method + |
+Principal + |
+Supported Effect + |
+Authorized Resource + |
+Authorized Action + |
+Condition Configuration + |
+
|---|---|---|---|---|---|
IAM Permissions + |
+IAM user + |
+
|
+All or specified OBS resources + |
+All permissions to access OBS + |
+Supported + |
+
Bucket Policy + |
+
|
+
|
+Specified bucket and resources in the bucket + |
+All permissions to access OBS + |
+Supported + |
+
Object ACL + |
+
|
+Allow + |
+Specified object + |
+
|
+Not supported + |
+
Bucket ACL + |
+
|
+Allow + |
+Specified bucket + |
+
|
+Not supported + |
+
Based on the advantages and disadvantages of the three elements, you are advised to preferentially use IAM permissions and bucket policies.
+Identify the problem you are most concerned with:
+You can search for an IAM user and check the permissions of the user group to which the user belongs to know what the user can do.
+You can query the bucket and check the bucket policy to know who can access the bucket.
+
It is better for you to use the same method for access control, because as the number of IAM permissions and bucket policies increase, access maintenance will become increasingly difficult.
+When to Select an ACL?
+IAM permissions and bucket policies have granted access permissions to an object set, but you want to grant access permissions to a single object.
+When uploading an object, you can use the ACL header to specify the read and write permissions of the object.
+Bucket ACLs are used to control basic read and write access to buckets. Custom settings of bucket policies support more actions that can be performed on buckets. Bucket ACLs supplement bucket policies. In many cases, bucket policies can replace bucket ACLs to manage access to buckets. Relationship Between Bucket Policies and Bucket ACLs shows the mapping between bucket ACL access permissions and bucket policy actions.
+Never grant IAM users more than the minimum level of access needed to complete a task. For example, if an IAM user only needs to upload and download objects to a directory, you do not need to assign the user the read and write permissions for the entire bucket.
+Management of resources or of permissions can be assigned to different IAM users. For example, you can let one IAM user assign permissions, and let other IAM users manage OBS resources.
+To enhance the security of the resources in a bucket, specific conditions can be configured to control when a permission is applied. For example, a bucket policy with conditions contained can be configured for OBS to accept requests only from a specific IP address.
+In the OBS permission control elements, there are allow and deny effects, which indicate the permission to allow or deny an operation.
+Based on the least-privilege principle, decisions default to deny, and an explicit deny statement always takes precedence over an allow statement. For example, IAM permissions grant a user access to an object, a bucket policy denies the user's access to that object, and there is no ACL. Then access will be denied.
+If no method specifies an allow statement, then the request will be denied by default. Only if no method specifies a deny statement and one or more methods specify an allow statement, will the request be allowed. For example, if a bucket has multiple bucket policies with allow statements, adding such a new bucket policy applies the allowed permissions to the bucket, but adding a new bucket policy with a deny statement will make the permissions work differently. The deny statement will take precedence over allow statements, even if the denied permissions are allowed in other bucket policies.
+
Figure 4 describes how bucket policies, IAM permissions, and ACLs work (allow or deny) when you grant the IAM users of your account the access to OBS buckets and resources in the buckets. ACLs are applied to accounts and do not control IAM users' read and write permissions for the buckets and the sources in the buckets under their account.
+
Figure 5 describes how bucket policies, IAM permissions, and ACLs work (allow or deny) when you grant any other account and the IAM users of this account the access to OBS buckets and resources in the buckets.
+
By default, newly created IAM users do not have any permissions. You need to add the user to one or more groups, and attach permission policies or roles to these groups. Users inherit permissions from the groups to which they are added and can perform specified operations on cloud services based on the permissions.
+IAM permissions take effect on all OBS buckets and objects. To grant an IAM user the permission to operate OBS resources, you need to assign one or more OBS permission sets to the user group to which the user belongs.
+OBS is a global service because it is available for all physical regions. IAM permissions are assigned to users in the global project, and users do not need to switch regions when accessing OBS.
+You can grant permissions to users by roles and policies.
+
Due to data caching, a role and policy involving OBS actions will take effect 10 to 15 minutes after it is attached to a user, an enterprise project, and user group.
+IAM presets system permissions for each cloud service so that you can quickly configure basic permissions. Table 1 describes all system permissions of OBS.
+Custom policies can be created to supplement the system-defined policies of OBS.
+ +Role/Policy Name + |
+Description + |
+Type + |
+Dependency + |
+
|---|---|---|---|
Tenant Administrator + |
+Users with this permission can perform all operations on all services except IAM. + |
+System-defined role + |
+N/A + |
+
Tenant Guest + |
+Users with this permission can perform read-only operations on all services except IAM. + |
+System-defined role + |
+N/A + |
+
OBS Administrator + |
+Users with this permission are OBS administrators and can perform any operations on all OBS resources under the account. + |
+System-defined role + |
+N/A + |
+
OBS Buckets Viewer + |
+Users with this permission can list buckets, obtain basic bucket information, and obtain bucket metadata. + |
+System-defined role + |
+N/A + |
+
OBS ReadOnlyAccess + |
+Users with this permission can list buckets, obtain basic bucket information, obtain bucket metadata, and list objects (not the objects that have been versioned). + NOTE:
+If a user with this permission fails to list objects on OBS Console, there may be multiple versions of objects in the bucket. In this case, you need to grant the user the obs:bucket:ListBucketVersions permission so that the user can view different versions of objects on OBS Console. + |
+System-defined policy + |
+N/A + |
+
OBS OperateAccess + |
+Users with this permission can perform all OBS ReadOnlyAccess operations and perform basic object operations, such as uploading objects, downloading objects, deleting objects, and obtaining object ACLs. + NOTE:
+If a user with this permission fails to list objects on OBS Console, there may be multiple versions of objects in the bucket. In this case, you need to grant the user the obs:bucket:ListBucketVersions permission so that the user can view different versions of objects on OBS Console. + |
+System-defined policy + |
+N/A + |
+
The following table lists the common operations supported by each system-defined policy or role of OBS. Select the policies or roles as required.
+ +Operation + |
+Tenant Administrator + |
+Tenant Guest + |
+OBS Administrator + |
+OBS Buckets Viewer + |
+OBS ReadOnlyAccess + |
+OBS OperateAccess + |
+
|---|---|---|---|---|---|---|
Listing buckets + |
+Yes + |
+Yes + |
+Yes + |
+Yes + |
+Yes + |
+Yes + |
+
Creating buckets + |
+Yes + |
+No + |
+Yes + |
+No + |
+No + |
+No + |
+
Deleting buckets + |
+Yes + |
+No + |
+Yes + |
+No + |
+No + |
+No + |
+
Obtaining basic bucket information + |
+Yes + |
+Yes + |
+Yes + |
+Yes + |
+Yes + |
+Yes + |
+
Controlling bucket access + |
+Yes + |
+No + |
+Yes + |
+No + |
+No + |
+No + |
+
Managing bucket policies + |
+Yes + |
+No + |
+Yes + |
+No + |
+No + |
+No + |
+
Modifying bucket storage classes + |
+Yes + |
+No + |
+Yes + |
+No + |
+No + |
+No + |
+
Listing objects + |
+Yes + |
+Yes + |
+Yes + |
+No + |
+Yes + |
+Yes + |
+
Listing versioned objects + |
+Yes + |
+Yes + |
+Yes + |
+No + |
+No + |
+No + |
+
Uploading a file + |
+Yes + |
+No + |
+Yes + |
+No + |
+No + |
+Yes + |
+
Creating a folder + |
+Yes + |
+No + |
+Yes + |
+No + |
+No + |
+Yes + |
+
Deleting a file + |
+Yes + |
+No + |
+Yes + |
+No + |
+No + |
+Yes + |
+
Deleting a folder + |
+Yes + |
+No + |
+Yes + |
+No + |
+No + |
+Yes + |
+
Downloading a file + |
+Yes + |
+Yes + |
+Yes + |
+No + |
+No + |
+Yes + |
+
Deleting files with multiple versions + |
+Yes + |
+No + |
+Yes + |
+No + |
+No + |
+Yes + |
+
Downloading files with multiple versions + |
+Yes + |
+Yes + |
+Yes + |
+No + |
+No + |
+Yes + |
+
Modifying object storage classes + |
+Yes + |
+No + |
+Yes + |
+No + |
+No + |
+No + |
+
Restoring files + |
+Yes + |
+No + |
+Yes + |
+No + |
+No + |
+No + |
+
Undeleting a file + |
+Yes + |
+No + |
+Yes + |
+No + |
+No + |
+Yes + |
+
Deleting fragments + |
+Yes + |
+No + |
+Yes + |
+No + |
+No + |
+Yes + |
+
Controlling object access + |
+Yes + |
+No + |
+Yes + |
+No + |
+No + |
+No + |
+
Configuring object metadata + |
+Yes + |
+No + |
+Yes + |
+No + |
+No + |
+No + |
+
Obtaining object metadata + |
+Yes + |
+Yes + |
+Yes + |
+No + |
+No + |
+Yes + |
+
Managing versioning + |
+Yes + |
+No + |
+Yes + |
+No + |
+No + |
+No + |
+
Managing logging + |
+Yes + |
+No + |
+Yes + |
+No + |
+No + |
+No + |
+
Managing event notifications + |
+Yes + |
+No + |
+Yes + |
+No + |
+No + |
+No + |
+
Managing tags + |
+Yes + |
+No + |
+Yes + |
+No + |
+No + |
+No + |
+
Managing lifecycle rules + |
+Yes + |
+No + |
+Yes + |
+No + |
+No + |
+No + |
+
Managing static website hosting + |
+Yes + |
+No + |
+Yes + |
+No + |
+No + |
+No + |
+
Managing CORS rules + |
+Yes + |
+No + |
+Yes + |
+No + |
+No + |
+No + |
+
Managing URL validation + |
+Yes + |
+No + |
+Yes + |
+No + |
+No + |
+No + |
+
Managing domain names + |
+Yes + |
+No + |
+Yes + |
+No + |
+No + |
+No + |
+
Configuring an object ACL + |
+Yes + |
+No + |
+Yes + |
+No + |
+No + |
+No + |
+
Configuring the ACL for an object of a specified version + |
+Yes + |
+No + |
+Yes + |
+No + |
+No + |
+No + |
+
Obtaining an object ACL + |
+Yes + |
+Yes + |
+Yes + |
+No + |
+No + |
+Yes + |
+
Obtaining the ACL of a specified object version + |
+Yes + |
+Yes + |
+Yes + |
+No + |
+No + |
+Yes + |
+
Performing a multipart upload + |
+Yes + |
+No + |
+Yes + |
+No + |
+No + |
+Yes + |
+
Listing uploaded parts + |
+Yes + |
+Yes + |
+Yes + |
+No + |
+No + |
+Yes + |
+
Canceling a multipart upload + |
+Yes + |
+No + |
+Yes + |
+No + |
+No + |
+Yes + |
+
IAM permissions are used to authorize IAM users under an account.
+A policy consists of a version and statements. Each policy can have multiple statements.
+
Policy syntax example:
+{
+ "Version": "1.1",
+ "Statement": [
+ {
+ "Effect": "Allow",
+ "Action": [
+ "obs:bucket:HeadBucket",
+ "obs:bucket:ListBucket",
+ "obs:bucket:GetBucketLocation"
+ ],
+ "Resource": [
+ "obs:*:*:bucket:*"
+ ],
+ "Condition": {
+ "StringEndWithIfExsits": {
+ "g:UserName": ["specialCharacter"]
+ },
+ "Bool": {
+ "g:MFAPresent": ["true"]
+ }
+ }
+ }
+ ]
+}
+
+Parameter + |
+Description + |
+
|---|---|
Version + |
+The version number of a policy.
+
|
+
Statement + |
+Detailed descriptions of a policy, including Effect, Action, Resource, and Condition. Resource and Condition are optional.
+
|
+
This policy allows users to perform any operation on OBS using the API, SDKs, OBS Console, or tools.
+{
+ "Version": "1.1",
+ "Statement": [
+ {
+ "Effect": "Allow",
+ "Action": [
+ "obs:*:*"
+ ]
+ }
+ ]
+}
+{
+ "Version": "1.1",
+ "Statement": [
+ {
+ "Effect": "Allow",
+ "Action": [
+ "obs:object:GetObject",
+ "obs:bucket:ListBucket"
+ ],
+ "Resource": [
+ "obs:*:*:object:obs-example/*",
+ "obs:*:*:bucket:obs-example"
+ ]
+ }
+ ]
+}
+{
+ "Version": "1.1",
+ "Statement": [
+ {
+ "Effect": "Allow",
+ "Action": [
+ "obs:object:GetObject",
+ "obs:bucket:ListBucket"
+ ],
+ "Resource": [
+ "obs:*:*:object:obs-example/my-project/*",
+ "obs:*:*:bucket:obs-example"
+ ]
+ }
+ ]
+}
+{
+ "Version": "1.1",
+ "Statement": [
+ {
+ "Effect": "Allow",
+ "Action": [
+ "obs:object:GetObject",
+ "obs:object:ListMultipartUploadParts",
+ "obs:bucket:ListBucket",
+ "obs:object:DeleteObject",
+ "obs:object:PutObject"
+ ],
+ "Resource": [
+ "obs:*:*:object:obs-example/my-project/*",
+ "obs:*:*:bucket:obs-example"
+ ]
+ }
+ ]
+}
+{
+ "Version": "1.1",
+ "Statement": [
+ {
+ "Effect": "Allow",
+ "Action": [
+ "obs:*:*"
+ ],
+ "Resource": [
+ "obs:*:*:bucket:obs-example",
+ "obs:*:*:object:obs-example/*"
+ ]
+ }
+ ]
+}
+A policy with only "Deny" permissions must be used in conjunction with other policies to take effect. If the permissions assigned to a user contain both "Allow" and "Deny", the "Deny" permissions take precedence over the "Allow" permissions.
+The following method can be used if you need to assign permissions of the OBS OperateAccess policy to a user but also forbid the user from uploading objects. Create a custom policy for denying object upload, and assign both policies to the user. Then the user can perform all OBS OperateAccess permissions except uploading objects. The following is an example of a deny policy:
+{
+ "Version": "1.1",
+ "Statement": [
+ {
+ "Effect": "Deny",
+ "Action": [
+ "obs:object:PutObject"
+ ]
+ }
+ ]
+}
+This policy allows users to change the storage class of bucket obs-example and to delete object my-object.txt in the bucket.
+{
+ "Version": "1.1",
+ "Statement": [
+ {
+ "Effect": "Allow",
+ "Action": [
+ "obs:bucket:ListAllMyBuckets",
+ "obs:bucket:ListBucket"
+ ]
+ },
+ {
+ "Effect": "Allow",
+ "Action": [
+ "obs:object:DeleteObject",
+ "obs:bucket:PutBucketStoragePolicy"
+ ],
+ "Resource": [
+ "OBS:*:*:object:obs-example/my-object.txt",
+ "OBS:*:*:bucket:obs-example"
+ ]
+ }
+ ]
+}
+A bucket policy applies to an OBS bucket and objects in the bucket. By leveraging bucket policies, the owner of a bucket can authorize IAM users or other accounts the permissions to operate the bucket and objects in the bucket.
+
A bucket policy is attached to a bucket and objects in the bucket. An OBS bucket owner can use bucket policies to grant IAM users, other accounts, or anonymous users the permissions to operate buckets and objects in the buckets. OBS provides standard and advanced bucket policies.
+Standard Bucket Policies:
+There are three options for standard bucket policies.
+After a bucket is created, the default bucket policy is Private. Only the bucket owner has the full control permissions over the bucket. To ensure data security, it is recommended that you do not use the Public Read or Public Read and Write policies.
+ +Parameter + |
+Private + |
+Public Read + |
+Public Read and Write + |
+
|---|---|---|---|
Effect + |
+N/A + |
+Allow + |
+Allow + |
+
Principal + |
+N/A + |
+* (Any user) + |
+* (Any user) + |
+
Resources + |
+N/A + |
+* (All objects in a bucket) + |
+* (All objects in a bucket) + |
+
Actions + |
+N/A + |
+
|
+
|
+
Conditions + |
+N/A + |
+N/A + |
+N/A + |
+
Custom Bucket Policy:
+The following three modes are provided to facilitate quick configuration of a custom bucket policy:
+
On OBS Console, when you use the custom bucket policy to authorize other users with resource operation permissions, you also need to authorize the users with the bucket read permission ListBucket (leave the resource name blank to indicate that the policy takes effect on the entire bucket). Otherwise, the users have no permission to access the bucket.
+{
+"Statement" : [
+ {
+ statement1
+ },
+ {
+ statement2
+ },
+ ......
+ ]
+}
+{ + "Statement":[ + { + "Sid": "ExampleStatementID1", + "Principal":{ + "ID":[ + "domain/account ID", + "domain/account ID:user/User ID" + ] + }, + "Effect":"Allow", + "Action":[ + "CreateBucket", + "DeleteBucket" + ], + "Resource":"000-02/key01", + "Condition":{ + "NumericNotEquals":{ + "Referer":"sdf" + }, + "StringNotLike":{ + "Delimiter":"ouio" + } + } + } + ] + }+
A bucket policy comprises one or more statements. Each statement contains the following elements:
+ +Element + |
+Description + |
+Mandatory or Optional + |
+
|---|---|---|
Sid + |
+ID of a statement. The value is a string that describes the statement. + |
+Optional + |
+
Principal + |
+Domains (accounts) and users (IAM users) to which the statement applies. The wildcard (*) is supported, indicating all users. +
|
+Optional. Select either Principal or NotPrincipal. + |
+
NotPrincipal + |
+An exception to a list of principals in the statement. You can deny access to all principals except the ones named in the NotPrincipal element. This parameter has the same value format as Principal. + |
+Optional. Select either Principal or NotPrincipal. + |
+
Effect + |
+Whether the permission in a statement is allowed or denied. The value is Allow or Deny. + |
+Mandatory + |
+
Action + |
+Actions which a statement applies to. This parameter specifies a set of all the operations supported by OBS. Its values are case insensitive. The value supports a wildcard character (*) that indicates all actions, for example, "Action":["List*", "Get*"]. + |
+Optional. Select either Action or NotAction. + |
+
NotAction + |
+An exception to a list of actions in the statement. All actions are performed except the one specified in NotAction. The value of this element is similar to Action. + |
+Optional. Select either Action or NotAction. + |
+
Resource + |
+Resources on which the statement takes effect. The wildcard (*) is supported, indicating all resources. + |
+Optional. Select either Resource or NotResource. + |
+
NotResource + |
+An exception to a list of resources in a statement. A policy is not applied to the resources specified in NotResource. The value of this parameter is similar to that of Resource. + |
+Optional. Select either Resource or NotResource. + |
+
Condition + |
+Conditions for a statement to take effect. + |
+Optional + |
+
For details about each element, see Bucket Policy Parameters.
+The following example policy grants the PutObject and PutObjectAcl permissions to the IAM user whose ID is 71f3901173514e6988115ea2c26d1999 under account b4bf1b36d9ca43d984fbcb9491b6fce9 (account ID).
+{
+ "Statement":[
+ {
+ "Sid":"AddCannedAcl",
+ "Effect":"Allow",
+ "Principal": {"ID": ["domain/b4bf1b36d9ca43d984fbcb9491b6fce9:user/71f3901173514e6988115ea2c26d1999"]},
+ "Action":["PutObject","PutObjectAcl"],
+ "Resource":["examplebucket/*"]
+ }
+ ]
+}
+The following example policy grants all operation permissions (including bucket operations and object operations) of examplebucket to the user whose ID is 71f3901173514e6988115ea2c26d1999 in account b4bf1b36d9ca43d984fbcb9491b6fce9 (account ID).
+{
+ "Statement":[
+ {
+ "Sid":"test",
+ "Effect":"Allow",
+ "Principal": {"ID": ["domain/b4bf1b36d9ca43d984fbcb9491b6fce9:user/71f3901173514e6988115ea2c26d1999"]},
+ "Action":["*"],
+ "Resource":[
+ "examplebucket/*",
+ "examplebucket"
+ ]
+ }
+ ]
+}
+The following example policy grants a user (user ID 71f3901173514e6988115ea2c26d1999) of an account (ID b4bf1b36d9ca43d984fbcb9491b6fce9) all permissions for the examplebucket bucket, excluding the permission to delete objects.
+{
+ "Statement":[
+ {
+ "Sid":"test1",
+ "Effect":"Allow",
+ "Principal": {"ID": ["domain/b4bf1b36d9ca43d984fbcb9491b6fce9:user/71f3901173514e6988115ea2c26d1999"]},
+ "Action":["*"],
+ "Resource":["examplebucket/*"]
+ },
+ {
+ "Sid":"test2",
+ "Effect":"Deny",
+ "Principal": {"ID": ["domain/b4bf1b36d9ca43d984fbcb9491b6fce9:user/71f3901173514e6988115ea2c26d1999"]},
+ "Action":["DeleteObject"],
+ "Resource":["examplebucket/*"]
+ }
+ ]
+}
+The following example policy grants the GetObject (download object) permission of exampleobject in bucket examplebucket to anonymous users, allowing everyone to read data of the exampleobject object.
+{
+ "Statement":[
+ {
+ "Sid":"AddPerm",
+ "Effect":"Allow",
+ "Principal": "*",
+ "Action":["GetObject"],
+ "Resource":["examplebucket/exampleobject"]
+ }
+ ]
+}
+The following policy grants all users the permission to perform any OBS operation. However, the requests must be from the specified IP address range. The IP address range that is allowed by the statement is 192.168.0.* with an exception of 192.168.0.1.
+Use IpAddress and NotIpAddress conditions, and use the SourceIp (in OBS range) condition key. The value of SourceIp is the CIDR notation described in RFC 4632.
+{
+ "Statement": [
+ {
+ "Sid": "IPAllow",
+ "Effect": "Allow",
+ "Principal": "*",
+ "Action": "*",
+ "Resource": "examplebucket/*",
+ "Condition": {
+ "IpAddress": {"SourceIp": "192.168.0.0/24"},
+ "NotIpAddress": {"SourceIp": "192.168.0.1/32"}
+ }
+ }
+ ]
+}
+An ACL is a list that defines grantees and their granted permissions.
+Bucket and object ACLs are attached to accounts. By default, an ACL is created when a bucket or object is created, authorizing the owner the full control over the bucket or object.
+To implement simple and practical authorization for users, the OBS ACL has the following features:
+ACLs are write and read control rules attached to accounts, whose permission granularity is not as fine as bucket policies and IAM policies. Generally, it is recommended that you use IAM permissions and bucket policies for access control.
+Table 1 lists users to whom you can grant bucket access permissions by configuring an ACL.
+ +Principal + |
+Description + |
+
|---|---|
Specific User + |
+ACLs can be used to grant accounts with bucket/object access permissions. Once a specific account is granted with certain bucket/object access permissions, all IAM users who have OBS resource permissions under this account can have the same access permissions to operate the bucket or object. +You can configure bucket policies to grant different permissions to different IAM users. + |
+
Owner + |
+The owner of a bucket is the account that created the bucket. The bucket owner has all bucket access permissions by default. The read and write permissions to the bucket ACL are permanently available to the bucket owner, and cannot be modified. +An object owner is the account that uploads the object, but may not be the owner of the bucket that stores the object. The object owner has all control over the object by default. The read and write permissions to the object ACL are permanently available to the object owner, and cannot be modified. + NOTICE:
+Do not modify the bucket owner's read and write access permissions for the bucket. + |
+
Anonymous users + |
+Visitors who have not registered. If the permissions to access a bucket or an object are granted to anonymous users, everyone can access the object or bucket without identity authentication. + NOTICE:
+If the permissions to access a bucket or an object are granted to anonymous users, everyone can access the object or bucket without identity authentication. + |
+
Log delivery user groups + NOTE:
+Only the bucket ACL supports authorizing permissions to the log delivery user. + |
+A log delivery user group only delivers access logs of buckets and objects to the configured target bucket. OBS does not create or upload any file to a bucket automatically. Therefore, if you want to record access logs for buckets, you need to grant the permission to a log delivery user group who will deliver the access logs to your specified target bucket. This user group is only used to record internal logs of OBS. + NOTICE:
+After logging is enabled, the log delivery user will be automatically granted the permission to read the bucket ACL and write the bucket where logs are saved. If you manually disable such permissions, bucket logging fails. + |
+
Table 2 lists the access permissions of a bucket ACL.
+ +Permission Related Concepts + |
+Option + |
+Description + |
+
|---|---|---|
Access to Bucket + |
+Read + |
+A grantee with the read access to a bucket can obtain the list of objects in the bucket and the metadata of the bucket. + |
+
Object read + |
+A grantee with this permission can obtain the object content and metadata. + |
+|
Write + |
+A grantee with the write access to a bucket can upload, overwrite, and delete any object in the bucket. + |
+|
Access to ACL + |
+Read + |
+A grantee with the read access to a bucket ACL can obtain the ACL of the bucket. +The bucket owner has this permission permanently by default. + |
+
Write + |
+A grantee with the write access to a bucket ACL can update the ACL of the bucket. +The bucket owner has this permission permanently by default. + |
+
Table 3 lists the access permissions of an object ACL.
+ +Permission Related Concepts + |
+Option + |
+Description + |
+
|---|---|---|
Access to Object + |
+Read + |
+A grantee with the read access to an object can obtain the content and the metadata of the object. + |
+
Access to ACL + |
+Read + |
+A grantee with the read access to an object ACL can obtain the ACL of the object. +The object owner has this permission permanently by default. + |
+
Write + |
+A grantee with the write access to an object ACL can update the ACL of the object. +The object owner has this permission permanently by default. + |
+
Every time you change the bucket or object access permission setting in an ACL, it overwrites the existing setting instead of adding a new access permission to the bucket or object.
+You can configure bucket ACLs to:
+You can configure object ACLs to:
+Access Control Policies
+You can set an access control policy in a header when creating a bucket or uploading an object (for details about the examples, see Creating a Bucket and Uploading Objects - PUT). Only the access control policies predefined in OBS are available. The x-obs-acl is special, which can be configured with six types of permissions. No matter what type of permissions is configured, the owner has full control permission for the buckets or objects. The following table lists the predefined policies.
+ +Policy + |
+Description + |
+
|---|---|
private + |
+Indicates that a bucket or object can be accessed only by its owner. + |
+
public-read + |
+If this permission is set for a bucket, everyone can obtain the object list, multipart tasks, bucket metadata, and multiple object versions. +If this permission is set for an object, everyone can obtain the content and metadata of the object. + |
+
public-read-write + |
+If this permission is configured for a bucket, everyone can obtain the object list, multipart uploads, bucket metadata, and object versions, and can upload or delete objects, initiate multipart uploads, upload parts, assemble parts, copy parts, and cancel multipart uploads. +If this permission is set for an object, everyone can obtain the content and metadata of the object. + |
+
public-read-delivered + |
+If this permission is set for a bucket, everyone can obtain the object list, multipart tasks, bucket metadata, and multiple object versions, and obtain the content and metadata of the objects in the bucket. +This permission does not apply to objects. + |
+
public-read-write-delivered + |
+If this permission is configured for a bucket, everyone can obtain the object list, multipart uploads, bucket metadata, and object versions, and can upload or delete objects, initiate multipart uploads, upload parts, assemble parts, copy parts, and cancel multipart uploads. Users can also obtain content and metadata of objects in the bucket. +This permission does not apply to objects. + |
+
bucket-owner-full-control + |
+If this permission is configured for an object, the bucket and object owners have the full control over the object. +By default, if you upload an object to a bucket of any other user, the bucket owner does not have the permissions on your object. After you grant this policy to the bucket owner, the bucket owner can have full control over your object. ++ |
+
By default, the access control policy is private.
+You can also use the following header fields to set access control policies when creating a bucket or uploading an object.
+ +Header + |
+Description + |
+
|---|---|
x-obs-grant-read + |
+Used to grant the READ permission to all users in a specific account. + |
+
x-obs-grant-write + |
+Used to grant the WRITE permission to all users in a specific account. + |
+
x-obs-grant-read-acp + |
+Used to grant the READ_ACP permission to all users in a specific account. + |
+
x-obs-grant-write-acp + |
+Used to grant the WRITE_ACP permission to all users in a specific account. + |
+
x-obs-grant-full-control + |
+Used to grant the FULL_CONTROL permission to all users in a specific account. + |
+
x-obs-grant-read-delivered + |
+Used to grant the READ permission for buckets and objects in the buckets to all users in a specific account, and objects inherit the permissions of their bucket. +This permission does not apply to objects. + |
+
x-obs-grant- full-control- delivered + |
+Used to grant the FULL_CONTROL permission for buckets and objects in the buckets to all users in a specific account, and objects inherit the permissions of their bucket. +This permission does not apply to objects. + |
+
OBS provides REST APIs that supports authenticated requests and anonymous requests. Anonymous requests are typically used for scenarios that require public access, such as accessing a hosted static website. In most scenarios, accessing OBS resources require authenticated requests. An authenticated request contains a signature value. The signature value is calculated based on the requester's access keys (a pair of AK and SK) as the encryption factor and the specific information carried by the request body. The signature calculation process is included in the SDK. You only need to prepare the access keys when initializing the SDK. Then the signature calculation is implemented automatically. However, if a client uses the REST APIs to develop a program to access OBS, the client needs to calculate the signature based on the signature algorithm defined by the OBS and add the signature to the request.
+Users can create permanent access keys (a pair of AK and SK) on the My Credentials page.
+An AK is also the unique identifier of an IAM user. OBS identifies a user based on its AK and SK, and then checks the permissions.
+For details about how to obtain the permanent access keys, see Where Can I Obtain Access Keys (AK and SK)?
+OBS can be accessed through temporary access keys and the security token, which can be obtained on IAM. You can assign the temporary access keys (including the security token) to a third-party application and an IAM user, so they can access OBS within a specified period of time.
+You can obtain the temporary access keys and security token by calling the IAM API in Obtaining a Temporary AK/SK.
+Temporary AK/SK and security token comply with the least privilege principle and can be used to temporarily access OBS. When you use a temporary AK/SK pair to call an API for authentication, you must use the temporary AK/SK and security token at the same time and add the x-obs-security-token field to the request header.
+Temporary access keys have the following advantages over permanent access keys of IAM users:
+For details, see Authenticating a Request.
+When an IAM user calls the IAM API in Obtaining a Temporary AK/SK, the user can specify parameter policy to add a temporary policy for the temporary access keys to further restrict the permissions granted to other users. The format and content of a temporary policy are consistent with those specified in IAM Permissions.
+As shown in the following figure, circle 1 indicates the original permissions of an IAM user, and circle 2 indicates the temporary permissions specified by a temporary policy. The overlapped part 3 is the scope of permissions enabled by the temporary access keys.
+
Temporary access keys comply with the least privilege principle. Configure a temporary policy within the original permission scope of an IAM user. Otherwise you may be confused about why permissions enabled by a temporary policy are not effective. As illustrated by the following figure, the finally effective permissions are the authorized temporary permissions.
+
A temporary policy authentication starts from the Deny statements. Unspecified permissions are denied by default.
+
Therefore, you are advised to specify only the allowed permission.
+Temporary access keys are used to authorize third parties to temporarily access OBS. For example, some companies have their user management systems, which manage device app users and local enterprise users. These users do not have IAM user permissions, so IAM users can grant temporary access keys to these users when they need to access OBS.
+Typical application scenario:
+A company has a large number of device apps that need to access OBS. Different apps represent different end users who require different access permissions. In this case, temporary access keys can be used to access OBS.
+
IAM users can obtain the temporary access keys and security token by calling the IAM API in Obtaining a Temporary AK/SK. When calling this API, pass the policy parameter to set a temporary policy. An example is provided as follows:
+{
+ "auth": {
+ "identity": {
+ "methods": [
+ ... ...
+ ],
+ "policy": {
+ ... ...
+ }
+ }
+ }
+}
+The policy's syntax and format are the same as those specified in IAM Permissions.
+For details, see Granting Temporary Access to OBS.
+You can use a temporary URL to access OBS and perform operations such as bucket creation or object upload and download. This section describes how to share objects using a temporary URL.
+You can share objects (files or folders) stored in OBS with all users within a specified period.
+Sharing a file
+All URLs generated during file sharing are temporary and remain valid for a limited period of time.
+A temporary URL uses V4 temporarily authorized requests. The following is a temporary URL sample:
+https://oss.regionid.example.region.com/bucketname/objectname?X-Amz-Algorithm=xxx&X-Amz-Credential=xxx&X-Amz-Date=xxx&X-Amz-Expires=900&X-Amz-Signature=xxx&X-Amz-SignedHeaders=xxx&response-content-disposition=xxx+
For details about the temporary authentication and parameters, see V4 Temporarily Authorized Request in the Object Storage Service API Reference. A temporary URL also contains the response-content-disposition parameter that defines whether an object is directly downloaded or previewed in a browser when it is accessed. This is determined by the browser based on the Content-Type of the shared object.
+After you share an object by choosing More > Copy Object URL on OBS Console, the system will generate a URL that contains the temporary authentication information, valid for 900 seconds since its generation by default. Each time you click Copy Object URL, OBS will obtain the authentication information again to generate a new sharing URL whose validity period is reset.
+The IAM agency is a function of Identity and Access Management (IAM). In some OBS application scenarios (such as CDN private bucket retrieval and cross-region replication), IAM agencies are required to grant other users or cloud services the permission to access OBS and manage OBS resources for the delegating party, thus implementing secure and efficient agent maintenance.
+For details about IAM agencies, see Identity and Access Management User Guide.
+The following typical scenarios are provided to help you better configure OBS permission control.
+Factors to consider before configuring permission control:
+OBS provides various permission control mechanisms for different scenarios. The following figure can help you quickly find the best method that matches your requirements.
+
The following table lists the permission control cases in typical scenarios for your reference.
+ +This topic describes how to grant an IAM user the permissions required to create and list buckets. An IAM user with this permission can create buckets. The created buckets are still owned by the account of the IAM user. The IAM user can view all buckets under the account.
+Permissions to create and list buckets are at OBS service-level, which can be implemented only through IAM. You are advised to use IAM custom policies.
+
Parameter + |
+Description + |
+
|---|---|
Policy Name + |
+Name of the custom policy + |
+
Policy View + |
+Set this parameter based on your own habits. Visual editor is used here. + |
+
Policy Content + |
+
|
+
Scope + |
+The default value is Global services. + |
+
Add the created custom policy to the user group by following the instructions in the IAM document.
+
Due to data caching, it takes about 10 to 15 minutes for a custom policy to take effect after the authorization.
+This topic describes how to grant an IAM user the read and write permissions on an OBS bucket.
+You are advised to use bucket policies to grant resource-level permissions to an IAM user.
+The preset read/write mode of OBS has the following permissions:
+After the configuration is complete, read and write operations (uploading, downloading, and deleting all objects in the bucket) can be performed using APIs or SDKs. However, if you log in to OBS Console or OBS Browser+ to perform those operations, an error is reported indicating that you do not have required permissions. .
+If you want an IAM user to perform read and write operations on OBS Console or OBS Browser+, configure custom IAM policies by referring to Follow-up Procedure.
+After the configuration is complete, the system still displays a message indicating that you do not have the permission to access the bucket. This is normal because the console invokes other advanced configuration APIs, but you can still perform operations allowed in read/write mode.
+
Parameter + |
+Description + |
+
|---|---|
Policy Mode + |
+Select Read and write. + |
+
Principal + |
+
|
+
Resources + |
+
|
+
To perform read and write operations on OBS Console or OBS Browser+, you must add the obs:bucket:ListAllMyBuckets (for listing buckets) and obs:bucket:ListBucket (for listing objects in a bucket) permissions to the custom IAM policy.
+
obs:bucket:ListAllMyBuckets applies to all resources, while obs:bucket:ListBucket applies to the authorized bucket only. Therefore, you need to add two permissions to the policy.
+
Parameter + |
+Description + |
+
|---|---|
Policy Name + |
+Name of the custom policy + |
+
Policy View + |
+Set this parameter based on your own habits. Visual editor is used here. + |
+
Policy Content + |
+[Permission 1] +
[Permission 2] +
|
+
Scope + |
+The default value is Global services. + |
+
Add the created custom policy to the user group by following the instructions in the IAM document.
+
Due to data caching, it takes about 10 to 15 minutes for a custom policy to take effect after the authorization.
+This topic describes how to grant an IAM user the permissions required to perform specific operations on an OBS bucket. Below describes how to grant the bucket deletion permission.
+If you need to configure other permissions, select the corresponding actions from the Action Name drop-down list in the bucket policy. For details about the actions supported by OBS, see Action/NotAction.
+You are advised to use bucket policies to grant resource-level permissions to an IAM user.
+After the configuration is complete, you can delete buckets using APIs. However, if you log in to OBS Console or OBS Browser+ to delete buckets, an error is reported indicating that you do not have required permissions.
+This is because when you log in to OBS Console or OBS Browser+, more APIs (such as ListAllMyBuckets and ListBucketVersions) are called to load the list of buckets and versioned objects, but your permissions do not cover those APIs. In such case, your access is denied or your operation is not allowed.
+If you want an IAM user to delete buckets on OBS Console or OBS Browser+, allow the ListBucketVersions permission in the bucket policy and configure a custom IAM policy to grant the ListAllMyBuckets permission by referring to Follow-up Procedure.
+
Parameter + |
+Description + |
+
|---|---|
Policy Mode + |
+Select Customized. + |
+
Effect + |
+Select Allow. + |
+
Principal + |
+
|
+
Resources + |
+Select Include > Entire bucket. + |
+
Actions + |
+
To configure other permissions, select the corresponding actions. For details about the actions supported by OBS, see Action/NotAction. + |
+
To successfully delete buckets on OBS Console or OBS Browser+, you need to allow the obs:bucket:ListAllMyBuckets (for listing buckets) permission in the IAM policy.
+
Parameter + |
+Description + |
+
|---|---|
Policy Name + |
+Name of the custom policy + |
+
Policy View + |
+Set this parameter based on your own habits. Visual editor is used here. + |
+
Policy Content + |
+
|
+
Scope + |
+The default value is Global services. + |
+
Add the created custom policy to the user group by following the instructions in the IAM document.
+
Due to data caching, it takes about 10 to 15 minutes for a custom policy to take effect after the authorization.
+This topic describes how to grant an IAM user the read permission on an object or a set of objects in an OBS bucket.
+You are advised to use bucket policies to grant resource-level permissions to an IAM user.
+The preset read-only mode of OBS has the following permissions:
+After the configuration is complete, you can read (download) specific objects using APIs. However, if you download an object from OBS Console or OBS Browser+, an error is reported indicating that you do not have required permissions.
+This is because when you log in to OBS Console or OBS Browser+, APIs (such as ListAllMyBuckets and ListBucket) are called to load the bucket list and object list and some other APIs will also be called on other pages, but your permissions do not cover those APIs. In such case, your access is denied or your operation is not allowed.
+If you want an IAM user to perform read operations on OBS Console or OBS Browser+, configure custom IAM policies by referring to Follow-up Procedure.
+
Parameter + |
+Description + |
+
|---|---|
Policy Mode + |
+Select Read-only. + |
+
Principal + |
+
|
+
Resources + |
+
|
+
To perform read operations on OBS Console or OBS Browser+, you must add the obs:bucket:ListAllMyBuckets (for listing buckets) and obs:bucket:ListBucket (for listing objects in a bucket) permissions to the custom IAM policy.
+
obs:bucket:ListAllMyBuckets applies to all resources, while obs:bucket:ListBucket applies to the authorized bucket only. Therefore, you need to add two permissions to the policy.
+
Parameter + |
+Description + |
+
|---|---|
Policy Name + |
+Name of the custom policy + |
+
Policy View + |
+Set this parameter based on your own habits. Visual editor is used here. + |
+
Policy Content + |
+[Permission 1] +
[Permission 2] +
|
+
Scope + |
+The default value is Global services. + |
+
Add the created custom policy to the user group by following the instructions in the IAM document.
+
Due to data caching, it takes about 10 to 15 minutes for a custom policy to take effect after the authorization.
+This topic describes how to grant an IAM user certain permissions on specific objects in a bucket. Below explains how to grant the object download permission.
+If you need to configure other permissions, select the corresponding actions from the Action Name drop-down list in the bucket policy. For details about the actions supported by OBS, see Action/NotAction.
+You are advised to use bucket policies to grant resource-level permissions to an IAM user.
+After the configuration is complete, you can download objects using APIs. However, if you log in to OBS Console or OBS Browser+ to download an object, an error is reported indicating that you do not have required permissions.
+This is because when you log in to OBS Console or OBS Browser+, APIs (such as ListAllMyBuckets and ListBucket) are called to load the bucket list and object list and some other APIs will also be called on other pages, but your permissions do not cover those APIs. In such case, your access is denied or your operation is not allowed.
+If you want an IAM user to successfully download objects on OBS Console or OBS Browser+, configure custom IAM policies by referring to Follow-up Procedure.
+
Parameter + |
+Description + |
+
|---|---|
Policy Mode + |
+Select Customized. + |
+
Effect + |
+Select Allow. + |
+
Principal + |
+
|
+
Resources + |
+
|
+
Actions + |
+
To configure other permissions, select the corresponding actions. For details about the actions supported by OBS, see Action/NotAction. + |
+
To perform specific operations on OBS Console or OBS Browser+, you must add the obs:bucket:ListAllMyBuckets (for listing buckets) and obs:bucket:ListBucket (for listing objects in a bucket) permissions to the custom IAM policy.
+
obs:bucket:ListAllMyBuckets applies to all resources, while obs:bucket:ListBucket applies to the authorized bucket only. Therefore, you need to add two permissions to the policy.
+
Parameter + |
+Description + |
+
|---|---|
Policy Name + |
+Name of the custom policy + |
+
Policy View + |
+Set this parameter based on your own habits. Visual editor is used here. + |
+
Policy Content + |
+[Permission 1] +
[Permission 2] +
|
+
Scope + |
+The default value is Global services. + |
+
Add the created custom policy to the user group by following the instructions in the IAM document.
+
Due to data caching, it takes about 10 to 15 minutes for a custom policy to take effect after the authorization.
+This topic describes how to grant multiple IAM users or user groups all permissions on all OBS resources. Users with this permission can perform any OBS operation.
+IAM custom policies
+
Parameter + |
+Description + |
+
|---|---|
Policy Name + |
+Name of the custom policy + |
+
Policy View + |
+Set this parameter based on your own habits. Visual editor is used here. + |
+
Policy Content + |
+
|
+
Scope + |
+The default value is Global services. + |
+
Add the created custom policy to the user group by following the instructions in the IAM document.
+
Due to data caching, it takes about 10 to 15 minutes for a custom policy to take effect after the authorization.
+This topic describes how to use the OBS-related system roles and policies preset in IAM to grant basic operation permissions on all OBS resources to multiple IAM users or user groups. The following table lists the permissions supported by preset system roles and policies.
+ +Role/Policy Name + |
+Description + |
+Type + |
+
|---|---|---|
Tenant Administrator + |
+Users with this permission can perform all operations on all services except IAM. + |
+System-defined role + |
+
Tenant Guest + |
+Users with this permission can perform read-only operations on all services except IAM. + |
+System-defined role + |
+
OBS Administrator + |
+Users with this permission are OBS administrators and can perform any operations on all OBS resources under the account. + |
+System-defined policy + |
+
OBS Buckets Viewer + |
+Users with this permission can list buckets, obtain basic bucket information, and obtain bucket metadata. + |
+System-defined role + |
+
OBS ReadOnlyAccess + |
+Users with this permission can list buckets, obtain basic bucket information, obtain bucket metadata, and list objects (not the objects that have been versioned). + NOTE:
+If a user with this permission fails to list objects on OBS Console, there may be multiple versions of objects in the bucket. In this case, you need to grant the user the obs:bucket:ListBucketVersions permission so that the user can view different versions of objects on OBS Console. + |
+System-defined policy + |
+
OBS OperateAccess + |
+Users with this permission can perform all OBS ReadOnlyAccess operations and perform basic object operations, such as uploading objects, downloading objects, deleting objects, and obtaining object ACLs. + NOTE:
+If a user with this permission fails to list objects on OBS Console, there may be multiple versions of objects in the bucket. In this case, you need to grant the user the obs:bucket:ListBucketVersions permission so that the user can view different versions of objects on OBS Console. + |
+System-defined policy + |
+
IAM system roles and policies
+After a system role or policy is configured according to this case, if you log in to the system using OBS Console or OBS Browser+, a message may be displayed indicating that you do not have the permission.
+Authorized permissions are valid, though operations on the console or client are restricted. You can call the APIs directly.
+With OBS OperateAccess configured, you can upload or download objects on OBS Console or OBS Browser+.
+Add system roles or policies that meet the service scenario requirements to the user group by following the instructions provided in the IAM document.
+
Due to data caching, it takes about 10 to 15 minutes for the configured permissions to take effect.
+This topic describes how to grant multiple IAM users or user groups specific permissions on all OBS resources.
+IAM custom policies
+After the configuration is complete, you can perform allowed operations using APIs. However, if you log in to OBS Console or OBS Browser+ to perform those operations, an error is reported indicating that you do not have required permissions.
+This is because when you log in to OBS Console or OBS Browser+, APIs (such as ListAllMyBuckets and ListBucket) are called to load the bucket list and object list and some other APIs will also be called on other pages, but your permissions do not cover those APIs. In such case, your access to OBS Console or OBS Browser+ is denied or your operation is not allowed.
+To allow IAM users to operate buckets and objects on OBS Console or OBS Browser+, add at least the obs:bucket:ListAllMyBuckets and obs:bucket:ListBucket permissions to the custom policy.
+
Parameter + |
+Description + |
+
|---|---|
Policy Name + |
+Name of the custom policy + |
+
Policy View + |
+Set this parameter based on your own habits. Visual editor is used here. + |
+
Policy Content + |
+
|
+
Scope + |
+The default value is Global services. + |
+
Add the created custom policy to the user group by following the instructions in the IAM document.
+
Due to data caching, it takes about 10 to 15 minutes for a custom policy to take effect after the authorization.
+This topic describes how to grant certain operation permissions on specific OBS resources (can be a bucket or an object) to multiple IAM users or user groups.
+IAM custom policies
+After the configuration is complete, you can perform allowed operations using APIs. However, if you log in to OBS Console or OBS Browser+ to perform those operations, an error is reported indicating that you do not have required permissions.
+This is because when you log in to OBS Console or OBS Browser+, APIs (such as ListAllMyBuckets and ListBucket) are called to load the bucket list and object list and some other APIs will also be called on other pages, but your permissions do not cover those APIs. In such case, your access to OBS Console or OBS Browser+ is denied or your operation is not allowed.
+To allow IAM users to operate buckets and objects on OBS Console or OBS Browser+, add at least the obs:bucket:ListAllMyBuckets and obs:bucket:ListBucket permissions to the custom policy.
+
obs:bucket:ListAllMyBuckets applies to all resources. You need to select all resources.
+obs:bucket:ListBucket applies only to the authorized bucket. You can select all resources or a specified bucket as needed.
+
Parameter + |
+Description + |
+
|---|---|
Policy Name + |
+Name of the custom policy + |
+
Policy View + |
+Set this parameter based on your own habits. Visual editor is used here. + |
+
Policy Content + |
+[Permission 1] It is mandatory when an authorized user needs to perform operations on OBS Console or OBS Browser+. +
[Permission 2] +
|
+
Scope + |
+The default value is Global services. + |
+
Add the created custom policy to the user group by following the instructions in the IAM document.
+
Due to data caching, it takes about 10 to 15 minutes for a custom policy to take effect after the authorization.
+This topic describes how to grant other accounts (excluding the IAM users under them) the read and write permissions on OBS buckets. For details about how to grant permissions to an IAM user, see Granting IAM Users Under an Account the Access to a Bucket and Resources in the Bucket.
+You are advised to use bucket policies to grant permissions to other accounts.
+After the configuration is complete, the authorized account can perform read and write operations (upload, download, or delete all objects in a bucket) by using APIs or by adding external buckets through OBS Browser+. To do this by adding external buckets, the ListBucket permission is also required. Currently, access to buckets of other accounts is not allowed on OBS Console.
+After the ListBucket permission is configured, a message may still be displayed indicating that you do not have the permission to access the added external bucket through OBS Browser+.
+Error cause: The loading on the OBS Browser+ bucket details page invokes some other OBS APIs. However, such operations are not allowed by the read and write permissions. Therefore, a message "Access denied. Check the response permission" or "This operation is not allowed on the requested resource" is displayed, however, existing permissions are not affected.
+
Parameter + |
+Description + |
+
|---|---|
Policy Mode + |
+Select Read and write. + |
+
Principal + |
+
|
+
Resources + |
+
|
+
If the authorized account wants to access the OBS bucket on OBS Browser+ by mounting an external bucket, you need to add a ListBucket permission.
+
Parameter + |
+Description + |
+
|---|---|
Policy Mode + |
+Select Customized. + |
+
Effect + |
+Select Allow. + |
+
Principal + |
+
|
+
Resources + |
+Select Include > Entire bucket. + |
+
Actions + |
+
|
+
This topic describes how to grant other accounts (excluding the IAM users under them) specific operation permissions on OBS buckets. For details about how to grant permissions to an IAM user, see Granting IAM Users Under an Account the Access to a Bucket and Resources in the Bucket.
+The following example explains how to grant the permissions to configure a bucket ACL and obtain the bucket ACL configuration information. If you need to configure other permissions, select the corresponding actions from the Action Name drop-down list in the bucket policy. For details about the actions supported by OBS, see Action/NotAction.
+You are advised to use bucket policies to grant permissions to other accounts.
+After the configuration is complete, the authorized account can configure and obtain a bucket ACL by using APIs or SDKs or by adding external buckets through OBS Browser+. To do this by adding external buckets, the ListBucket permission is also required. Currently, access to buckets of other accounts is not allowed on OBS Console.
+
Parameter + |
+Description + |
+
|---|---|
Policy Mode + |
+Select Customized. + |
+
Effect + |
+Select Allow. + |
+
Principal + |
+
|
+
Resources + |
+Select Include > Entire bucket. + |
+
Actions + |
+
To configure other permissions, select the corresponding actions. For details about the actions supported by OBS, see Action/NotAction. + |
+
This topic describes how to grant IAM users the permissions to access OBS buckets and resources in them.
+The following describes how to grant the permissions to upload and download objects in a bucket. If you need to configure other specified permissions, configure the corresponding permissions in the bucket policy and IAM permissions.
+To grant permissions to IAM users under other accounts, you need to configure both bucket policies and IAM permissions.
+For example, to allow IAM user A of account A to access bucket B of account B, you need to:
+The permissions allowed by both bucket policies and IAM permissions take effect.
+After the configuration is complete, the authorized IAM user can upload and download objects through APIs. In addition, the user can upload and download objects by mounting external buckets on OBS Browser+. To add external buckets, the ListBucket permission is also required. Currently, access to buckets of other accounts is not allowed on OBS Console.
+The bucket owner or a user who has the permission to configure bucket policies needs to configure a bucket policy that allows specified operations.
+
Parameter + |
+Description + |
+
|---|---|
Policy Mode + |
+Select Customized. + |
+
Effect + |
+Select Allow. + |
+
Principal + |
+
|
+
Resources + |
+
|
+
Actions + |
+
To configure other specified operation permissions on objects, select the corresponding actions. For details about the actions supported by OBS, see Action/NotAction. + |
+

Parameter + |
+Description + |
+
|---|---|
Policy Mode + |
+Select Customized. + |
+
Effect + |
+Select Allow. + |
+
Principal + |
+
|
+
Resources + |
+Select Include > Entire bucket. + |
+
Actions + |
+
To configure other specified permissions on buckets, select the corresponding actions. For details about the actions supported by OBS, see Action/NotAction. + |
+
The account to which the authorized IAM user belongs needs to configure the IAM permission for the IAM user to perform specified operations on the specified bucket. The allowed operations must be the same as those specified in the bucket policy.
+
Parameter + |
+Description + |
+
|---|---|
Policy Name + |
+Name of the custom policy + |
+
Policy View + |
+Set this parameter based on your own habits. Visual editor is used here. + |
+
Policy Content + |
+
|
+
Scope + |
+The default value is Global services. + |
+
Add the created custom policy to the user group by following the instructions in the IAM document.
+
Due to data caching, it takes about 10 to 15 minutes for a custom policy to take effect after the authorization.
+This case describes how to grant other accounts (excluding IAM users under the account) the read permission for an object or a type of objects in an OBS bucket. For details about how to grant permissions to an IAM user, see Granting IAM Users Under an Account the Access to a Bucket and Resources in the Bucket.
+You are advised to use bucket policies to grant permissions to other accounts.
+The preset read-only mode of OBS has the following permissions:
+After the configuration is complete, you can read (download) specific objects using APIs. However, if you download an object from OBS Console or OBS Browser+, an error is reported indicating that you do not have required permissions.
+This is because when you log in to OBS Console or OBS Browser+, APIs (such as ListAllMyBuckets and ListBucket) are called to load the bucket list and object list and some other APIs will also be called on other pages, but your permissions do not cover those APIs. In such case, your access is denied or your operation is not allowed.
+
Parameter + |
+Description + |
+
|---|---|
Policy Mode + |
+Select Read-only. + |
+
Principal + |
+
|
+
Resources + |
+
|
+
This case describes how to grant other accounts the specified operation permission on a specified object in an OBS bucket. The following describes how to grant the permission to download an object.
+If you need to configure other permissions, select the corresponding actions from the Action Name drop-down list in the bucket policy. For details about the actions supported by OBS, see Action/NotAction.
+For details about how to grant permissions to an IAM user, see Granting IAM Users Under an Account the Access to a Bucket and Resources in the Bucket.
+You are advised to use bucket policies to grant permissions to other accounts.
+After the configuration is complete, you can download objects using APIs. However, if you log in to OBS Console or OBS Browser+ to download an object, an error is reported indicating that you do not have required permissions.
+This is because when you log in to OBS Console or OBS Browser+, APIs (such as ListAllMyBuckets and ListBucket) are called to load the bucket list and object list and some other APIs will also be called on other pages, but your permissions do not cover those APIs. In such case, your access is denied or your operation is not allowed.
+
Parameter + |
+Description + |
+
|---|---|
Policy Mode + |
+Select Customized. + |
+
Effect + |
+Select Allow. + |
+
Principal + |
+
|
+
Resources + |
+
|
+
Actions + |
+
To configure other permissions, select the corresponding actions. For details about the actions supported by OBS, see Action/NotAction. + |
+
If a bucket needs to be accessed by anonymous users, you can configure a bucket policy and bucket ACL to grant the access permission to anonymous users. The following uses a bucket policy as an example.
+The Public Read policy allows any user to read objects in a bucket. Public Read has the following permissions:
+
When you access a bucket through its domain name, the ListBucket permission allows you to list all objects in the bucket. If you want to restrict this permission to specified users under an account, see Related Scenario: Canceling the ListBucket Permission from the Public Read Policy.
+
If you want to restrict the ListBucket permission to specified users under an account, you need to configure another bucket policy.
+
Parameter + |
+Description + |
+
|---|---|
Policy Mode + |
+Select Customized. + |
+
Effect + |
+Select Deny. + |
+
Principal + |
+Select Exclude.
+
|
+
Resources + |
+Select Include > Entire bucket. + |
+
Actions + |
+
|
+
Verification: After the permission is set, in the Basic Information area of the bucket details page, locate Access Domain Name. Publish the URL on the Internet, and verify that only specified users can list objects in the bucket.
+If all objects in a folder need to be accessible to anonymous users, you can configure a bucket policy to grant anonymous users the permission to access the folder.
+The preset read-only mode of OBS has the following permissions:
+
Parameter + |
+Value + |
+
|---|---|
Policy Mode + |
+Select Read-only. + |
+
Principal + |
+
|
+
Resources + |
+
|
+
After the permission is set, click an object in the folder. Its URL is displayed under Link. Share the URL over the Internet, so that all users can access or download the object through the Internet.
+Enterprise A stores a large volume of map data in OBS, and offers the data for public query. This enterprise sets a read permission for anonymous users, and provides the data URLs on the Internet. Then all users can read or download the data through the URLs.
+
After the permission is set, click the object. Its URL is displayed under Link. Share the URL over the Internet, so that all users can access or download the object through the Internet.
+If you want to open an object to all users for a limited period of time, you can use the object sharing function.
+Once the Share File dialog box is opened, the URL is effective and valid for five minutes by default. If you change the validity period, the authentication information in the URL changes accordingly, and the URL's new validity period starts upon the change.
+
Within the validity period of a URL, any user who has the URL can access the file.
+This case describes how to restrict the source IP addresses that can access an OBS bucket. The following shows how to deny a client access whose source IP address is within the range of 114.115.1.0/24.
+Bucket policy
+
Parameter + |
+Description + |
+
|---|---|
Policy Mode + |
+Select Customized. + |
+
Effect + |
+Select Deny. + |
+
Principal + |
+
|
+
Resources + |
+Select Include > Entire bucket. + |
+
Actions + |
+
|
+
Conditions + |
+
|
+
If you want to allow clients whose IP addresses are outside the configured range to access your bucket, grant access permissions to anonymous users by referring to Granting Permissions to Anonymous Users.
+Initiate an access request from an IP address within the range of 114.115.1.0/24. The access is denied. Initiate an access request from an IP address outside the range of 114.115.1.0/24. The access is allowed.
+To allow only a specified IP address to access the OBS bucket, set Condition Operator to NotIpAddress and specify the allowed IP address as the Value.
+This case describes how to use temporary access keys (temporary AK/SK and security token) to access OBS in temporary authorization mode.
+Assume that you want to enable an IAM user (user name: APPServer) to access the APPClient folder in bucket hi-company and apply for two different temporary access keys to distribute to APP-1 and APP-2. APP-1 can only access files in APPClient/APP-1. APP-2 can access only the files in APPClient/APP-2.
+
Before configuring an IAM policy, you need to understand what permissions are required. An IAM user only has the permissions defined by the policy. In this example, user APPServer only has full permissions on objects in the APPClient folder.
+
Parameter + |
+Description + |
+
|---|---|
Policy Name + |
+Name of the custom policy + |
+
Policy View + |
+Set this parameter based on your own habits. JSON is used here. + |
+
Policy Content + |
+{
+ "Version": "1.1",
+ "Statement": [
+ {
+ "Action": [
+ "obs:object:*"
+ ],
+ "Resource": [
+ "obs:*:*:object:hi-company/APPClient/*"
+ ],
+ "Effect": "Allow"
+ }
+ ]
+}
+ |
+
Scope + |
+The default value is Global services. + |
+
Add the created custom policy to the user group by following the instructions in the IAM document.
+
Due to data caching, it takes about 10 to 15 minutes for a custom policy to take effect after the authorization.
+To obtain temporary access keys with different permissions, you need to set a temporary policy by adding the policy parameter in the request body. For details, see Obtaining a Temporary AK/SK.
+The following is a sample request for obtaining a pair of temporary access keys. The temporary policy parameters are displayed in bold.
+A sample request for obtaining a pair of temporary access keys for the device app APP-1:
+{
+ "auth": {
+ "identity": {
+ "policy": {
+ "Version": "1.1",
+ "Statement": [
+ {
+ "Action": [
+ "obs:object:*"
+ ],
+ "Resource": [
+ "obs:*:*:object:hi-company/APPClient/APP-1/*"
+ ],
+ "Effect": "Allow"
+ }
+ ]
+ },
+ "token": {
+ "duration-seconds": 900
+
+ },
+ "methods": [
+ "token"
+ ]
+ }
+ }
+}
+A sample request for obtaining a pair of temporary access keys for the device app APP-2:
+{
+ "auth": {
+ "identity": {
+ "policy": {
+ "Version": "1.1",
+ "Statement": [
+ {
+ "Action": [
+ "obs:object:*"
+ ],
+ "Resource": [
+ "obs:*:*:object:hi-company/APPClient/APP-2/*"
+ ],
+ "Effect": "Allow"
+ }
+ ]
+ },
+ "token": {
+ "duration-seconds": 900
+
+ },
+ "methods": [
+ "token"
+ ]
+ }
+ }
+}
+After APP-1 and APP-2 have the temporary access keys, they can access OBS through OBS APIs. APP-1 can access only files in the APPClient/APP-1 folder, and APP-2 can access only files in the APPClient/APP-2 folder.
+Date + |
+What's New + |
+
|---|---|
2023-02-16 + |
+This is the second official release. +This issue incorporates the following changes: +Updated the application scenario of access control with IAM permissions. +Updated the GUI screenshots and parameter descriptions about bucket policy creation. + |
+
2022-10-27 + |
+This is the first official release. + |
+
A policy in JSON format is described as follows:
+{
+"Statement" : [{
+ statement1
+ },
+ {
+ statement2
+ },
+ ......
+ ]
+}
+{
+"Statement" : [{
+ "Sid": "ExampleStatementID1",
+ "Principal": "*",
+ "Effect": "Allow",
+ "Action": "ListBucket",
+ "Resource": "examplebucket",
+ "Condition": "some conditions"
+ },
+ {
+ "Sid": "ExampleStatementID2",
+ "Principal": "*",
+ "Effect": "Allow",
+ "Action": "PutObject",
+ "Resource": "examplebucket",
+ "Condition": "some conditions"
+ },
+......
+]
+}
+A policy is comprised of one or more statements. Each statement contains the following elements:
+ +Element + |
+Description + |
+Mandatory/Optional + |
+
|---|---|---|
Sid + |
+ID of a statement. The value is a string that describes the statement. + |
+Optional + |
+
Principal + |
+Domains and users to which a statement applies. The wildcard (*) is supported, indicating all users. When permissions are authorized to all users under a domain, the format of Principal is domain/domainid:user/*. When permissions are authorized to a specific user under a domain, the format of Principal is domain/domainid:user/userId or domain/domainid:user/userName. + |
+Optional. Select either Principal or NotPrincipal. + |
+
NotPrincipal + |
+An exception to a list of principals in the statement. You can deny access to all principals except the ones named in the NotPrincipal element. This parameter has the same value format as Principal. + |
+Optional. Select either NotPrincipal or Principal. + |
+
Action + |
+Actions which a statement applies to. This parameter specifies a set of all the operations supported by OBS. Its values are case insensitive. The value supports a wildcard character (*) that indicates all actions, for example, "Action":["List*", "Get*"]. + |
+Optional. Select either Action or NotAction. + |
+
NotAction + |
+An exception to a list of actions in the statement. All actions are performed except the ones specified in NotAction. This parameter has the same value format as Action. + |
+Optional. Select either Action or NotAction. + |
+
Effect + |
+Whether the permission in a statement is allowed or denied. The value is Allow or Deny. + |
+Mandatory + |
+
Resource + |
+Resources on which the statement takes effect. The wildcard (*) is supported, indicating all resources. + |
+Optional. Select either Resource or NotResource. + |
+
NotResource + |
+An exception to a list of resources in a statement. A policy is not applied to the resources specified in NotResource. This parameter has the same value format as Resource. + |
+Optional. Select either Resource or NotResource. + |
+
Condition + |
+Conditions for a statement to take effect. + |
+Optional + |
+
A statement must contain either Action or NotAction, either Resource or NotResource, and either Principal or NotPrincipal.
+Principal or NotPrincipal supported by OBS includes anonymous users, specific tenants, specific users, federated users, and agencies.
+"Principal": {"ID": "*"}
+In the example, the wildcard (*) is used as a placeholder for Everyone/Anonymous. We strongly recommend that you do not use wildcards in the Principal element of the role's trust policy unless you have restricted access by using the Condition element in the policy.
+If the tenant identifier is used as the authorizer in the policy, permissions in the policy statement can be granted to all roles, including all the users, contained in this tenant. The following example demonstrates how to specify a tenant as an authorizer.
+"Principal": { "ID": " domain/domainIdxxxx:user/*" }
+You can grant permissions to multiple tenants, as described in the following example:
+"Principal": {
+ "ID": [
+ "domain/domainIDxx1:user/useridxxxx",
+ "domain/domainIDxx2:user/*"
+ ]
+}
+In the Principal element, user names are case sensitive.
+"Principal": {"ID": "domain/domainIDxxx:user/user-name" }
+"Principal": {
+ "ID": [
+ "domain/domainIDxxx:user/UserID1",
+ "domain/domainIDxxx:user/UserID2"
+ ]
+}
+"Principal": { "Federated": "domain/domainIDxxx:identity-provider/provider-name" }
+"Principal": { "Federated": "domain/domainIDxxx:group/groupname" }
+The principals on OBS Console refer to the users which the bucket policies apply to. These users can be accounts, federated users or federated user groups, and IAM users. You can specify principals in either of the following ways:
+Specifying IAM users under the current account
+With Principal set to Current account, you can select one or more IAM users under this account, so the bucket policy applies to the selected IAM users.
+Specifying another account
+With Principal set to Other account, you can enter an account ID. If you want to grant access only to IAM users under the account, you need to enter user IDs, and use commas (,) to separate one user ID from another.
+
To obtain the account ID and user ID, log in to the console as an IAM user and go to the My Credentials page.
+Specifying anonymous users
+To grant the bucket access to anyone, set Principal to Other account and enter a wildcard (*) as the account ID.
+
Exercise caution when granting bucket access permissions to anonymous users. If you grant the access permissions to anonymous users, anyone can access your bucket. You are advised to set restrictions on access requests. For example, you can allow the access requests from only one IP address.
+If a policy applies to a bucket, configure bucket-related actions; if the policy applies to the objects in a bucket, configure object-related actions.
+Actions can be specified in either of the following ways:
+Bucket Actions
+ +Type + |
+Value + |
+Description + |
+
|---|---|---|
General + |
+* + |
+Indicates that all operations can be performed on a resource. + |
+
Get* + |
+Indicates that all GET operations can be performed on a resource. + |
+|
Put* + |
+Indicates that all PUT operations can be performed on a resource. + |
+|
List* + |
+Indicates that all LIST operations can be performed on a resource. + |
+|
Bucket + |
+CreateBucket + |
+Creates a bucket. + |
+
DeleteBucket + |
+Deletes a bucket. + |
+|
ListBucket + |
+Lists objects in a bucket, and gets the bucket metadata. + |
+|
ListBucketVersions + |
+Lists versioned objects in a bucket. + |
+|
ListBucketMultipartUploads + |
+Lists multipart upload tasks. + |
+|
GetBucketAcl + |
+Gets the bucket ACL information. + |
+|
PutBucketAcl + |
+Configures a bucket ACL. + |
+|
GetBucketCORS + |
+Gets the CORS configuration of a bucket. + |
+|
PutBucketCORS + |
+Configures CORS for a bucket. + |
+|
GetBucketVersioning + |
+Gets the bucket versioning information. + |
+|
PutBucketVersioning + |
+Configures versioning for a bucket. + |
+|
GetBucketLocation + |
+Gets the bucket location. + |
+|
GetBucketLogging + |
+Gets the bucket logging information. + |
+|
PutBucketLogging + |
+Configures logging for a bucket. + |
+|
GetBucketWebsite + |
+Obtains the static website configuration information of a bucket. + |
+|
PutBucketWebsite + |
+Configures static website hosting for a bucket. + |
+|
DeleteBucketWebsite + |
+Cancels the static website hosting of a bucket. + |
+|
GetLifecycleConfiguration + |
+Obtains the lifecycle rules of a bucket. + |
+|
PutLifecycleConfiguration + |
+Configures a lifecycle rule for a bucket. + |
+
Object Actions
+ +Type + |
+Value + |
+Description + |
+
|---|---|---|
General + |
+* + |
+Indicates that all operations can be performed on a resource. + |
+
Get* + |
+Indicates that all GET operations can be performed on a resource. + |
+|
Put* + |
+Indicates that all PUT operations can be performed on a resource. + |
+|
List* + |
+Indicates that all LIST operations can be performed on a resource. + |
+|
Object + |
+GetObject + |
+Gets the content and metadata of an object. + |
+
GetObjectVersion + |
+Gets the content and metadata of a specified object version. + |
+|
PutObject + |
+Performs PUT upload, POST upload, multipart upload, initialization of uploaded parts, and merging of parts. + |
+|
GetObjectAcl + |
+Gets the object ACL information. + |
+|
GetObjectVersionAcl + |
+Gets the ACL information of a specified object version. + |
+|
PutObjectAcl + |
+Configures the ACL for an object. + |
+|
PutObjectVersionAcl + |
+Configures the ACL for a specified object version. + |
+|
DeleteObject + |
+Deletes an object. + |
+|
DeleteObjectVersion + |
+Deletes a specified object version. + |
+|
ListMultipartUploadParts + |
+Lists uploaded parts. + |
+|
AbortMultipartUpload + |
+Cancels a multipart upload. + |
+
The resources supported by OBS are as follows:
+The following example policy grants all operation permissions on examplebucket (including the bucket and its objects) to user1 whose user ID is 71f3901173514e6988115ea2c26d1999 under account b4bf1b36d9ca43d984fbcb9491b6fce9 (account ID).
+{
+ "Statement":[
+ {
+ "Sid":"test",
+ "Effect":"Allow",
+ "Principal": {"ID": ["domain/b4bf1b36d9ca43d984fbcb9491b6fce9:user/71f3901173514e6988115ea2c26d1999"]},
+ "Action":["*"],
+ "Resource":["examplebucket/*","examplebucket"]
+ }
+ ]
+}
+On OBS Console, resources can be a bucket or objects in the bucket.
+Resources can be specified in either of the following ways:
+Specifying the bucket as the resource
+To specify the current bucket as the resource, keep the resource text box empty. When configuring actions for the policy, select bucket related actions.
+Specifying objects as the resources
+When objects in a bucket are specified as the resources, configure object-related actions in the bucket policy. The following are examples of how to specify objects as resources.
+imgs-folder/example.jpg
+imgs*
+*.jpg
+
Use commas (,) to separate one object (or object set) from another.
+In addition to the effect, principal, resources, and actions, you can also specify the conditions under which a bucket policy takes effect. The bucket policy takes effect only when its condition expressions match values contained in the request. Conditions are optional. You can choose whether to configure them.
+For example, if account A needs to have full control over an object uploaded by account B to bucket example of account A, the x-obs-acl key must be specified in the upload request and the policy effect must be set to Allow for account A. The complete condition expression is as follows:
+ +Conditional Operator + |
+Key + |
+Value + |
+
|---|---|---|
StringEquals + |
+x-obs-acl + |
+bucket-owner-full-control + |
+
A condition consists of three parts: conditional operator, key, and value. If there are multiple identical keys in the same conditional operator, only the last key is retained. Conditional operators and keys are mutually restricted:
+Table 4 lists the general condition types that you can specify.
+Type + |
+Element + |
+Description + |
+
|---|---|---|
String + |
+StringEquals + |
+Strict matching. Short version: streq + |
+
StringNotEquals + |
+Strict negated matching. Short version: strneq + |
+|
StringEqualsIgnoreCase + |
+Strict matching, ignoring case. Short version: streqi + |
+|
StringNotEqualsIgnoreCase + |
+Strict negated matching, ignoring case. Short version: strneqi + |
+|
StringLike + |
+Loose case-sensitive matching. The values can include a multi-character match wildcard (*) or a single-character match wildcard (?) anywhere in the string. Short version: strl + |
+|
StringNotLike + |
+Negated loose case-sensitive matching. The values can include a multi-character match wildcard (*) or a single-character match wildcard (?) anywhere in the string. Short version: strnl + |
+|
Numeric + |
+NumericEquals + |
+Strict matching. Short version: numeq +Numeric indicates a data type expressed in numbers. + |
+
NumericNotEquals + |
+Strict negated matching. Short version: numneq + |
+|
NumericLessThan + |
+"Less than" matching. Short version: numlt + |
+|
NumericLessThanEquals + |
+"Less than or equals" matching. Short version: numlteq + |
+|
NumericGreaterThan + |
+"Greater than" matching. Short version: numgt + |
+|
NumericGreaterThanEquals + |
+"Greater than or equals" matching. Short version: numgteq + |
+|
Date + |
+DateEquals + |
+Strict matching. Short version: dateeq + |
+
DateNotEquals + |
+Strict negated matching. Short version: dateneq + |
+|
DateLessThan + |
+Indicates that the date is earlier than a specific date. Short version: datelt + |
+|
DateLessThanEquals + |
+Indicates that the date is earlier than or equal to a specific date. Short version: datelteq + |
+|
DateGreaterThan + |
+Indicates that the date is later than a specific date. Short version: dategt + |
+|
DateGreaterThanEquals + |
+Indicates that the date is later than or equal to a specific date. Short version: dategteq + |
+|
Boolean + |
+Bool + |
+Strict Boolean matching + |
+
IP address + |
+IpAddress + |
+Specified IP address or IP address range + |
+
NotIpAddress + |
+All IP addresses excluding the specified IP address or IP address range + |
+
Elements in a condition are case sensitive. The date format complies with the ISO 8601 standard, for example, 2015-07-01T12:00:00Z.
+Each condition can contain multiple key-value pairs. The Condition combination in the following figure indicates that the request time ranges from 2015-07-01T12:00:00Z to 2018-04-16T15:00:00Z and the request IP address range is 192.168.176.0/24 or 192.168.143.0/24.
+"Condition" : {
+ "DateGreaterThan" : {
+ "CurrentTime" : "2015-07-01T12:00:00Z"
+ },
+ "DateLessThan": {
+ "CurrentTime" : "2018-04-16T15:00:00Z"
+ },
+ "IpAddress" : {
+ "SourceIp" : ["192.168.176.0/24","192.168.143.0/24"]
+ }
+}
+Keys in a condition can be classified into three types: general keys, keys related to bucket actions, and keys related to object actions.
+The following table lists the keys that are not related to actions.
+ +Key + |
+Type + |
+Description + |
+
|---|---|---|
CurrentTime + |
+Date + |
+Indicates the date when the request is received by the server. The date format must comply with ISO 8601. + |
+
EpochTime + |
+Numeric + |
+Indicates the time when the request is received by the server, which is expressed as seconds since 1970.01.01 00:00:00 UTC, regardless of the leap seconds. + |
+
SecureTransport + |
+Bool + |
+Indicates whether requests are encrypted using SSL. + |
+
SourceIp + |
+IP address + |
+Source IP address from which the request is sent + |
+
UserAgent + |
+String + |
+Requested client software agent + |
+
Referer + |
+String + |
+Indicates the link from which the request is sent. + |
+
Keys in a condition must be used in certain actions. The following table lists the mapping between actions and the keys in a condition.
+ +Action + |
+Optional Key + |
+Description + |
+Remarks + |
+
|---|---|---|---|
ListBucket + |
+prefix + |
+Type: String. Lists objects that begin with the specified prefix. + |
+If prefix, delimiter, and max-keys are configured, the key-value pair meeting the conditions must be specified in the List operation for the bucket policy to take effect. +For example, if a bucket policy (with the conditional operator set to NumericEquals, the key to max-keys, and the value to 100) that allows anonymous users to read data is configured for a bucket, the anonymous users must add ?max-keys=100 to the end of the bucket domain name for listing objects. The listed objects are the first 100 objects in alphabetic order. + |
+
delimiter + |
+Type: String. Groups objects in a bucket. + |
+||
max-keys + |
+Type: Numeric. Sets the maximum number of objects. Returned objects are listed in alphabetic order. + |
+||
ListBucketVersions + |
+prefix + |
+Type: String. Lists multi-version objects whose name starts with the specified prefix. + |
+|
delimiter + |
+Type: String. Groups objects of different versions in a bucket. + |
+||
max-keys + |
+Type: Numeric. Sets the maximum number of objects. Returned objects are listed in alphabetic order. + |
+||
PutBucketAcl + |
+x-obs-acl + |
+Type: String. Configures the bucket ACL. When modifying a bucket ACL, you can use the request that contains a canned ACL setting in its header. Value options of a canned ACL setting: private|public-read|public-read-write|bucketowner-read|log-delivery-write. + |
+None + |
+
Action + |
+Optional Key + |
+Description + |
+
|---|---|---|
PutObject + |
+x-obs-acl + |
+Type: String. Configures the object ACL. When uploading an object, you can use the request that contains a canned ACL setting in its header. Value options of a canned ACL setting: private|public-read|public-read-write|bucketowner-read|bucket-owner-full-control|log-delivery-write. + |
+
x-obs-copy-source + |
+Type: String. Specifies names of the source bucket and the source object. Format: /bucketname/keyname + |
+|
x-obs-metadata-directive + |
+Type: String. Specifies whether to copy the metadata from the source object or replace with the metadata in the request. The value can be COPY or REPLACE. + |
+|
x-obs-server-side-encryption + |
+Type: String. Specifies that objects in a bucket are encrypted using SSE-KMS before they are stored. The value is kms. + |
+|
PutObjectAcl + |
+x-obs-acl + |
+Type: String. Configures the object ACL. When uploading an object, you can use the request that contains a canned ACL setting in its header. Value options of a canned ACL setting: private|public-read|public-read-write|bucketowner-read|bucket-owner-full-control|log-delivery-write. + |
+
GetObjectVersion + |
+versionId + |
+Type: String. Obtains the object with the specified version ID. + |
+
GetObjectVersionAcl + |
+versionId + |
+Type: String. Obtains the ACL of the object with the specified version ID. + |
+
PutObjectVersionAcl + |
+versionId + |
+Type: String. Specifies a version ID. + |
+
x-obs-acl + |
+Type: String. Configures the ACL of the object with the specified version ID. When uploading an object, you can use the request that contains a canned ACL setting in its header. Value options of a canned ACL setting: private|public-read|public-read-write|bucketowner-read|bucket-owner-full-control|log-delivery-write. + |
+|
DeleteObjectVersion + |
+versionId + |
+Type: String. Deletes the object with the specified version ID. + |
+
A policy may pose any of the three results for each statement: Explicit Deny, Allow, and Default Deny. If a bucket policy contains multiple statements, the policy determines which statement prevails according to the following rules:
+1. If conditions in any statement of a policy are not met, the policy poses a default deny result.
+2. An explicit deny overrides an allow.
+3. An allow overrides a default deny.
+4. Statements can be in any order in a policy.
+ +Result + |
+Description + |
+
|---|---|
explicit deny + |
+A statement defines effect="deny". All requests for resources to which the statement applies are denied. No permission is returned. + |
+
allow + |
+A statement defines effect="allow". All requests for resources to which the statement applies are allowed. + |
+
default deny + |
+Conditions defined in a statement are not met. Requests are denied. + |
+
If an ACL and a bucket policy are applied together to an account, an explicit deny in the bucket policy overrides the allow in the ACL.
+If a bucket policy and an IAM policy are applied together to an account, an explicit deny overrides the allow, and an allow overrides the default deny.
+SSE-KMS server-side encrypted object does not support Bucket ACL/Policy for cross-tenant authorization.
+Bucket ACLs are used to control basic read and write access to buckets. Custom settings of bucket policies support more actions that can be performed on buckets. Bucket ACLs supplement bucket policies, and in many cases, can be replaced by bucket policies to manage access to buckets. Table 1 shows the mapping between bucket ACL access permissions and bucket policy actions.
+ +ACL Permission + |
+Option + |
+Mapped Action in a Custom Bucket Policy + |
+
|---|---|---|
Access to bucket + |
+Read + |
+
|
+
Write + |
+
|
+|
Access to ACL + |
+Read + |
+GetBucketAcl + |
+
Write + |
+PutBucketAcl + |
+
Object ACLs are used to control basic read and write access to objects. The custom settings of bucket policies allow you to specify more actions that can be performed on objects. Table 2 describes the mapping between object ACL access permissions and bucket policy actions.
+ +Object ACL Permission + |
+Option + |
+Mapped Action in a Custom Bucket Policy + |
+
|---|---|---|
Access to object + |
+Read + |
+
|
+
Access to ACL + |
+Read + |
+
|
+
Write + |
+
|
+
This topic describes how to grant certain operation permissions on specific folders in an OBS bucket to multiple IAM users or user groups.
+IAM custom policies
+After the configuration is complete, you can perform allowed operations using APIs. However, if you log in to OBS Console or OBS Browser+ to perform those operations, an error is reported indicating that you do not have required permissions.
+This is because when you log in to OBS Console or OBS Browser+, APIs (such as ListAllMyBuckets and ListBucket) are called to load the bucket list and object list and some other APIs will also be called on other pages, but your permissions do not cover those APIs. In such case, your access to OBS Console or OBS Browser+ is denied or your operation is not allowed.
+To allow IAM users to operate buckets and objects on OBS Console or OBS Browser+, add at least the obs:bucket:ListAllMyBuckets and obs:bucket:ListBucket permissions to the custom policy. (In this case, these two permissions are configured in permission 2 and 3.)
+
obs:bucket:ListAllMyBuckets applies to all resources. You need to select all resources.
+obs:bucket:ListBucket applies only to the authorized bucket. You can select all resources or a specified bucket as needed.
+
Parameter + |
+Description + |
+
|---|---|
Policy Name + |
+Name of the custom policy + |
+
Policy View + |
+Set this parameter based on your own habits. Visual editor is used here. + |
+
Policy Content + |
+[Permission 1] +
[Permission 2] It is mandatory when an authorized user needs to perform operations on OBS Console or OBS Browser+. +
[Permission 3] It is mandatory when an authorized user needs to perform operations on OBS Console or OBS Browser+.
+
|
+
Scope + |
+The default value is Global services. + |
+
Add the created custom policy to the user group by following the instructions in the IAM document.
+
Due to data caching, it takes about 10 to 15 minutes for a custom policy to take effect after the authorization.
+
After the configuration is complete, it is normal if the system still displays a message indicating that you do not have required permissions, because OBS Console also calls other APIs for advanced settings, but you can still perform the operations allowed on the folder.
+
The reason why there is no required permission is that listing objects on OBS Console is to list objects in the root folder. This rule does not match the configured custom policy for listing objects in folder folder-001/.
+
If some other permissions are required, hover your cursor over the username and choose Identity and Access Management > Permissions, and then repeat the operations above to configure custom policies as needed.
+