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 @@ + + +

Introduction to OBS Access Control

+

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 Permission Control Model

OBS provides multiple permission control mechanisms, including IAM permissions, bucket policies, object ACLs, and bucket ACLs. Table 1 describes the mechanisms and application scenarios.

+
Figure 1 OBS permission control mechanisms
+ +
+ + + + + + + + + + + + + + + + + + + + + +
Table 1 OBS permission control 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.

+
  • Controlling access to all OBS buckets under an account
  • Controlling access to all OBS objects under an account
  • Controlling access to specified OBS resources under an account
+

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.

+
  • Granting other accounts the permissions to access OBS resources
  • Configuring bucket policies to grant IAM users various access permissions to different buckets
+

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:
  • By default, an object ACL is created upon the creation of the object. The object owner has full control over the object.
  • An object owner is the account that uploads the object, but may not be the owner of the bucket that stores the object. For example, account B is granted the permission to access a bucket of account A, and account B uploads a file to the bucket. In that case, instead of the bucket owner account A, account B is the owner of the object. By default, account A is not allowed to access this object and cannot read or modify the object ACL.
+
+
  • If object-level access control is required, a bucket policy can be used to grant the access permission to an object or a set of objects. After the access permission is granted to an object set, it is not practical to configure a bucket policy to grant the access permission to an object in the object set separately. Then the object ACL is recommended for easier access control over single objects.
  • An object is accessed through a URL. Generally, if you want to grant anonymous users the permission to read an object through a URL, use the object ACL.
+

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:
  • By default, a bucket ACL is created upon the creation of the bucket. The bucket owner has full control over the bucket.
  • Bucket ACLs do not provide fine-grained permission control. Generally, IAM permissions and bucket policies are recommended.
+
+
  • Granting an account the read and write access to a bucket, so that data in the bucket can be shared or external buckets can be added. For example, after account A grants account B the read and write access to a bucket, account B can access the bucket by adding an external bucket through OBS Browser+ or using APIs and SDKs.
  • Grant the log delivery user group with the write access to the target bucket, so that access logs can be delivered to the target bucket.
+
+
+
+

Relationship Between OBS Permissions and IAM Permissions

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.

+
Figure 2 Relationship between OBS permissions and IAM permissions
+
+

OBS Permission Control Elements

The following factors determine the authorization result:

+ +

For details about elements, see Bucket Policy Parameters.

+

Table 2 describes elements in different permission control mechanisms.

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 2 OBS permission control elements in different permission control mechanisms

Method

+

Principal

+

Supported Effect

+

Authorized Resource

+

Authorized Action

+

Condition Configuration

+

IAM Permissions

+

IAM user

+
  • Allow
  • Deny
+

All or specified OBS resources

+

All permissions to access OBS

+

Supported

+

Bucket Policy

+
  • Account
  • IAM user
  • Anonymous users
+
  • Allow
  • Deny
+

Specified bucket and resources in the bucket

+

All permissions to access OBS

+

Supported

+

Object ACL

+
  • Account
  • Anonymous users
+

Allow

+

Specified object

+
  • Obtains the content and metadata of a specified object.
  • Obtains the content and metadata of an object with a specified version.
  • Obtains information about an object ACL.
  • Obtains information about the ACL for an object of a specified version.
  • Configures an object ACL.
  • Configures the ACL for an object of a specified version.
+

Not supported

+

Bucket ACL

+
  • Account
  • Anonymous users
  • Log delivery user groups
+

Allow

+

Specified bucket

+
  • Identifies whether a bucket exists.
  • Lists objects in a bucket, and gets the bucket metadata.
  • Lists versioned objects in a bucket.
  • Lists multipart uploads.
  • Performs PUT upload, POST upload, multipart upload, initialization of uploaded parts, and merging of parts.
  • Deletes an Object.
  • Deletes an object of a specified version.
  • Obtains bucket ACL information.
  • Configures a bucket ACL.
  • Obtains object content.
  • Obtains object metadata.
+

Not supported

+
+
+
+

How to Select IAM Permissions, Bucket Policies, and ACLs

Based on the advantages and disadvantages of the three elements, you are advised to preferentially use IAM permissions and bucket policies.

+ +

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?

+ +

Relationship Between Bucket ACLs and Bucket Policies

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.

+
+

OBS Permission Control Principles

+
+

How Do Access Control Mechanisms Work When They Conflict?

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 3 Authorization process
+

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 4 Working mechanisms (allow or deny) of bucket policies and IAM permissions in the same 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.

+
Figure 5 Working mechanisms (allow or deny) of bucket policies, IAM permissions, and ACLs in cross-account access grant scenarios
+
  • If both the bucket policy and IAM policy are set to Default Deny, but the ACL is set to Allow, the final result is Deny. ACLs are used to supplement bucket policies.
  • If both the bucket policy and ACL are set to Default Deny and the IAM policy is set to Allow, the final result is Deny. IAM policies are applied to users, while bucket policies are applied to resources. Even if the Allow permission is granted to users, they still cannot access the resources if the resources have the Deny permission configured.
+
+
+

Concepts

+
+
+ diff --git a/docs/obs/perms-cfg/obs_40_0002.html b/docs/obs/perms-cfg/obs_40_0002.html new file mode 100644 index 000000000..5a67199ab --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0002.html @@ -0,0 +1,15 @@ + + +

Permission Control Mechanisms

+
+
+ +
+ diff --git a/docs/obs/perms-cfg/obs_40_0003.html b/docs/obs/perms-cfg/obs_40_0003.html new file mode 100644 index 000000000..aded9c60f --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0003.html @@ -0,0 +1,888 @@ + + +

IAM Permissions

+

IAM Permissions Overview

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.

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 1 OBS system permissions

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.

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 2 Permissions and the allowed operations on OBS resources

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

+
+
+
+

Application Scenarios of IAM Permissions

IAM permissions are used to authorize IAM users under an account.

+ +
+

Policy Structure and Syntax

A policy consists of a version and statements. Each policy can have multiple statements.

+
Figure 1 Policy structure
+

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"]
+				}
+			}
+		}
+	]
+}
+ +
+ + + + + + + + + + +
Table 3 Policy syntax parameters

Parameter

+

Description

+

Version

+
The version number of a policy.
  • 1.0: RBAC policies. An RBAC policy consists of permissions for an entire service. Users in a group with such a policy assigned are granted all of the permissions required for that service.
  • 1.1: Fine-grained policies. A fine-grained policy consists of API-based permissions for operations on specific resource types. Fine-grained policies, as the name suggests, allow for more fine-grained control on specific operations and resources than RBAC policies. For example: You can restrict an IAM user to access only the objects in a specific directory of an OBS bucket.
+
+

Statement

