AWS S3 Configuration#
You can configure variable data storage classes to use AWS S3 for storage. See the section on Data Destinations for more information on configuring a variable data storage class to use AWS S3.
RStudio Package Manager's AWS S3 support utilizes the AWS S3 SDK, which documents configuration and credential standards for interacting with S3 services.
See the AWS CLI Configuration for detailed documentation on configuring your environment for interaction with AWS.
Below are some configuration examples.
To interact with S3, you will typically configure either environment variables or a credentials file.
Refer to AWS Environment Variables for more information on environment variables.
Here is an example:
Create and edit a new file at
; /etc/systemd/system/rstudio-pm.service.d/aws.conf Environment="AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE" Environment="AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" Environment="AWS_DEFAULT_REGION=us-west-2"
systemd process and restart the RStudio Package Manager service with:
sudo systemctl daemon-reload sudo systemctl start rstudio-pm
The credentials RStudio Package Manager uses for S3 storage must have the following permissions for the bucket:
Credentials and Config Files#
Refer to AWS Configuration and Credential Files for more information on configuration files.
Alternatively, you can configure RStudio Package Manager to use AWS S3 services
by creating credential and configuration files in the service account's home directory.
rstudio-pm service account does not have a home directory by default, you
will first need to create it.
sudo mkdir /home/rstudio-pm sudo chown rstudio-pm:rstudio-pm /home/rstudio-pm
Next, create a
credentials file to contain your AWS credentials
; /home/rstudio-pm/.aws/credentials [default] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
If you wish to configure your AWS region without an environment variable, you can use
a config file. By default, RStudio Package Manager will only read the
file. To also read the
~/.aws/config file, you must configure one of the following:
- Set an environment variable:
- Set the
S3Storage.EnableSharedConfig = trueconfiguration value.
When the AWS_SDK_LOAD_CONFIG environment variable is true or the
S3Storage.EnableSharedConfig setting is
true, both the shared config
~/.aws/config) and the shared credentials file
~/.aws/credentials) will be loaded. Values in the shared credentials file
take priority when there are duplicated values.
Create a shared config file:
; /home/rstudio-pm/.aws/config [default] region=us-west-2
After creating the
config files, restart the RStudio Package
As a best practice, AWS recommends that you specify credentials in the following order:
- Use IAM roles for Amazon EC2 (if your application is running on an Amazon EC2 instance). IAM roles provide temporary security credentials to your instance to make AWS calls. IAM roles provide an easy way to distribute and manage credentials on multiple Amazon EC2 instances.
- Use a shared credentials file. This credentials file is the same one used by other SDKs and the AWS CLI. If you’re already using a shared credentials file, you can also use it for this purpose.
- Use environment variables. Setting environment variables is useful if you’re doing development work on a machine other than an Amazon EC2 instance.
If you select IAM roles for Amazon EC2 instances, RSPM will automatically use the instance’s credentials.
RStudio Package Manager Configuration#
See the section on Data Destinations for examples of configuring RStudio Package Manager to use S3.
See the S3 Storage Configuration section in the appendix for more details on the S3 storage configuration settings available to RStudio Package Manager.
See the Storage Configuration section in the appendix for details on configuring a variable data storage class to use S3.