Manage S3 access
Access to S3 resources is regulated by:
- projects — define access within an isolated group of resources;
- roles — define access for control panel users, service users, and groups within an account and a project.
- bucket policy — defines access within a bucket.
When an S3 action request is received, the user role is checked first. If the role:
-
does not allow the action — access is denied;
-
allows the action — the presence and settings of the bucket policy are checked. If the bucket policy:
- is not created — access will be allowed to all users with access within roles, except for users with roles object_storage_user, s3.user and s3.bucket.user;
- is created — everything not allowed by the policy rules is denied.
For access via API, automation tools and via FTP use keys.
Learn more about access management in the Access Management in Selectel Products guide.
Access within projects
All S3 resources are created in a specific project. You can group resources by different projects and configure permissions for users depending on which projects they need access to.
Access within roles
Access to S3 is granted by S3 roles and global roles. Read more about role types in the Roles Reference guide.
S3 roles
s3.admin
The s3.admin role provides access to manage S3 within a project. It does not provide access to S3 in other projects or other products in its own project.
* Cannot manage access policies or bypass temporary Object Lock blocks in the Control Panel.
s3.user
The s3.user role grants access to an S3 bucket if a bucket policy is configured in it that grants this user access to the bucket. The level of access is determined by bucket policy settings. Does not have access to S3 in other projects or other products in its own project.
s3.bucket.user
The s3.bucket.user role grants access to an S3 bucket if a bucket policy is configured in it that grants this user access to the bucket. The level of access is determined by bucket policy settings. Does not have access to S3 in other projects or other products in its own project.
object_storage.admin
The object_storage:admin role will soon be removed and cannot be assigned to new users. Existing users with the object_storage:admin role will continue to function.
Legacy version of the s3.admin role. Has identical permissions.
object_storage_user
The object_storage_user role will soon be removed and cannot be assigned to new users. Existing users with the object_storage_user role will continue to function.
Legacy version of the s3.user role. Has identical permissions.
Global roles
member
The member role provides full access to all services. It does not provide access to managing control panel users, service users, user groups, and federations.
billing
The billing role grants access to billing management without access to service management.
iam.admin
The iam.admin role grants access to manage users and does not grant access to product or billing management. It does not provide the ability to manage your account: change permissions, manage notifications, or delete a user. The first user with the iam.admin role is created by the Account Owner.
iam.viewer
The iam.viewer role grants access to view everything managed by iam.admin.
reader
The reader role grants access to view everything managed by member in the same access scope.
Keys for API access
Depending on the API type, you will need:
- IAM token for a project (X-Auth-Token). Used for access via Object Storage API and Swift API. Can only be issued to service users. To issue an IAM token for a project, use the Get an IAM token for a project subsection of the Request Authentication API documentation;
- S3 key (EC2 key). Used to sign S3 API requests and for FTP access. Consists of a pair of values — Access Key ID and Secret Key. You can add an S3 key for yourself or issue one to another user. Keys can be issued to service users and control panel users. In this case, the user must have a role that allows S3 access.