+
Detailed descriptions of a policy, including Effect, Action, Resource, and Condition. Resource and Condition are optional.
  • Effect

    The valid values for Effect are Allow and Deny. System policies contain only Allow statements. For custom policies containing both Allow and Deny statements, the Deny statements take precedence.

    +
  • Action

    Actions allowed on resources. An action is in the format of Service name:Resource type:Action. A policy can contain one or more actions. You can use a wildcard (*) to indicate all of the services, resource types, or actions depending on their location in the action. There are two types of OBS resources: buckets and objects.

    +
  • Resource

    Resources on which the policy takes effect. A resource is in the format of Service name:Region:Domain ID:Resource type:Resource path. You can use a wildcard (*) to indicate all of the services, regions, domain IDs, resource types, or resource paths depending on their location in the resource. In the JSON view, if Resource is not specified, the policy takes effect for all resources.

    +

    The value of Resource supports uppercase (A to Z), lowercase (a to z) letters, digits (0 to 9), and the following characters: -_*./\. If the value contains invalid characters, use the wildcard character (*).

    +

    OBS is a global service. Therefore, set Region to *. Domain ID indicates the ID of the resource owner. Set it to * to indicate the ID of the account to which the resources belong.

    +

    Examples:

    +
    • obs:*:*:bucket:*: all OBS buckets
    • obs:*:*:object:my-bucket/my-object/*: all objects in the my-object directory of the my-bucket bucket
    +
  • Condition

    When creating a custom policy, you can add condition elements to control when the policy takes effect. A condition consists of a condition key and an operator. Condition keys are either global or service-level and are used in the condition elements of a policy statement. Global condition keys (starting with g:) are available for actions of all services, while service-level condition keys (starting with a service name acronym like obs:) are available only for actions of a specific service. An operator is used together with a condition key to form a complete condition statement.

    +

    OBS has a group of predefined condition keys that can be used in IAM. For example, to define an allow permission, you can use the condition key obs:SourceIp to filter matching requesters by IP address.

    +

    The condition keys and operators supported by OBS are the same as those in the bucket policy. When configuring condition keys in IAM, start the condition keys and operators with obs:. For detailed condition information, see Bucket Policy Parameters.

    +

    The value of Condition can contain only uppercase letters (A to Z), lowercase letters (a to z), digits (0 to 9), and the following characters: -,./_@#$%&. If the value contains unsupported characters, consider using the condition operators (such as StringLike and StringStartWith) for fuzzy match.

    +

    Examples:

    +
    • StringEndWithIfExists":{"g:UserName":["specialCharacter"]}: The statement is valid for users whose names end with specialCharacter.
    • "StringLike":{"obs:prefix":["private/"]}: When listing objects in a bucket, you need to set prefix to private/ or include private/.
    +
+
+
+
+
+

Configuring IAM Permissions

+
+

Example Custom Policies

+
+
+
+ +
+ diff --git a/docs/obs/perms-cfg/obs_40_0004.html b/docs/obs/perms-cfg/obs_40_0004.html new file mode 100644 index 000000000..14b9d91f3 --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0004.html @@ -0,0 +1,284 @@ + + +

Bucket Policies

+

Overview

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.

+
  • Creating a bucket and obtaining a bucket list are service-level operations. To obtain such operation permissions, you need to configure IAM permissions.
  • Due to data caching, after a bucket policy is configured, it takes 5 minutes at most for the policy to take effect.
+
+
+

Bucket Policy Overview

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.

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 1 Standard bucket 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

+
  • GetObject
  • GetObjectVersion
  • HeadBucket
  • ListBucket
+
  • GetObject
  • GetObjectVersion
  • PutObject
  • DeleteObject
  • DeleteObjectVersion
  • HeadBucket
  • ListBucket
+

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.

+
+
+

Bucket Policy Application Scenarios

+
+

Policy Structure and Syntax

A bucket policy is in JSON format. The format is as follows:
{ 
+"Statement" : [
+    {
+     statement1
+    },
+    {
+     statement2
+    },
+  ......
+  ]
+}
+
+
Example:
{
+   "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:

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 2 Statement 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.

+
  • When permissions are granted to all IAM users in a domain (account), the principal format is domain/domainid:user/*.
  • When a user is authorized, the principal format 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 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.

+
+

Configuring a Bucket Policy

+
+

Bucket Policy Example

+
+
+
+ +
+ diff --git a/docs/obs/perms-cfg/obs_40_0005.html b/docs/obs/perms-cfg/obs_40_0005.html new file mode 100644 index 000000000..ad27949cd --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0005.html @@ -0,0 +1,242 @@ + + +

ACLs

+

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.

+ +
+ + + + + + + + + + + + + + + + +
Table 1 Authorized users supported by OBS

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.

+
+
+
+

Bucket ACL

Table 2 lists the access permissions of a bucket ACL.

+ +
+ + + + + + + + + + + + + + + + + + + + + + +
Table 2 Access permissions controlled by 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.

+ +
+ + + + + + + + + + + + + + + + +
Table 3 Access permissions controlled by 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.

+
+
+

Application Scenarios of Bucket ACLs

You can configure bucket ACLs to:

+ +
+

Application Scenarios of Object ACLs

You can configure object ACLs to:

+ +
+

Configuring an ACL Using Header Fields

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.

+ +
+ + + + + + + + + + + + + + + + + + + + + + +
Table 4 Predefined access control policies in OBS

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.

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Table 5 Header fields for setting bucket or object ACLs

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.

+
+
+
+
+
+ +
+ diff --git a/docs/obs/perms-cfg/obs_40_0006.html b/docs/obs/perms-cfg/obs_40_0006.html new file mode 100644 index 000000000..e2805bbfe --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0006.html @@ -0,0 +1,17 @@ + + +

Access Requests

+
+
+ +
+ diff --git a/docs/obs/perms-cfg/obs_40_0007.html b/docs/obs/perms-cfg/obs_40_0007.html new file mode 100644 index 000000000..28ce3ba99 --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0007.html @@ -0,0 +1,15 @@ + + +

Accessing OBS Using Permanent Access Keys

+

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)?

+
+
+ +
+ diff --git a/docs/obs/perms-cfg/obs_40_0008.html b/docs/obs/perms-cfg/obs_40_0008.html new file mode 100644 index 000000000..965e65dbc --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0008.html @@ -0,0 +1,49 @@ + + +

Accessing OBS Using Temporary Access Keys

+

Temporary Access Keys

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.

+
+

Permissions of the Temporary Access Keys

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.

+
Figure 1 Intersection of IAM user permissions and temporary policy permissions
+

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.

+
Figure 2 Restricting temporary permissions within the scope of IAM user 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.

+
+
+

Application Scenarios

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.

+
Figure 3 Application scenarios of temporary access keys
+
  1. If the customer's server can obtain permanent access keys for IAM users, the server can send requests to IAM to generate different temporary access keys for different apps.

    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.

    +
  2. IAM generates temporary access keys with different permissions and validity periods based on the passed policy parameters and returns the access keys to the customer server.
  3. Then the customer server distributes the temporary access keys to device apps that require such permissions.
  4. A device app can use the temporary access keys to access OBS through OBS SDKs or APIs. Temporary access keys are valid for a short period of time. If the device app needs to prolong its use of OBS, it should send a request to the customer server for updating temporary access keys before they expire.
+
+

Configuration Example

For details, see Granting Temporary Access to OBS.

+
+
+
+ +
+ diff --git a/docs/obs/perms-cfg/obs_40_0009.html b/docs/obs/perms-cfg/obs_40_0009.html new file mode 100644 index 000000000..cf66b4d4d --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0009.html @@ -0,0 +1,21 @@ + + +

Accessing OBS Using a Temporary URL

+

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.

+

Sharing Objects

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.

+
+

Limitations and Constraints

+
+
+
+ +
+ diff --git a/docs/obs/perms-cfg/obs_40_0010.html b/docs/obs/perms-cfg/obs_40_0010.html new file mode 100644 index 000000000..d31200b99 --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0010.html @@ -0,0 +1,12 @@ + + +

Accessing OBS Using an IAM Agency

+

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.

+
+
+ +
+ diff --git a/docs/obs/perms-cfg/obs_40_0011.html b/docs/obs/perms-cfg/obs_40_0011.html new file mode 100644 index 000000000..907378c6e --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0011.html @@ -0,0 +1,93 @@ + + +

Typical Permission Control Scenarios

+

The following typical scenarios are provided to help you better configure OBS permission control.

+

Factors to consider before configuring permission control:

+
  1. Who are granted: Grantees can be a single IAM user, multiple IAM users or user groups, other accounts, and anonymous users.
  2. What resources will be accessed: Such resources can be all OBS resources (requiring service-level permissions), specified buckets, and specified objects.
  3. What permissions are granted: In addition to configure basic permissions, such as read and read/write permissions, you can also customize permissions based on your needs.
+

OBS provides various permission control mechanisms for different scenarios. The following figure can help you quickly find the best method that matches your requirements.

+
Figure 1 Typical permission scenarios
+

The following table lists the permission control cases in typical scenarios for your reference.

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 1 Configuration cases in typical scenarios

Scenario

+

Configuration Case

+

Granting permissions to an IAM user under the current account

+

Granting an IAM User the Permissions Required to List and Create Buckets

+

Granting an IAM User the Read and Write Permissions on a Bucket

+

Granting an IAM User the Permissions Required to Perform Specific Operations on a Specific Bucket

+

Granting an IAM User the Read Permission on a Specific Object

+

Granting an IAM User the Permissions Required to Perform Specific Operations on Certain Objects

+

Granting permissions to multiple IAM users or user groups under the current account

+

Granting IAM User Groups All Permissions on All OBS Resources

+

Granting IAM User Groups Basic Permissions on All OBS Resources

+

Granting IAM User Groups Specified Permissions on All OBS Resources

+

Granting IAM User Groups Specified Permissions on Certain OBS Resources

+

Granting permissions to other accounts

+

Granting an Account the Read and Write Permissions on a Bucket

+

Granting an Account the Specified Permissions on a Bucket

+

Granting IAM Users Under an Account the Access to a Bucket and Resources in the Bucket

+

Granting an Account Read Permissions on Certain Objects

+

Granting an Account the Specified Permissions on Certain Objects

+

Granting permissions to anonymous users

+

Granting Anonymous Users Public Read Permissions on a Bucket

+

Granting Anonymous Users Public Read Permissions on a Directory

+

Granting Anonymous Users Public Read Permissions on Certain Objects

+

Temporarily Sharing Objects with Anonymous Users

+

Granting temporary permissions

+

Granting Temporary Access to OBS

+

Restricting access to specified IP addresses

+

Preventing Specific IP Addresses from Accessing a Bucket

+
+
+
+ diff --git a/docs/obs/perms-cfg/obs_40_0012.html b/docs/obs/perms-cfg/obs_40_0012.html new file mode 100644 index 000000000..a934ac237 --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0012.html @@ -0,0 +1,21 @@ + + +

Configuration Cases in Typical Permission Control Scenarios

+
+
+ +
+ diff --git a/docs/obs/perms-cfg/obs_40_0013.html b/docs/obs/perms-cfg/obs_40_0013.html new file mode 100644 index 000000000..21d4db561 --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0013.html @@ -0,0 +1,23 @@ + + +

Granting Permissions to an IAM User Under the Account

+
+
+ + + +
+ diff --git a/docs/obs/perms-cfg/obs_40_0014.html b/docs/obs/perms-cfg/obs_40_0014.html new file mode 100644 index 000000000..646044aac --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0014.html @@ -0,0 +1,50 @@ + + +

Granting an IAM User the Permissions Required to List and Create Buckets

+

Scenario

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.

+
+

Recommended Configuration

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.

+
+

Procedure

  1. Log in to the management console using a cloud service account.
  2. On the top menu bar, choose Service List > Management & Deployment > Identity and Access Management. The IAM console is displayed.
  3. In the navigation pane, choose Permissions.
  4. Click Create Custom Policy in the upper right corner.
  5. Configure parameters for a custom policy.

    Figure 1 Configuring a custom policy
    + +
    + + + + + + + + + + + + + + + + +
    Table 1 Parameters for configuring a 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

    +
    • Select Allow.
    • Select Object Storage Service (OBS).
    • Select obs:bucket:CreateBucket from ReadWrite actions and obs:bucket:ListAllMyBuckets from ListOnly actions.
    • Select All for resources.
    +

    Scope

    +

    The default value is Global services.

    +
    +
    +

  6. Click OK. The custom policy is created.
  7. Create a user group and assign permissions.

    Add the created custom policy to the user group by following the instructions in the IAM document.

    +

  8. Add the IAM user you want to authorize to the created user group by referring to Creating a User and Adding the User to a User Group.

    Due to data caching, it takes about 10 to 15 minutes for a custom policy to take effect after the authorization.

    +
    +

+
+
+
+ +
+ diff --git a/docs/obs/perms-cfg/obs_40_0015.html b/docs/obs/perms-cfg/obs_40_0015.html new file mode 100644 index 000000000..5812676f7 --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0015.html @@ -0,0 +1,90 @@ + + +

Granting an IAM User the Read and Write Permissions on a Bucket

+

Scenario

This topic describes how to grant an IAM user the read and write permissions on an OBS bucket.

+
+

Recommended Configuration

You are advised to use bucket policies to grant resource-level permissions to an IAM user.

+
+

Configuration Precautions

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.

+
+

Procedure

  1. In the navigation pane of OBS Console, choose Object Storage.
  2. In the bucket list, click the bucket name you want to go to the Overview page.
  3. In the navigation pane, choose Permissions.
  4. On the Bucket Policies page, click Create Bucket Policy under Custom Bucket Policies.
  5. Configure parameters for a bucket policy.

    Figure 1 Configuring parameters for a bucket policy
    + +
    + + + + + + + + + + + + + +
    Table 1 Parameters for creating a bucket policy

    Parameter

    +

    Description

    +

    Policy Mode

    +

    Select Read and write.

    +

    Principal

    +
    • Choose Include > Cloud service user.
    • Account ID: Enter one account ID only, or enter an asterisk (*) to indicate that the policy takes effect on all users (including both registered and anonymous users).
    • User ID: Enter one or more user IDs separated by a comma (,).
    +

    Resources

    +
    • Include
    • Resource Name: Enter *.
    +
    +
    +

  6. Click OK. The bucket policy is created.
+
+

Follow-up Procedure

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.

+
+
  1. Log in to the management console using a cloud service account.
  2. On the top menu bar, choose Service List > Management & Deployment > Identity and Access Management. The IAM console is displayed.
  3. In the navigation pane, choose Permissions.
  4. Click Create Custom Policy in the upper right corner.
  5. Configure parameters for a custom policy.

    Figure 2 Configuring a custom policy
    + +
    + + + + + + + + + + + + + + + + +
    Table 2 Parameters for configuring a 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

    +

    [Permission 1]

    +
    • Select Allow.
    • Select Object Storage Service (OBS).
    • Select obs:bucket:ListAllMyBuckets from the actions.
    • Select All for resources.
    +

    [Permission 2]

    +
    • Select Allow.
    • Select Object Storage Service (OBS).
    • Select obs:bucket:ListBucket from the actions.
    • For Resources, select Specific, and for bucket, select Specify resource path, and click Add Resource Path. Enter the bucket name in the Path text box, indicating that the policy takes effect only for this bucket.
    +

    Scope

    +

    The default value is Global services.

    +
    +
    +

  6. Click OK. The custom policy is created.
  7. Create a user group and assign permissions.

    Add the created custom policy to the user group by following the instructions in the IAM document.

    +

  8. Add the IAM user you want to authorize to the created user group by referring to Creating a User and Adding the User to a User Group.

    Due to data caching, it takes about 10 to 15 minutes for a custom policy to take effect after the authorization.

    +
    +

+
+
+
+ +
+ diff --git a/docs/obs/perms-cfg/obs_40_0016.html b/docs/obs/perms-cfg/obs_40_0016.html new file mode 100644 index 000000000..426c1ec43 --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0016.html @@ -0,0 +1,96 @@ + + +

Granting an IAM User the Permissions Required to Perform Specific Operations on a Specific Bucket

+

Scenario

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.

+
+

Recommended Configuration

You are advised to use bucket policies to grant resource-level permissions to an IAM user.

+
+

Configuration Precautions

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.

+
+

Procedure

  1. In the navigation pane of OBS Console, choose Object Storage.
  2. In the bucket list, click the bucket name you want to go to the Overview page.
  3. In the navigation pane, choose Permissions.
  4. On the Bucket Policies page, click Create Bucket Policy under Custom Bucket Policies.
  5. Configure parameters for a bucket policy.

    Figure 1 Configuring parameters for a bucket policy
    + +
    + + + + + + + + + + + + + + + + + + + +
    Table 1 Parameters for creating a bucket policy

    Parameter

    +

    Description

    +

    Policy Mode

    +

    Select Customized.

    +

    Effect

    +

    Select Allow.

    +

    Principal

    +
    • Choose Include > Cloud service user.
    • Account ID: Enter one account ID only, or enter an asterisk (*) to indicate that the policy takes effect on all users (including both registered and anonymous users).
    • User ID: Enter one or more user IDs separated by a comma (,).
    +

    Resources

    +

    Select Include > Entire bucket.

    +

    Actions

    +
    • Include
    • Action Name:
      • DeleteBucket
      • ListBucketVersions (required when the authorized user needs to access OBS on OBS Console or OBS Browser+)
      +
    +

    To configure other permissions, select the corresponding actions. For details about the actions supported by OBS, see Action/NotAction.

    +
    +
    +

  6. Click OK. The bucket policy is created.
+
+

Follow-up Procedure

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.

+
  1. Log in to the management console using a cloud service account.
  2. On the top menu bar, choose Service List > Management & Deployment > Identity and Access Management. The IAM console is displayed.
  3. In the navigation pane, choose Permissions.
  4. Click Create Custom Policy in the upper right corner.
  5. Configure parameters for a custom policy.

    Figure 2 Configuring a custom policy
    + +
    + + + + + + + + + + + + + + + + +
    Table 2 Parameters for configuring a 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

    +
    • Select Allow.
    • Select Object Storage Service (OBS).
    • Select obs:bucket:ListAllMyBuckets from the actions.
    • Select All for resources.
    +

    Scope

    +

    The default value is Global services.

    +
    +
    +

  6. Click OK. The custom policy is created.
  7. Create a user group and assign permissions.

    Add the created custom policy to the user group by following the instructions in the IAM document.

    +

  8. Add the IAM user you want to authorize to the created user group by referring to Creating a User and Adding the User to a User Group.

    Due to data caching, it takes about 10 to 15 minutes for a custom policy to take effect after the authorization.

    +
    +

+
+
+
+ +
+ diff --git a/docs/obs/perms-cfg/obs_40_0017.html b/docs/obs/perms-cfg/obs_40_0017.html new file mode 100644 index 000000000..98d990361 --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0017.html @@ -0,0 +1,92 @@ + + +

Granting an IAM User the Read Permission on a Specific Object

+

Scenario

This topic describes how to grant an IAM user the read permission on an object or a set of objects in an OBS bucket.

+
+

Recommended Configuration

You are advised to use bucket policies to grant resource-level permissions to an IAM user.

+
+

Configuration Precautions

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.

+
+

Procedure

  1. In the navigation pane of OBS Console, choose Object Storage.
  2. In the bucket list, click the bucket name you want to go to the Overview page.
  3. In the navigation pane, choose Permissions.
  4. On the Bucket Policies page, click Create Bucket Policy under Custom Bucket Policies.
  5. Configure parameters for a bucket policy.

    Figure 1 Configuring parameters for a bucket policy
    + +
    + + + + + + + + + + + + + +
    Table 1 Parameters for creating a bucket policy

    Parameter

    +

    Description

    +

    Policy Mode

    +

    Select Read-only.

    +

    Principal

    +
    • Choose Include > Cloud service user.
    • Account ID: Enter one account ID only, or enter an asterisk (*) to indicate that the policy takes effect on all users (including both registered and anonymous users).
    • User ID: Enter one or more user IDs separated by a comma (,).
    +

    Resources

    +
    • Include
    • Resource Name: Enter the object or the set of objects that will be accessed.

      For one object, enter object name.

      +

      For a set of objects, enter object name prefix + *, * + object name suffix, or *.

      +
    +
    +
    +

  6. Click OK. The bucket policy is created.
+
+

Follow-up Procedure

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.

+
+
  1. Log in to the management console using a cloud service account.
  2. On the top menu bar, choose Service List > Management & Deployment > Identity and Access Management. The IAM console is displayed.
  3. In the navigation pane, choose Permissions.
  4. Click Create Custom Policy in the upper right corner.
  5. Configure parameters for a custom policy.

    Figure 2 Configuring a custom policy
    + +
    + + + + + + + + + + + + + + + + +
    Table 2 Parameters for configuring a 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

    +

    [Permission 1]

    +
    • Select Allow.
    • Select Object Storage Service (OBS).
    • Select obs:bucket:ListAllMyBuckets from the actions.
    • Select All for resources.
    +

    [Permission 2]

    +
    • Select Allow.
    • Select Object Storage Service (OBS).
    • Select obs:bucket:ListBucket from the actions.
    • For Resources, select Specific, and for bucket, select Specify resource path, and click Add Resource Path. Enter the bucket name in the Path text box, indicating that the policy takes effect only for this bucket.
    +

    Scope

    +

    The default value is Global services.

    +
    +
    +

  6. Click OK. The custom policy is created.
  7. Create a user group and assign permissions.

    Add the created custom policy to the user group by following the instructions in the IAM document.

    +

  8. Add the IAM user you want to authorize to the created user group by referring to Creating a User and Adding the User to a User Group.

    Due to data caching, it takes about 10 to 15 minutes for a custom policy to take effect after the authorization.

    +
    +

+
+
+
+ +
+ diff --git a/docs/obs/perms-cfg/obs_40_0018.html b/docs/obs/perms-cfg/obs_40_0018.html new file mode 100644 index 000000000..adcc98deb --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0018.html @@ -0,0 +1,102 @@ + + +

Granting an IAM User the Permissions Required to Perform Specific Operations on Certain Objects

+

Scenario

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.

+
+

Recommended Configuration

You are advised to use bucket policies to grant resource-level permissions to an IAM user.

+
+

Configuration Precautions

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.

+
+

Procedure

  1. In the navigation pane of OBS Console, choose Object Storage.
  2. In the bucket list, click the bucket name you want to go to the Overview page.
  3. In the navigation pane, choose Permissions.
  4. On the Bucket Policies page, click Create Bucket Policy under Custom Bucket Policies.
  5. Configure parameters for a bucket policy.

    Figure 1 Configuring parameters for a bucket policy
    + +
    + + + + + + + + + + + + + + + + + + + +
    Table 1 Parameters for creating a bucket policy

    Parameter

    +

    Description

    +

    Policy Mode

    +

    Select Customized.

    +

    Effect

    +

    Select Allow.

    +

    Principal

    +
    • Choose Include > Cloud service user.
    • Account ID: Enter one account ID only, or enter an asterisk (*) to indicate that the policy takes effect on all users (including both registered and anonymous users).
    • User ID: Enter one or more user IDs separated by a comma (,).
    +

    Resources

    +
    • Choose Include > Specific resources.
    • Resource Name: Enter the object or the set of objects that will be accessed.

      For one object, enter object name.

      +

      For a set of objects, enter object name prefix + *, * + object name suffix, or *.

      +
    +

    Actions

    +
    • Include
    • Action Name: Select GetObject.
    +

    To configure other permissions, select the corresponding actions. For details about the actions supported by OBS, see Action/NotAction.

    +
    +
    +

  6. Click OK. The bucket policy is created.
+
+

Follow-up Procedure

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.

+
+
  1. Log in to the management console using a cloud service account.
  2. On the top menu bar, choose Service List > Management & Deployment > Identity and Access Management. The IAM console is displayed.
  3. In the navigation pane, choose Permissions.
  4. Click Create Custom Policy in the upper right corner.
  5. Configure parameters for a custom policy.

    Figure 2 Configuring a custom policy
    + +
    + + + + + + + + + + + + + + + + +
    Table 2 Parameters for configuring a 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

    +

    [Permission 1]

    +
    • Select Allow.
    • Select Object Storage Service (OBS).
    • Select obs:bucket:ListAllMyBuckets from the actions.
    • Select All for resources.
    +

    [Permission 2]

    +
    • Select Allow.
    • Select Object Storage Service (OBS).
    • Select obs:bucket:ListBucket from the actions.
    • For Resources, select Specific, and for bucket, select Specify resource path, and click Add Resource Path. Enter the bucket name in the Path text box, indicating that the policy takes effect only for this bucket.
    +

    Scope

    +

    The default value is Global services.

    +
    +
    +

  6. Click OK. The custom policy is created.
  7. Create a user group and assign permissions.

    Add the created custom policy to the user group by following the instructions in the IAM document.

    +

  8. Add the IAM user you want to authorize to the created user group by referring to Creating a User and Adding the User to a User Group.

    Due to data caching, it takes about 10 to 15 minutes for a custom policy to take effect after the authorization.

    +
    +

+
+
+
+ +
+ diff --git a/docs/obs/perms-cfg/obs_40_0019.html b/docs/obs/perms-cfg/obs_40_0019.html new file mode 100644 index 000000000..92b9745a1 --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0019.html @@ -0,0 +1,23 @@ + + +

Granting Permissions to Multiple IAM Users or User Groups Under the Account

+
+
+ + + +
+ diff --git a/docs/obs/perms-cfg/obs_40_0020.html b/docs/obs/perms-cfg/obs_40_0020.html new file mode 100644 index 000000000..77391b54d --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0020.html @@ -0,0 +1,50 @@ + + +

Granting IAM User Groups All Permissions on All OBS Resources

+

Scenario

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.

+
+

Recommended Configuration

IAM custom policies

+
+

Procedure

  1. Log in to the management console using a cloud service account.
  2. On the top menu bar, choose Service List > Management & Deployment > Identity and Access Management. The IAM console is displayed.
  3. In the navigation pane, choose Permissions.
  4. Click Create Custom Policy in the upper right corner.
  5. Configure parameters for a custom policy.

    Figure 1 Configuring a custom policy
    + +
    + + + + + + + + + + + + + + + + +
    Table 1 Parameters for configuring a 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

    +
    • Select Allow.
    • Select Object Storage Service (OBS).
    • Select all actions.
    • Select All for resources.
    +

    Scope

    +

    The default value is Global services.

    +
    +
    +

  6. Click OK. The custom policy is created.
  7. Create a user group and assign permissions.

    Add the created custom policy to the user group by following the instructions in the IAM document.

    +

  8. Add the IAM user you want to authorize to the created user group by referring to Creating a User and Adding the User to a User Group.

    Due to data caching, it takes about 10 to 15 minutes for a custom policy to take effect after the authorization.

    +
    +

+
+
+
+ +
+ diff --git a/docs/obs/perms-cfg/obs_40_0021.html b/docs/obs/perms-cfg/obs_40_0021.html new file mode 100644 index 000000000..99eb41416 --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0021.html @@ -0,0 +1,81 @@ + + +

Granting IAM User Groups Basic Permissions on All OBS Resources

+

Scenario

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.

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 1 OBS system permissions

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

+
+
+
+

Recommended Configuration

IAM system roles and policies

+
+

Configuration Precautions

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+.

+
+

Procedure

  1. Log in to the management console using a cloud service account.
  2. On the top menu bar, choose Service List > Management & Deployment > Identity and Access Management. The IAM console is displayed.
  3. Create a user group and assign permissions.

    Add system roles or policies that meet the service scenario requirements to the user group by following the instructions provided in the IAM document.

    +

  4. Add the IAM user you want to authorize to the created user group by referring to Creating a User and Adding the User to a User Group.

    Due to data caching, it takes about 10 to 15 minutes for the configured permissions to take effect.

    +
    +

+
+
+
+ +
+ diff --git a/docs/obs/perms-cfg/obs_40_0022.html b/docs/obs/perms-cfg/obs_40_0022.html new file mode 100644 index 000000000..7837be659 --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0022.html @@ -0,0 +1,54 @@ + + +

Granting IAM User Groups Specified Permissions on All OBS Resources

+

Scenario

This topic describes how to grant multiple IAM users or user groups specific permissions on all OBS resources.

+
+

Recommended Configuration

IAM custom policies

+
+

Configuration Precautions

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.

+
+

Procedure

  1. Log in to the management console using a cloud service account.
  2. On the top menu bar, choose Service List > Management & Deployment > Identity and Access Management. The IAM console is displayed.
  3. In the navigation pane, choose Permissions.
  4. Click Create Custom Policy in the upper right corner.
  5. Configure parameters for a custom policy.

    Figure 1 Configuring a custom policy
    + +
    + + + + + + + + + + + + + + + + +
    Table 1 Parameters for configuring a 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

    +
    • Select Allow.
    • Select Object Storage Service (OBS).
    • Select the actions to be authorized.
    • Select All for resources.
    +

    Scope

    +

    The default value is Global services.

    +
    +
    +

  6. Click OK. The custom policy is created.
  7. Create a user group and assign permissions.

    Add the created custom policy to the user group by following the instructions in the IAM document.

    +

  8. Add the IAM user you want to authorize to the created user group by referring to Creating a User and Adding the User to a User Group.

    Due to data caching, it takes about 10 to 15 minutes for a custom policy to take effect after the authorization.

    +
    +

+
+
+
+ +
+ diff --git a/docs/obs/perms-cfg/obs_40_0023.html b/docs/obs/perms-cfg/obs_40_0023.html new file mode 100644 index 000000000..ea7dcc698 --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0023.html @@ -0,0 +1,73 @@ + + +

Granting IAM User Groups Specified Permissions on Certain OBS Resources

+

Scenario

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.

+
+

Recommended Configuration

IAM custom policies

+
+

Configuration Precautions

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.

+
+
+

Procedure

  1. Log in to the management console using a cloud service account.
  2. On the top menu bar, choose Service List > Management & Deployment > Identity and Access Management. The IAM console is displayed.
  3. In the navigation pane, choose Permissions.
  4. Click Create Custom Policy in the upper right corner.
  5. Configure parameters for a custom policy.

    Figure 1 Configuring a custom policy
    + +
    + + + + + + + + + + + + + + + + +
    Table 1 Parameters for configuring a 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

    +

    [Permission 1] It is mandatory when an authorized user needs to perform operations on OBS Console or OBS Browser+.

    +
    • Select Allow.
    • Select Object Storage Service (OBS).
    • Select obs:bucket:ListAllMyBuckets from the actions.
    • Select All for resources.
    +

    [Permission 2]

    +
    • Select Allow.
    • Select Object Storage Service (OBS).
    • Select the actions to be authorized.
    • Choose Specific resources > Bucket to specify bucket resources.

      [Format]

      +

      obs:*:*:bucket:bucket name

      +

      [Note]

      +

      For bucket resources, IAM automatically generates the prefix of the resource path: obs:*:*:bucket:.

      +

      For the path of a specific bucket, add the bucket name to the end. You can also add a wildcard character (*) to indicate any bucket. Example:

      +

      obs:*:*:bucket:*, indicating any OBS bucket.

      +

      To perform operations on OBS Console or OBS Browser+, grant the obs:bucket:ListBucket permission to a specified bucket.

      +
    • Choose Specific resources > Object to specify an object resource.

      [Format]

      +

      obs:*:*:object:bucket name/object name

      +

      [Note]

      +

      For object resources, IAM automatically generates the prefix of the resource path: obs:*:*:object:

      +

      For the path of a specific object, add the bucket name/object name to the end. You can also add a wildcard character (*) to indicate any object in a bucket. Example:

      +

      obs:*:*:object:my-bucket/my-object/*: any object in the my-object directory of the my-bucket bucket.

      +
    +

    Scope

    +

    The default value is Global services.

    +
    +
    +

  6. Click OK. The custom policy is created.
  7. Create a user group and assign permissions.

    Add the created custom policy to the user group by following the instructions in the IAM document.

    +

  8. Add the IAM user you want to authorize to the created user group by referring to Creating a User and Adding the User to a User Group.

    Due to data caching, it takes about 10 to 15 minutes for a custom policy to take effect after the authorization.

    +
    +

+
+
+
+ +
+ diff --git a/docs/obs/perms-cfg/obs_40_0024.html b/docs/obs/perms-cfg/obs_40_0024.html new file mode 100644 index 000000000..548f3bdc1 --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0024.html @@ -0,0 +1,23 @@ + + +

Granting Permissions to Other Accounts

+
+
+ + + +
+ diff --git a/docs/obs/perms-cfg/obs_40_0025.html b/docs/obs/perms-cfg/obs_40_0025.html new file mode 100644 index 000000000..5be9e88fc --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0025.html @@ -0,0 +1,89 @@ + + +

Granting an Account the Read and Write Permissions on a Bucket

+

Scenario

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.

+
+

Recommended Configuration

You are advised to use bucket policies to grant permissions to other accounts.

+
+

Configuration Precautions

The preset read/write mode of OBS has the following permissions:
  • GetObject: downloading objects
  • PutObject: uploading objects
  • GetObjectVersion: downloading versioned objects
  • DeleteObjectVersion: deleting objects versions
  • DeleteObject: deleting objects
+
+

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.

+
+

Procedure

  1. In the navigation pane of OBS Console, choose Object Storage.
  2. In the bucket list, click the bucket name you want to go to the Overview page.
  3. In the navigation pane, choose Permissions.
  4. On the Bucket Policies page, click Create Bucket Policy under Custom Bucket Policies.
  5. Configure parameters for a bucket policy.

    Figure 1 Configuring parameters for a bucket policy
    + +
    + + + + + + + + + + + + + +
    Table 1 Parameters for creating a bucket policy

    Parameter

    +

    Description

    +

    Policy Mode

    +

    Select Read and write.

    +

    Principal

    +
    • Select Include > Other account.
    • Account ID: Enter the ID of the account which you want to grant permissions to. You can obtain it from the My Credentials page of the account.
    • User ID: Enter the account ID, which can be obtained from the My Credentials page of the account.
      NOTE:

      In this example, permissions are granted to an account, excluding any IAM user under the account. Therefore, the user ID is the same as the account ID.

      +
      +
    +

    Resources

    +
    • Include
    • Resource Name: Enter *.
    +
    +
    +

  6. Click OK. The bucket policy is created.
  7. (Optional) Click Create Bucket Policy again.

    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.

    +

  8. (Optional) Configure the ListBucket permission.

    Figure 2 Configuring the ListBucket permission
    + +
    + + + + + + + + + + + + + + + + + + + +
    Table 2 Parameters for creating a bucket policy

    Parameter

    +

    Description

    +

    Policy Mode

    +

    Select Customized.

    +

    Effect

    +

    Select Allow.

    +

    Principal

    +
    • Select Include > Other account.
    • Account ID: Enter the ID of the account which you want to grant permissions to. You can obtain it from the My Credentials page of the account.
    • User ID: Enter the account ID.
      NOTE:

      In this example, permissions are granted to an account, excluding any IAM user under the account. Therefore, the user ID is the same as the account ID.

      +
      +
    +

    Resources

    +

    Select Include > Entire bucket.

    +

    Actions

    +
    • Include
    • Action Name: ListBucket
    +
    +
    +

  9. (Optional) Click OK. The bucket policy is created.
+
+
+
+ +
+ diff --git a/docs/obs/perms-cfg/obs_40_0026.html b/docs/obs/perms-cfg/obs_40_0026.html new file mode 100644 index 000000000..4cc1e96fe --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0026.html @@ -0,0 +1,59 @@ + + +

Granting an Account the Specified Permissions on a Bucket

+

Scenario

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.

+
+

Recommended Configuration

You are advised to use bucket policies to grant permissions to other accounts.

+
+

Configuration Precautions

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.

+
+

Procedure

  1. In the navigation pane of OBS Console, choose Object Storage.
  2. In the bucket list, click the bucket name you want to go to the Overview page.
  3. In the navigation pane, choose Permissions.
  4. On the Bucket Policies page, click Create Bucket Policy under Custom Bucket Policies.
  5. Configure parameters for a bucket policy.

    Figure 1 Configuring parameters for a bucket policy
    + +
    + + + + + + + + + + + + + + + + + + + +
    Table 1 Parameters for creating a bucket policy

    Parameter

    +

    Description

    +

    Policy Mode

    +

    Select Customized.

    +

    Effect

    +

    Select Allow.

    +

    Principal

    +
    • Select Include > Other account.
    • Account ID: Enter the ID of the account which you want to grant permissions to. You can obtain it from the My Credentials page of the account.
    • User ID: Enter the account ID, which can be obtained from the My Credentials page of the account.
      NOTE:

      In this example, permissions are granted to an account, excluding any IAM user under the account. Therefore, the user ID is the same as the account ID.

      +
      +
    +

    Resources

    +

    Select Include > Entire bucket.

    +

    Actions

    +
    • Include
    • Action Name:
      • PutBucketAcl
      • GetBucketAcl
      • ListBucket (required when the authorized account wants to access the OBS bucket on OBS Browser+ by mounting an external bucket)
      +
    +

    To configure other permissions, select the corresponding actions. For details about the actions supported by OBS, see Action/NotAction.

    +
    +
    +

  6. Click OK. The bucket policy is created.
+
+
+
+ +
+ diff --git a/docs/obs/perms-cfg/obs_40_0027.html b/docs/obs/perms-cfg/obs_40_0027.html new file mode 100644 index 000000000..d7c721c15 --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0027.html @@ -0,0 +1,144 @@ + + +

Granting IAM Users Under an Account the Access to a Bucket and Resources in the Bucket

+

Scenario

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.

+
+

Recommended Configuration

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:

+
  1. Configure a bucket policy that allows IAM user A to access bucket B.
  2. Configure IAM permissions for account A to allow IAM user A to access bucket B.
+

The permissions allowed by both bucket policies and IAM permissions take effect.

+
+

Configuration Precautions

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.

+
+

Configuration Procedure 1: Configure a Bucket Policy That Allows Specified Operations

The bucket owner or a user who has the permission to configure bucket policies needs to configure a bucket policy that allows specified operations.

+
  1. In the navigation pane of OBS Console, choose Object Storage.
  2. In the bucket list, click the bucket name you want to go to the Overview page.
  3. In the navigation pane, choose Permissions.
  4. On the Bucket Policies page, click Create Bucket Policy under Custom Bucket Policies.
  5. Configure a bucket policy that allows upload and download.

    Figure 1 Configuring a bucket policy that allows uploads and downloads
    + +
    + + + + + + + + + + + + + + + + + + + +
    Table 1 Parameters for creating a bucket policy

    Parameter

    +

    Description

    +

    Policy Mode

    +

    Select Customized.

    +

    Effect

    +

    Select Allow.

    +

    Principal

    +
    • Select Include > Other account.
    • Account ID: Enter the ID of the account which you want to grant permissions to. You can obtain it from the My Credentials page of the account or the IAM user.
    • User ID: Enter the ID of the IAM user under the authorized account. You can obtain the ID on the My Credentials page of the IAM user. The wildcard character (*) is supported, indicating that the setting takes effect for all IAM users under the account.
    +

    Resources

    +
    • Choose Include > Specific resources.
    • Resource Name: Enter the object or the set of objects that will be accessed.
      • For one object, enter object name.
      • For a set of objects, enter object name prefix + *, * + object name suffix, or *.
      +

      Set this parameter to * if all objects need to be downloaded.

      +
    +

    Actions

    +
    • Include
    • Action Name:
      • GetObject
      • GetObjectVersion
      • PutObject
      • (Optional) ListBucket: Select this operation if you need to use OBS Browser+ to add external buckets.
      +
    +

    To configure other specified operation permissions on objects, select the corresponding actions. For details about the actions supported by OBS, see Action/NotAction.

    +
    +
    +

  6. Click OK. The bucket policy that allows upload and download is created.
  7. (Optional) Click Create Bucket Policy again to configure a bucket policy that allows objects in the bucket to be listed. (Perform this step when you need to use OBS Browser+ to add external buckets.)

    Figure 2 Configuring a bucket policy that allows objects to be listed in a bucket
    + +
    + + + + + + + + + + + + + + + + + + + +
    Table 2 Parameters for creating a bucket policy

    Parameter

    +

    Description

    +

    Policy Mode

    +

    Select Customized.

    +

    Effect

    +

    Select Allow.

    +

    Principal

    +
    • Select Include > Other account.
    • Account ID: Enter the ID of the account which you want to grant permissions to. You can obtain it from the My Credentials page of the account or the IAM user.
    • User ID: Enter the ID of the IAM user under the authorized account. You can obtain the ID on the My Credentials page of the IAM user. The wildcard character (*) is supported, indicating that the setting takes effect for all IAM users under the account.
    +

    Resources

    +

    Select Include > Entire bucket.

    +

    Actions

    +
    • Include
    • Action Name: ListBucket
    +

    To configure other specified permissions on buckets, select the corresponding actions. For details about the actions supported by OBS, see Action/NotAction.

    +
    +
    +

  8. Click OK. The bucket policy for listing objects in the bucket is created.
+
+

Configuration Procedure 2: Configure an IAM Permission That Allows Specified Operations

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.

+
  1. Log in to the management console using a cloud service account.
  2. On the top menu bar, choose Service List > Management & Deployment > Identity and Access Management. The IAM console is displayed.
  3. In the navigation pane, choose Permissions.
  4. Click Create Custom Policy in the upper right corner.
  5. Configure parameters for a custom policy.

    Figure 3 Configuring a custom policy
    + +
    + + + + + + + + + + + + + + + + +
    Table 3 Parameters for configuring a 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

    +
    • Select Allow.
    • Select Object Storage Service (OBS).
    • Select the actions to be authorized.
      • ReadOnly > obs:bucket:ListBucketVersions and obs:object:GetObjectVersion
      • ReadWrite > obs:object:PutObject
      • ListOnly > obs:bucket:ListBucket (Select this operation if you need to use OBS Browser+ to add external buckets.)
      +
    • Choose Specific > object to specify an object resource. The specified object or object set must be consistent with the bucket policy.
      • Select Any if the resource set in the bucket policy is *.
      • If the resource specified in the bucket policy is a specified object or a set of objects, you need to specify the object or the set of objects the same as that in the bucket policy through the resource path.

        [Format]

        +

        obs:*:*:object:bucket name/object name

        +
      +

      Select Any as the bucket policy in this example is set to *.

      +
    • Choose Specific > bucket > Specify resource path to specify bucket resources.

      Click Add Resource Path and enter the name of the authorized bucket in the Path text box, for example, example-bucket.

      +

      The complete path of the resource is as follows: OBS:*:*:bucket:example-bucket.

      +
    +

    Scope

    +

    The default value is Global services.

    +
    +
    +

  6. Click OK. The custom policy is created.
  7. Create a user group and assign permissions.

    Add the created custom policy to the user group by following the instructions in the IAM document.

    +

  8. Add the IAM user you want to authorize to the created user group by referring to Creating a User and Adding the User to a User Group.

    Due to data caching, it takes about 10 to 15 minutes for a custom policy to take effect after the authorization.

    +
    +

+
+
+
+ +
+ diff --git a/docs/obs/perms-cfg/obs_40_0028.html b/docs/obs/perms-cfg/obs_40_0028.html new file mode 100644 index 000000000..55c1b6ef4 --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0028.html @@ -0,0 +1,51 @@ + + +

Granting an Account Read Permissions on Certain Objects

+

Scenario

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.

+
+

Recommended Configuration

You are advised to use bucket policies to grant permissions to other accounts.

+
+

Configuration Precautions

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.

+
+

Procedure

  1. In the navigation pane of OBS Console, choose Object Storage.
  2. In the bucket list, click the bucket name you want to go to the Overview page.
  3. In the navigation pane, choose Permissions.
  4. On the Bucket Policies page, click Create Bucket Policy under Custom Bucket Policies.
  5. Configure parameters for a bucket policy.

    Figure 1 Configuring parameters for a bucket policy
    + +
    + + + + + + + + + + + + + +
    Table 1 Parameters for creating a bucket policy

    Parameter

    +

    Description

    +

    Policy Mode

    +

    Select Read-only.

    +

    Principal

    +
    • Select Include > Other account.
    • Account ID: Enter the ID of the account which you want to grant permissions to. You can obtain it from the My Credentials page of the account.
    • User ID: Enter the account ID, which can be obtained from the My Credentials page of the account.
      NOTE:

      In this example, permissions are granted to an account, excluding any IAM user under the account. Therefore, the user ID is the same as the account ID.

      +
      +
    +

    Resources

    +
    • Include
    • Resource Name: Enter the object or the set of objects that will be accessed.

      For one object, enter object name.

      +

      For a set of objects, enter object name prefix + *, * + object name suffix, or *.

      +
    +
    +
    +

  6. Click OK. The bucket policy is created.
+
+
+
+ +
+ diff --git a/docs/obs/perms-cfg/obs_40_0029.html b/docs/obs/perms-cfg/obs_40_0029.html new file mode 100644 index 000000000..51720e6c8 --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0029.html @@ -0,0 +1,62 @@ + + +

Granting an Account the Specified Permissions on Certain Objects

+

Scenario

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.

+
+

Recommended Configuration

You are advised to use bucket policies to grant permissions to other accounts.

+
+

Configuration Precautions

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.

+
+

Procedure

  1. In the navigation pane of OBS Console, choose Object Storage.
  2. In the bucket list, click the bucket name you want to go to the Overview page.
  3. In the navigation pane, choose Permissions.
  4. On the Bucket Policies page, click Create Bucket Policy under Custom Bucket Policies.
  5. Configure parameters for a bucket policy.

    Figure 1 Configuring parameters for a bucket policy
    + +
    + + + + + + + + + + + + + + + + + + + +
    Table 1 Parameters for creating a bucket policy

    Parameter

    +

    Description

    +

    Policy Mode

    +

    Select Customized.

    +

    Effect

    +

    Select Allow.

    +

    Principal

    +
    • Select Include > Other account.
    • Account ID: Enter the ID of the account which you want to grant permissions to. You can obtain it from the My Credentials page of the account.
    • User ID: Enter the account ID, which can be obtained from the My Credentials page of the account.
      NOTE:

      In this example, permissions are granted to an account, excluding any IAM user under the account. Therefore, the user ID is the same as the account ID.

      +
      +
    +

    Resources

    +
    • Choose Include > Specific resources.
    • Resource Name: Enter the object or the set of objects that will be accessed.

      For one object, enter object name.

      +

      For a set of objects, enter object name prefix + *, * + object name suffix, or *.

      +
    +

    Actions

    +
    • Include
    • Action Name: Select GetObject.
    +

    To configure other permissions, select the corresponding actions. For details about the actions supported by OBS, see Action/NotAction.

    +
    +
    +

  6. Click OK. The bucket policy is created.
+
+
+
+ +
+ diff --git a/docs/obs/perms-cfg/obs_40_0030.html b/docs/obs/perms-cfg/obs_40_0030.html new file mode 100644 index 000000000..c47ec1302 --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0030.html @@ -0,0 +1,21 @@ + + +

Granting Permissions to Anonymous Users

+
+
+ + + +
+ diff --git a/docs/obs/perms-cfg/obs_40_0031.html b/docs/obs/perms-cfg/obs_40_0031.html new file mode 100644 index 000000000..d33eddf40 --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0031.html @@ -0,0 +1,64 @@ + + +

Granting Anonymous Users Public Read Permissions on a Bucket

+

Scenario

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.

+
+

Configuration Precautions

The Public Read policy allows any user to read objects in a bucket. Public Read has the following permissions:

+ +
+

Procedure

  1. In the navigation pane of OBS Console, choose Object Storage.
  2. In the bucket list, click the bucket name you want to go to the Overview page.
  3. In the navigation pane, choose Permissions.
  4. On the Bucket Policies tab page, select the Public Read policy for the bucket in the Standard Bucket Policies area.

    Figure 1 Granting public read permissions on buckets to anonymous users
    +

+
+

Verification

  1. After the permission is set, in the Basic Information area of the bucket details page, locate Access Domain Name. Share the URL of the access domain name over the Internet so that all Internet users can access the bucket.
  2. On the Objects tab page of the bucket, click the target object name and find the object link. Share the object link over the Internet so that all Internet users can access the object.
+
+

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.

+
  1. In the navigation pane of OBS Console, choose Object Storage.
  2. In the bucket list, click the bucket name you want to go to the Overview page.
  3. In the navigation pane, choose Permissions.
  4. On the Bucket Policies page, click Create Bucket Policy under Custom Bucket Policies.
  5. Configure parameters for a bucket policy.

    Figure 2 Configuring parameters for a bucket policy
    + +
    + + + + + + + + + + + + + + + + + + + +
    Table 1 Parameters for creating a bucket policy

    Parameter

    +

    Description

    +

    Policy Mode

    +

    Select Customized.

    +

    Effect

    +

    Select Deny.

    +

    Principal

    +
    Select Exclude.
    • Select Cloud service user.
    • Account ID: Enter * to indicate all anonymous users.
    • User ID: Enter one or more user IDs separated by a comma (,).
    +
    +

    Resources

    +

    Select Include > Entire bucket.

    +

    Actions

    +
    • Include
    • Action Name:
      • ListBucket
      +
    +
    +
    +

  6. Click OK. The bucket policy is created.
+

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.

+
+
+
+ +
+ diff --git a/docs/obs/perms-cfg/obs_40_0032.html b/docs/obs/perms-cfg/obs_40_0032.html new file mode 100644 index 000000000..6bfedda18 --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0032.html @@ -0,0 +1,45 @@ + + +

Granting Anonymous Users Public Read Permissions on a Directory

+

Scenario

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.

+
+

Configuration Precautions

The preset read-only mode of OBS has the following permissions:

+ +
+

Procedure

  1. In the navigation pane of OBS Console, choose Object Storage.
  2. In the bucket list, click the bucket name you want to go to the Overview page.
  3. In the navigation pane, choose Permissions.
  4. On the Bucket Policies page, click Create Bucket Policy under Custom Bucket Policies.
  5. Configure parameters according to the following table, so that you can grant anonymous users the permission to access the folder and objects in it.

    Figure 1 Granting public read permissions on a specific directory for anonymous users
    + +
    + + + + + + + + + + + + + +
    Table 1 Parameters for granting the permission to access a specified directory

    Parameter

    +

    Value

    +

    Policy Mode

    +

    Select Read-only.

    +

    Principal

    +
    • Choose Include > Cloud service user.
    • Account ID: Enter * to indicate all anonymous users.
    +

    Resources

    +
    • Include
    • Select Specific resources.
    • Set this parameter to all objects in the selected folder. If the folder name is folder-001, enter the value folder-001/*.
    +
    +
    +

  6. Click OK.
+
+

Verification

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.

+
+
+
+ +
+ diff --git a/docs/obs/perms-cfg/obs_40_0033.html b/docs/obs/perms-cfg/obs_40_0033.html new file mode 100644 index 000000000..d01d6bc42 --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0033.html @@ -0,0 +1,17 @@ + + +

Granting Anonymous Users Public Read Permissions on Certain Objects

+

Scenario

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.

+
+

Procedure

  1. In the navigation pane of OBS Console, choose Object Storage.
  2. In the bucket list, click the bucket to be operated. The Overview page of the bucket is displayed.
  3. In the navigation pane, click Objects.
  4. Click the name of the object to be operated.
  5. On the Object ACL tab page, click the target object and click Object ACL.
  6. In Public Permissions > Anonymous User, click Edit and select the object read permission for anonymous users.

    Figure 1 Granting the public read permission on objects to anonymous users
    +

  7. Click Save to save the permission setting.
+
+

Verification

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.

+
+
+
+ +
+ diff --git a/docs/obs/perms-cfg/obs_40_0034.html b/docs/obs/perms-cfg/obs_40_0034.html new file mode 100644 index 000000000..7ee68f0b0 --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0034.html @@ -0,0 +1,18 @@ + + +

Temporarily Sharing Objects with Anonymous Users

+

Scenario

If you want to open an object to all users for a limited period of time, you can use the object sharing function.

+
+

Procedure for Sharing a File

  1. In the navigation pane of OBS Console, choose Object Storage.
  2. In the bucket list, click the bucket name you want to go to the Overview page.
  3. In the navigation pane, click Objects.
  4. Locate the file to be shared and click Share in the Operation column.

    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.

    +

  5. Perform URL related operations.

    • Click Open URL to preview the file on a new page or directly download it to your default download path.
    • Click Copy Link to share the link to other users, so that they can enter the link to a web browser to access the file.
    • Click Copy Path to share the file path to users who have access permissions to the bucket. Then the users can search for the file by pasting the path to the search box of the bucket.
    +

    Within the validity period of a URL, any user who has the URL can access the file.

    +
    +

+
+
+
+ +
+ diff --git a/docs/obs/perms-cfg/obs_40_0036.html b/docs/obs/perms-cfg/obs_40_0036.html new file mode 100644 index 000000000..efc81215d --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0036.html @@ -0,0 +1,65 @@ + + +

Preventing Specific IP Addresses from Accessing a Bucket

+

Scenario

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.

+
+

Recommended Configuration

Bucket policy

+
+

Procedure

  1. In the navigation pane of OBS Console, choose Object Storage.
  2. In the bucket list, click the bucket name you want to go to the Overview page.
  3. In the navigation pane, choose Permissions.
  4. On the Bucket Policies page, click Create Bucket Policy under Custom Bucket Policies.
  5. Configure parameters for a bucket policy.

    Figure 1 Configuring parameters for a bucket policy
    + +
    + + + + + + + + + + + + + + + + + + + + + + +
    Table 1 Parameters for creating a bucket policy

    Parameter

    +

    Description

    +

    Policy Mode

    +

    Select Customized.

    +

    Effect

    +

    Select Deny.

    +

    Principal

    +
    • Choose Include > Cloud service user.
    • Account ID: Enter *, which indicates that the setting takes effect for all registered users and anonymous users.
    • User ID: Leave the user ID blank.
    +

    Resources

    +

    Select Include > Entire bucket.

    +

    Actions

    +
    • Include
    • Action Name: Select *, which indicates all permissions.
    +

    Conditions

    +
    • Conditional Operator: IpAddress
    • Key: Select SourceIp.
    • Value: Set it to 114.115.1.0/24.
      NOTE:

      Use commas (,) to separate multiple IP addresses.

      +
      +
    +
    +
    +

    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.

    +
    +

  6. Click OK. The bucket policy is created.
+
+

Verification

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.

+
+

Scenario

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.

+
+
+
+ +
+ diff --git a/docs/obs/perms-cfg/obs_40_0037.html b/docs/obs/perms-cfg/obs_40_0037.html new file mode 100644 index 000000000..08b4ea342 --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0037.html @@ -0,0 +1,125 @@ + + +

Granting Temporary Access to OBS

+

Scenario

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.

+
+

Procedure

  1. Log in to the management console using a cloud service account.
  2. On the top menu bar, choose Service List > Management & Deployment > Identity and Access Management. The IAM console is displayed.
  3. Create an IAM user APPServer. For details, see Creating a User.
  4. Create a user-defined policy that allows access to the AppClient folder in bucket hi-company.

    1. In the navigation pane, choose Permissions.
    2. Configure parameters for a custom policy.

      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.

      +
      +
      Figure 1 Configuring a custom policy
      + +
      + + + + + + + + + + + + + + + + +
      Table 1 Parameters for configuring a custom policy

      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.

      +
      +
      +
    3. Click OK. The custom policy is created.
    +

  5. Create a user group and assign permissions.

    Add the created custom policy to the user group by following the instructions in the IAM document.

    +

  6. Add the IAM user (APPServer) you want to authorize to the created user group by referring to Creating a User and Adding the User to a User Group.

    Due to data caching, it takes about 10 to 15 minutes for a custom policy to take effect after the authorization.

    +
    +

  7. The IAM user (APPServer) obtains temporary access keys (temporary access keys and security token) for APP-1 and APP-2.

    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"
    +	    ]
    +	}
    +    }
    +}
    +

+
+

Verification

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.

+
+
+
+ +
+ diff --git a/docs/obs/perms-cfg/obs_40_0039.html b/docs/obs/perms-cfg/obs_40_0039.html new file mode 100644 index 000000000..1cdc93a8e --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0039.html @@ -0,0 +1,28 @@ + + +

Change History

+
+
+ + + + + + + + + + +

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.

+
+
+
+ diff --git a/docs/obs/perms-cfg/obs_40_0041.html b/docs/obs/perms-cfg/obs_40_0041.html new file mode 100644 index 000000000..dab7724cd --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0041.html @@ -0,0 +1,812 @@ + + +

Bucket Policy Parameters

+

A policy in JSON format is described as follows:

+
{ 
+"Statement" : [{
+     statement1
+  },
+  {
+     statement2
+  },
+  ......
+ ]
+}
+
Example:
{ 
+"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:

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 1 Statement 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/NotPrincipal

Principal or NotPrincipal supported by OBS includes anonymous users, specific tenants, specific users, federated users, and agencies.

+
+ + + + +

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.

+
+

Action/NotAction

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

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 2 Action description

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

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 3 Action description

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.

+
+
+

Resource/NotResource

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.

+ +

Use commas (,) to separate one object (or object set) from another.

+
+

Condition

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.

+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 4 Conditional operators

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.

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 5 General keys

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.

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 6 Keys related to bucket actions

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

+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table 7 Keys related to object actions

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.

+
+
+

Policy Permission Judgment Logic

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.

+ +
+ + + + + + + + + + + + + +
Table 8 Statement results

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.

+
+
+
+ +
+ diff --git a/docs/obs/perms-cfg/obs_40_0042.html b/docs/obs/perms-cfg/obs_40_0042.html new file mode 100644 index 000000000..9d22c789b --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0042.html @@ -0,0 +1,14 @@ + + +

Appendix

+

+
+
+ +
+ diff --git a/docs/obs/perms-cfg/obs_40_0043.html b/docs/obs/perms-cfg/obs_40_0043.html new file mode 100644 index 000000000..36b569786 --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0043.html @@ -0,0 +1,81 @@ + + +

Relationship Between Bucket Policies and Bucket ACLs

+

Mapping Between Bucket ACLs and Bucket Policies

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.

+ +
+ + + + + + + + + + + + + + + + + + + +
Table 1 Mapping between bucket ACLs and bucket policies

ACL Permission

+

Option

+

Mapped Action in a Custom Bucket Policy

+

Access to bucket

+

Read

+
  • HeadBucket
  • ListBucket
  • ListBucketVersions
  • ListBucketMultipartUploads
+

Write

+
  • PutObject
  • DeleteObject
  • DeleteObjectVersion
+

Access to ACL

+

Read

+

GetBucketAcl

+

Write

+

PutBucketAcl

+
+
+
+

Mapping Between Object ACLs and Bucket Policies

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.

+ +
+ + + + + + + + + + + + + + + + +
Table 2 Mapping between object ACLs and bucket policies

Object ACL Permission

+

Option

+

Mapped Action in a Custom Bucket Policy

+

Access to object

+

Read

+
  • GetObject
  • GetObjectVersion
+

Access to ACL

+

Read

+
  • GetObjectAcl
  • GetObjectVersionAcl
+

Write

+
  • PutObjectAcl
  • PutObjectVersionAcl
+
+
+
+
+
+ +
+ diff --git a/docs/obs/perms-cfg/obs_40_0044.html b/docs/obs/perms-cfg/obs_40_0044.html new file mode 100644 index 000000000..9cd0cbfb5 --- /dev/null +++ b/docs/obs/perms-cfg/obs_40_0044.html @@ -0,0 +1,80 @@ + + +

Granting IAM User Groups Specified Permissions on Certain OBS Folders

+

Scenario

This topic describes how to grant certain operation permissions on specific folders in an OBS bucket to multiple IAM users or user groups.

+
+

Recommended Configuration

IAM custom policies

+
+

Configuration Precautions

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.

+
+
+

Procedure

  1. Log in to the management console using a cloud service account.
  2. On the top menu bar, choose Service List > Management & Deployment > Identity and Access Management. The IAM console is displayed.
  3. In the navigation pane, choose Permissions.
  4. Click Create Custom Policy in the upper right corner.
  5. Configure parameters for a custom policy.

    Figure 1 Configuring a custom policy
    + +
    + + + + + + + + + + + + + + + + +
    Table 1 Parameters for configuring a 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

    +

    [Permission 1]

    +
    • Select Allow.
    • Select Object Storage Service (OBS).
    • Select all the object-related permissions under ReadOnly, ReadWrite, and Permissions.
    • On the All tab, choose Specific > Specify resource path to specify a folder.

      [Path Format]

      +

      obs:*:*:object:Bucket name/Folder name/*

      +

      [Notes]

      +

      For bucket resources, IAM automatically generates the prefix of the resource path obs:*:*:object:.

      +

      You can add Bucket name/Object name at the end of the generated path prefix to specify a resource path. Wildcards (*) are also supported. For example, OBS:*:*:object:example-002/folder-001/* indicates any object in folder folder-001 of bucket example-002.

      +
    +

    [Permission 2] It is mandatory when an authorized user needs to perform operations on OBS Console or OBS Browser+.

    +
    • Select Allow.
    • Select Object Storage Service (OBS).
    • Select obs:bucket:ListBucket from the actions.
    • On the All tab, choose Specific > Specify resource path to specify a bucket.

      [Path Format]

      +

      obs:*:*:bucket:Bucket name

      +
    • On the (Optional) Add request condition tab, click Add Request Condition.
      • Condition key: Select obs:prefix from the drop-down list.
      • Operator: Select StringStartWith from the drop-down list.
      • Value: Folder name/
      +

      [Notes]

      +

      If you want a user to have only the permission to list a folder in the bucket, add a request condition for action obs:bucket:ListBucket. prefix is included in the request for listing objects in a bucket. In this way, when you specify prefix to list objects whose names start with Folder name/, the objects in the bucket can be listed.

      +
    +
    [Permission 3] It is mandatory when an authorized user needs to perform operations on OBS Console or OBS Browser+.
    • Select Allow.
    • Select Object Storage Service (OBS).
    • Select obs:bucket:ListAllMyBuckets under ListOnly.
    • Select All for Resources.
    +
    +

    Scope

    +

    The default value is Global services.

    +
    +
    +

  6. Click OK. The custom policy is created.
  7. Create a user group and assign permissions.

    Add the created custom policy to the user group by following the instructions in the IAM document.

    +

  8. Add the IAM user you want to authorize to the created user group by referring to Creating a User and Adding the User to a User Group.

    Due to data caching, it takes about 10 to 15 minutes for a custom policy to take effect after the authorization.

    +
    +

+
+

Verification

  1. Log in to OBS Console as an IAM user.
  2. In the bucket list, click bucket example-002 to go to the overview page.

    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.

    +
    +

  3. In the navigation pane, select Objects. It is normal that a message indicating no permission is displayed and no object can be viewed.

    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/.

    +
    +

  4. In the search box, enter folder-001/ to view the list of objects in folder-001. Objects 222.txt and 111.txt are displayed.
  5. Click Create Folder to create folder folder-002.
  6. Click Upload Object to upload file 333.txt.

    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.

    +
    +

+
+
+
+ +
+ diff --git a/docs/obs/perms-cfg/public_sys-resources/caution_3.0-en-us.png b/docs/obs/perms-cfg/public_sys-resources/caution_3.0-en-us.png new file mode 100644 index 000000000..60f607621 Binary files /dev/null and b/docs/obs/perms-cfg/public_sys-resources/caution_3.0-en-us.png differ diff --git a/docs/obs/perms-cfg/public_sys-resources/danger_3.0-en-us.png b/docs/obs/perms-cfg/public_sys-resources/danger_3.0-en-us.png new file mode 100644 index 000000000..47a9c7235 Binary files /dev/null and b/docs/obs/perms-cfg/public_sys-resources/danger_3.0-en-us.png differ diff --git a/docs/obs/perms-cfg/public_sys-resources/delta.gif b/docs/obs/perms-cfg/public_sys-resources/delta.gif new file mode 100644 index 000000000..0d1b1f674 Binary files /dev/null and b/docs/obs/perms-cfg/public_sys-resources/delta.gif differ diff --git a/docs/obs/perms-cfg/public_sys-resources/deltaend.gif b/docs/obs/perms-cfg/public_sys-resources/deltaend.gif new file mode 100644 index 000000000..cc7da0fc8 Binary files /dev/null and b/docs/obs/perms-cfg/public_sys-resources/deltaend.gif differ diff --git a/docs/obs/perms-cfg/public_sys-resources/icon-arrowdn.gif b/docs/obs/perms-cfg/public_sys-resources/icon-arrowdn.gif new file mode 100644 index 000000000..379428032 Binary files /dev/null and b/docs/obs/perms-cfg/public_sys-resources/icon-arrowdn.gif differ diff --git a/docs/obs/perms-cfg/public_sys-resources/icon-arrowrt.gif b/docs/obs/perms-cfg/public_sys-resources/icon-arrowrt.gif new file mode 100644 index 000000000..6aaaa11c2 Binary files /dev/null and b/docs/obs/perms-cfg/public_sys-resources/icon-arrowrt.gif differ diff --git a/docs/obs/perms-cfg/public_sys-resources/icon-caution.gif b/docs/obs/perms-cfg/public_sys-resources/icon-caution.gif new file mode 100644 index 000000000..079c79b26 Binary files /dev/null and b/docs/obs/perms-cfg/public_sys-resources/icon-caution.gif differ diff --git a/docs/obs/perms-cfg/public_sys-resources/icon-danger.gif b/docs/obs/perms-cfg/public_sys-resources/icon-danger.gif new file mode 100644 index 000000000..079c79b26 Binary files /dev/null and b/docs/obs/perms-cfg/public_sys-resources/icon-danger.gif differ diff --git a/docs/obs/perms-cfg/public_sys-resources/icon-huawei.gif b/docs/obs/perms-cfg/public_sys-resources/icon-huawei.gif new file mode 100644 index 000000000..a31d60f89 Binary files /dev/null and b/docs/obs/perms-cfg/public_sys-resources/icon-huawei.gif differ diff --git a/docs/obs/perms-cfg/public_sys-resources/icon-note.gif b/docs/obs/perms-cfg/public_sys-resources/icon-note.gif new file mode 100644 index 000000000..31be2b039 Binary files /dev/null and b/docs/obs/perms-cfg/public_sys-resources/icon-note.gif differ diff --git a/docs/obs/perms-cfg/public_sys-resources/icon-notice.gif b/docs/obs/perms-cfg/public_sys-resources/icon-notice.gif new file mode 100644 index 000000000..409070650 Binary files /dev/null and b/docs/obs/perms-cfg/public_sys-resources/icon-notice.gif differ diff --git a/docs/obs/perms-cfg/public_sys-resources/icon-tip.gif b/docs/obs/perms-cfg/public_sys-resources/icon-tip.gif new file mode 100644 index 000000000..c47bae05c Binary files /dev/null and b/docs/obs/perms-cfg/public_sys-resources/icon-tip.gif differ diff --git a/docs/obs/perms-cfg/public_sys-resources/icon-warning.gif b/docs/obs/perms-cfg/public_sys-resources/icon-warning.gif new file mode 100644 index 000000000..079c79b26 Binary files /dev/null and b/docs/obs/perms-cfg/public_sys-resources/icon-warning.gif differ diff --git a/docs/obs/perms-cfg/public_sys-resources/note_3.0-en-us.png b/docs/obs/perms-cfg/public_sys-resources/note_3.0-en-us.png new file mode 100644 index 000000000..57a0e1f53 Binary files /dev/null and b/docs/obs/perms-cfg/public_sys-resources/note_3.0-en-us.png differ diff --git a/docs/obs/perms-cfg/public_sys-resources/notice_3.0-en-us.png b/docs/obs/perms-cfg/public_sys-resources/notice_3.0-en-us.png new file mode 100644 index 000000000..fa4b64990 Binary files /dev/null and b/docs/obs/perms-cfg/public_sys-resources/notice_3.0-en-us.png differ diff --git a/docs/obs/perms-cfg/public_sys-resources/warning_3.0-en-us.png b/docs/obs/perms-cfg/public_sys-resources/warning_3.0-en-us.png new file mode 100644 index 000000000..def5c3565 Binary files /dev/null and b/docs/obs/perms-cfg/public_sys-resources/warning_3.0-en-us.png differ