Ensure that a bucket-level-only access policy is enforced across all object storage buckets. This prevents the use of ad-hoc or inconsistent object-level permissions, ensuring centralized, consistent, and secure access management in accordance with the principle of least privilege.
Enforce Bucket-Level-Only Access to Prevent Inconsistent Permissions
CCC.ObjStor.CN02 · Access Control
Related Capabilities
| ID | Title | Description |
|---|---|---|
| CCC.Core.CP05 | Signed URLs | The service can generate an ad hoc URL containing authentication information to enforce user-configured permissions for accessing a specific component or a child resource. |
| CCC.Core.CP06 | Access Control | The service automatically enforces user configurations to restrict or allow access to a specific component or a child resource based on factors such as user identities, roles, groups, or attributes. |
| CCC.Core.CP23 | Network Access Rules | The service restricts access to child or networked resources based on user-defined network parameters such as IP address, protocol, port, or source. |
| CCC.Core.CP29 | Active Ingestion | While running, the service itself can fetch or reach out to some other service or external source to get data, inputs or commands for the service to process or operate on. |
| CCC.Core.CP33 | Public Access Restriction | The service may be configured to deny all access to a child resource from the public internet, regardless of any resource-level permission that would otherwise grant it. |
| CCC.ObjStor.CP05 | Store New Objects | The service always allows a user to store a new object in a bucket under a key that is not yet in use. |
| CCC.ObjStor.CP10 | Object Level Access Control | The service can enforce access permissions on an individual object, independently of the permissions applied to the containing bucket. Whether object-level permissions are enabled by default on a new bucket varies by provider. |
| CCC.ObjStor.CP16 | Bucket-Level-Only Access Policy | The service may be configured to disable object-level permissions on a bucket, so that access to every object is governed solely by the bucket-level policy. |
Related Threats
| ID | Title | Description |
|---|---|---|
| CCC.Core.TH01 | Access is Granted to Unauthorized Users | Logic designed to give different permissions to different entities may be misconfigured or manipulated, allowing unauthorized entities to access restricted parts of the service, its data, or its child resources. This could result in a loss of data confidentiality or tolerance of unauthorized actions which impact the integrity and availability of resources and data. |
| CCC.ObjStor.TH06 | Object-Level Permissions Diverge from Bucket Policy | When object-level permissions are enabled on a bucket, a permission may be attached to an individual object at upload or afterwards that grants access beyond what the bucket-level policy allows. The object becomes readable or writable by entities the bucket policy does not name, and a review of the bucket policy does not reveal the grant. This results in a loss of confidentiality or integrity of the affected objects. |
Assessment Requirements
| ID | Text | Applicability |
|---|---|---|
| CCC.ObjStor.CN02.AR01 | When a permission set is allowed for an object in a bucket, the service MUST allow the same permission set to access all objects in the same bucket. | tlp-clear, tlp-green, tlp-amber, tlp-red |
| CCC.ObjStor.CN02.AR02 | When a permission set is denied for an object in a bucket, the service MUST deny the same permission set to access all objects in the same bucket. | tlp-clear, tlp-green, tlp-amber, tlp-red |
Guideline Mappings
| Framework | ID | Remarks |
|---|---|---|
| CCM | IAM-08 | User Access Review |