Create a storage bucket
As of Boundary 0.13.0, you can record and audit user sessions. A resource known as a storage bucket is used to store the recorded sessions. The storage bucket represents a bucket in an external store. Before you can enable session recording, you must create one or more storage buckets.
A storage bucket can only belong to the Global scope or an Org scope. A storage bucket that is associated with the Global scope can be associated with any target. However, a storage bucket in an Org scope can only be associated with targets in a project from the same Org scope. Any storage buckets associated with an Org scope are deleted when the Org itself is deleted.
For more information about using session recording to audit user sessions, refer to Auditing.
Requirements
Before you can create a storage bucket, you must ensure that your environment meets certain requirements. Session recording requires specific configuration for both the AWS S3 storage bucket and the Boundary worker.
AWS requirements
An AWS S3 storage bucket
At this time, the only supported storage for storage buckets is AWS S3. In AWS S3, a storage bucket contains the bucket name, region, and optional prefix, as well as any credentials needed to access the bucket, such as the access and secret key.
An AWS IAM role policy with the following statement:
If you apply KMS encryption to the storage bucket, you must add these additional permissions to the role policy for the storage bucket's IAM user:
Boundary workers requirements
Session recording requires at least one PKI worker that:
- Has access to the AWS S3 storage bucket
- Has an accessible directory defined by
recording_storage_path
for storing session recordings while they are in progress. On session closure, Boundary moves the local session recording to remote storage and deletes the local copy. For more details, refer to PKI workers. - Has at least 1 MB of available disk space.
- Runs Darwin, Windows, or Linux. The following binaries are not supported for session recording: NetBSD, OpenBSD, Solaris.
Development example:
Complete the following steps to create a storage bucket for session recording:
Log in to Boundary.
Use the following command to create a storage bucket:
Replace the values above with the following required AWS secrets and any optional attributes you want to associate with the storage bucket:
region
: (Required) The AWS region to use.bucket-name
: (Required) Name of the bucket in AWS.access_key_id
: (Required) The AWS access key to use.secret_access_key_id
: (Required) The AWS secret access key to use. This attribute contains the secret access key for static credentials.worker-filter
: (Required) A filter that indicates which Boundary workers have access to the storage. The filter must match an existing worker in order to create a storage bucket.shared_credentials_file
: (Optional) The shared credentials file to use.shared_credentials_profile
: (Optional) The profile name to use in the shared credentials file.
Boundary creates the storage bucket and provides you with the bucket's ID. Once the storage bucket is created, you can use the bucket's ID to enable session recording on targets.