Audience: Data Owners, Data Users, and System Administrators
Content Summary: Immuta supports an S3-style REST API, which allows you to communicate with Immuta the same way you would with S3. Consequently, Immuta easily integrates with tools you may already be using to work with S3.
S3 as a Filesystem
In this integration, Immuta implements a single bucket (with data sources broken up as sub-directories under that bucket), since some S3 tools only support the new virtual-hosted style requests.
The three APIs (outlined below) used in this integration support basic AWS functionality; the requests and responses for each are identical to those in S3.
GET Bucket
This request returns the bucket configured within Immuta.
Method
Path
Successful Status Code
GET
/s3p
200
GET Bucket Contents
This request returns the contents of the given bucket.
Method
Path
Successful Status Code
GET
/s3p/{bucket}
200
GET Object
This request returns a stream from the requested object within Immuta.
Boto 3 is the official Amazon Web Services client SDK for Python and is widely used by developers for accessing S3 objects. With Immuta's S3 integration, Immuta users can use boto3 to download policy-enforced files or tables.
The first step is to create a Session object that points to your Immuta endpoint and is authenticated with a user-specific API Key.
To find out what objects are available for download, you can list the objects in the immuta bucket. To filter down to a particular data source, pass in a Prefix that corresponds to the SQL table name of your Immuta data source.