AWS S3 upload without access and secret key in Java

前端 未结 2 1646
野性不改
野性不改 2020-12-18 09:11

I want to upload a file to S3 without using my access and secret key from AWS server. AWS keys should be taken as default. However running the below command in

2条回答
  •  挽巷
    挽巷 (楼主)
    2020-12-18 09:52

    You can use the below Java code to get the s3client instance when you are trying to connect to S3 bucket from EC2 instance.

    AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                  .withCredentials(new InstanceProfileCredentialsProvider(false))
                  .build();
    

    This is the recommended way as the application doesn't require to maintain the access keys in property files.

    • IAM role should be created and S3 access should be provided for that role. See the sample policy below.
    • The IAM role should be assigned to the EC2 instance

    Sample policy for IAM role:-

    {
            "Action": ["s3:PutObject",
            "s3:ListBucket",
            "s3:GetObject",
            "s3:DeleteObject"],
            "Resource": ["arn:aws:s3:::yourBucketName",
            "arn:aws:s3:::yourBucketName/*"],
            "Effect": "Allow",
            "Sid": "AllowBucketLinux"
        }
    

提交回复
热议问题