What's Actually Happening

MinIO returns access denied errors when accessing buckets or objects. Policies do not grant expected permissions.

The Error You'll See

```bash $ mc ls myminio/mybucket

mc: <ERROR> Unable to list folder. Access Denied. ```

Why This Happens

  1. 1.Missing bucket policy
  2. 2.Wrong policy configuration
  3. 3.User lacks permissions
  4. 4.Anonymous access disabled
  5. 5.Policy syntax error

Step 1: Check Current Policy

bash
mc admin policy entities myminio --user myuser
mc admin user info myminio myuser

Step 2: List Policies

bash
mc admin policy list myminio
mc admin policy info myminio readwrite

Step 3: Attach Policy to User

bash
mc admin policy attach myminio readwrite --user myuser

Step 4: Set Bucket Policy

bash
mc anonymous set download myminio/mybucket
mc anonymous set public myminio/mybucket
mc anonymous set none myminio/mybucket

Step 5: Check Access Key

bash
mc admin user list myminio
mc admin user info myminio myuser

Step 6: Create Custom Policy

json
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:GetObject"],
      "Resource": ["arn:aws:s3:::mybucket/*"]
    }
  ]
}
bash
mc admin policy add myminio mypolicy policy.json
mc admin policy attach myminio mypolicy --user myuser

Step 7: Check Server Config

bash
mc admin config get myminio
mc admin config get myminio policy

Step 8: Restart MinIO

bash
systemctl restart minio
docker restart minio

Step 9: Test Access

bash
mc ls myminio/mybucket
mc cp file.txt myminio/mybucket/

Step 10: Monitor Logs

bash
journalctl -u minio -f
docker logs minio
  • [Fix MinIO Bucket Not Accessible](/articles/fix-minio-bucket-not-accessible)
  • [Fix AWS S3 Access Denied Error](/articles/fix-aws-s3-access-denied-error)