S3 Piece Storage¶
S3 (Simple Storage Service) and S3-compatible storage services provide cloud-based object storage that can host Automatic Disk Unlock pieces. This method supports AWS S3, MinIO, Backblaze B2, Wasabi, and other S3-compatible providers.
Overview¶
You upload your base64-encoded piece to an S3 bucket. During boot, Automatic Disk Unlock authenticates using access keys and retrieves the piece from the bucket.
Configuration Format¶
:s3,provider=AWS,access_key_id=EXAMPLE,secret_access_key=EXAMPLEKEY,region=us-east-1:bucket-name/path/to/piece.txt
provider: The S3 provider (e.g.,AWS,Minio,Wasabi,Backblaze)access_key_id: Your S3 access key IDsecret_access_key: Your S3 secret access keyregion: The region where the bucket is located (e.g.,us-east-1)bucket-name/path/to/piece.txt: Bucket name and object path
Setup Instructions¶
AWS S3¶
Step 1: Create an S3 Bucket¶
- Log in to the AWS Management Console
- Navigate to S3 and click Create bucket
- Configure the bucket:
- Region: Note the region that is being used, this will be needed later (e.g.,
us-east-1) - Bucket name: Choose a unique name (e.g.,
autounlock-pieces) - Object Ownership: Set to ACLs disabled
- Block Public Access: Keep all public access blocked for security
- Region: Note the region that is being used, this will be needed later (e.g.,
- Click Create bucket
Step 2: Upload the Piece File¶
- Open the bucket you just created
- Click Upload
- Create a text file containing your base64-encoded piece and upload it:
- File name:
piece.txt - Content: Your base64-encoded piece
- File name:
- Click Upload
Step 3: Create an IAM User with Read-Only Access¶
- Navigate to IAM → Users → Create user
- Enter a username (e.g.,
autounlock-reader) - Click Next
- Select Attach policies directly
-
Click Create policy to create a custom policy:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::autounlock-pieces", "arn:aws:s3:::autounlock-pieces/*" ] } ] }Replace
autounlock-pieceswith your bucket name. -
Name the policy (e.g.,
AutoUnlockReadOnly) and click Create policy - Return to the user creation page, refresh the policies, and attach your new policy
- Click Next and then Create user
Step 4: Create Access Keys¶
- Open the IAM user you just created
- Navigate to the Security credentials tab
- Click Create access key
- Select Application running outside AWS and click Next
- Click Create access key
- Save the Access key ID and Secret access key (you won't be able to see the secret key again)
Step 5: Prepare Location String¶
:s3,provider=AWS,access_key_id=YOUR_ACCESS_KEY_ID,secret_access_key=YOUR_SECRET_ACCESS_KEY,region=us-east-1:autounlock-pieces/piece.txt
Replace:
YOUR_ACCESS_KEY_IDwith your access key IDYOUR_SECRET_ACCESS_KEYwith your secret access keyus-east-1with your bucket's regionautounlock-pieces/piece.txtwith your bucket name and object path
Step 6: Add to Automatic Disk Unlock Configuration¶
-
In the Unraid WebGUI, navigate to Settings → Automatic Disk Unlock
-
Test the location:
- Paste the location string into the Test Location input field
- Click Test to verify the piece can be retrieved
- Confirm the test succeeds
-
Add to configuration:
- Navigate back to the Configuration section
- Add the location string to the Download Locations text area
- Click Save
Security Considerations¶
Access Control
S3 provides robust access control mechanisms:
- IAM Policies: Grant fine-grained read-only permissions
- Private Buckets: Keep buckets private and use access keys for authentication
- Encryption: Enable encryption at rest and in transit
Best Practices
- Use a dedicated IAM user with minimal permissions
- Enable S3 bucket logging to monitor access
- Use S3-compatible services with encryption at rest
- Consider using S3 in combination with other storage methods for defense in depth
Availability
Cloud storage services are generally highly available, but network connectivity is required during boot.