Amazon S3 Operations

From NovaOrdis Knowledge Base
Jump to navigation Jump to search

Internal

Command Line Operations

Command Line Operations

Grant an AWS Account Permissions on a Bucket

To grant an AWS account permissions on a bucket, edit the bucket policy and add a statement similar to the following to the list of existing statements:

{
    "Version": "2012-10-17",
    "Statement": [
        ...
        {
            "Sid": "PlaygroundCodeBuildAccessToPrivateMavenRepository",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::673499572719:root"
            },
            "Action": [
                "s3:ListBucket",
                "s3:ListBucketMultipartUploads",
                "s3:AbortMultipartUpload",
                "s3:GetBucketLocation",
                "s3:GetObject",
                "s3:GetObjectVersion",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::example-private-maven/*",
                "arn:aws:s3:::example-private-maven"
            ]
        }
    ]
}

where "example-private-maven" is the name of the bucket hosting the repository in question, and arn:aws:iam::673499572719:root stands for the AWS account. More details here.

Create an S3 Bucket With CloudFormation

AWS::S3::Bucket

AWS::S3::Bucket
Resources:
  TestBucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketName: !Sub '${AWS::StackName}-test-bucket'
      AccessControl: BucketOwnerFullControl

Naming If no "BucketName" property is specified, the bucket will be named based on the pattern <stack-name>-<resource-name-all-lowercases>-2a3et4c9f3bas. A custom name can be set with "BucketName".

Upload a File to an S3 Bucket via a CloudFormation Stack that Creates the Bucket

TODO: https://serverfault.com/a/845336