For initial testing of Vault I've been using the file backend, and I'm now
exploring moving to S3.
I gather that as part of setting up the permissions on the S3 side, I need to
set a policy that explicitly allows certain actions. I would prefer to keep
that list minimal and allow only the actions that the S3 vault backend needs.
Does anyone know what actions are used? I gather that each of these actions
corresponds to a particular S3 API call (see
http://awsdocs.s3.amazonaws.com/S3/latest/s3-qrc.pdf for a handy reference),
and I suppose I could go through the source to the S3 backend and see what
it's using, but it would be far easier if these were just already itemized
somewhere. I have yet to find any such list. (If there is one, feel free to
just point me to it.)
As a first pass, I'll probably cast a fairly wide net via the use of
wildcards, but it would be nice to ultimately restrict this further before
deploying for production use.
Further detail about exactly what permissions are possible are listed below.
Thanks for any help anyone can provide.
- Rich
----------------------------------------------------------------------
The largest list I've found is at the following, which categorizes the
permissions somewhat:
http://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.htmlAmazon S3 Permissions for Object Operations
s3:GetObject
s3:GetObjectVersion
s3:PutObject
s3:GetObjectAcl
s3:GetObjectVersionAcl
s3:PutObjectAcl
s3:PutObjectVersionAcl
s3:DeleteObject
s3:DeleteObjectVersion
s3:ListMultipartUploadParts
s3:AbortMultipartUpload
s3:GetObjectTorrent
s3:GetObjectVersionTorrent
s3:RestoreObject
s3:PutObjectTagging
s3:PutObjectVersionTagging
s3:GetObjectTagging
s3:GetObjectVersionTagging
s3:DeleteObjectTagging
s3:DeleteObjectVersionTagging
Amazon S3 Permissions Related to Bucket Operations
s3:CreateBucket
s3:DeleteBucket
s3:ListBucket
s3:ListBucketVersions
s3:ListAllMyBuckets
s3:ListBucketMultipartUploads
Amazon S3 Permissions Related to Bucket Subresource Operations
s3:GetAccelerateConfiguration
s3:PutAccelerateConfiguration
s3:GetBucketAcl
s3:PutBucketAcl
s3:GetBucketCORS
s3:PutBucketCORS
s3:GetBucketVersioning
s3:PutBucketVersioning
s3:GetBucketRequestPayment
s3:PutBucketRequestPayment
s3:GetBucketLocation
s3:GetBucketPolicy
s3:DeleteBucketPolicy
s3:PutBucketPolicy
s3:GetBucketNotification
s3:PutBucketNotification
s3:GetBucketLogging
s3:PutBucketLogging
s3:GetBucketTagging
s3:PutBucketTagging
s3:GetBucketWebsite
s3:PutBucketWebsite
s3:DeleteBucketWebsite
s3:GetLifecycleConfiguration
s3:PutLifecycleConfiguration
s3:PutReplicationConfiguration
s3:GetReplicationConfiguration
s3:DeleteReplicationConfiguration
----------------------------------------
Then there's a non-categorized list at the following. Note that it is *not*
just the union of everything above. The total list is somewhat smaller here:
http://docs.aws.amazon.com/IAM/latest/UserGuide/list_s3.htmls3:AbortMultipartUpload
s3:CreateBucket
s3:DeleteBucket
s3:DeleteBucketPolicy
s3:DeleteBucketWebsite
s3:DeleteObject
s3:DeleteObjectVersion
s3:GetAccelerateConfiguration
s3:GetBucketAcl
s3:GetBucketCORS
s3:GetBucketLocation
s3:GetBucketLogging
s3:GetBucketNotification
s3:GetBucketPolicy
s3:GetBucketRequestPayment
s3:GetBucketTagging
s3:GetBucketVersioning
s3:GetBucketWebsite
s3:GetLifecycleConfiguration
s3:GetObject
s3:GetObjectAcl
s3:GetObjectTorrent
s3:GetObjectVersion
s3:GetObjectVersionAcl
s3:GetObjectVersionTorrent
s3:GetReplicationConfiguration
s3:ListAllMyBuckets
s3:ListBucket
s3:ListBucketMultipartUploads
s3:ListBucketVersions
s3:ListMultipartUploadParts
s3:PutAccelerateConfiguration
s3:PutBucketAcl
s3:PutBucketCORS
s3:PutBucketLogging
s3:PutBucketNotification
s3:PutBucketPolicy
s3:PutBucketRequestPayment
s3:PutBucketTagging
s3:PutBucketVersioning
s3:PutBucketWebsite
s3:PutLifecycleConfiguration
s3:PutReplicationConfiguration
s3:PutObject
s3:PutObjectAcl
s3:PutObjectVersionAcl
s3:ReplicateDelete
s3:ReplicateObject
s3:RestoreObject
----------------------------------------
Alternatively, from the IAM Mgmt Console, I can get a list of actions as
follows:
https://console.aws.amazon.com/iam/home?#/policies$newEdit Permissions -> AWS Service -> Amazon S3 -> Actions
Other than lacking the "s3:" prefix, this list is precisely identical to the
list immediately above (i.e. from list_s3.html, not using-with-s3-actions.html)