Amazon AWS S3
Amazon AWS S3 is a cloud-based object storage service that offers scalability, data availability, security, and performance.
Amazon AWS S3 is a scalable cloud storage service that provides secure and durable storage for data. The AWS S3 connector allows Swimlane Turbine users to seamlessly integrate with AWS S3, enabling automated management of cloud storage operations such as uploading, downloading, and deleting files, as well as retrieving bucket policies and access controls. This integration enhances security automation by allowing users to efficiently manage and secure their cloud storage resources directly from the Swimlane platform, reducing manual intervention and potential errors.
Asset Setup
This integration authenticates with AWS S3 using the following input values:
Prerequisites
Before you can use the Amazon AWS S3 connector for Turbine, you'll need access to AWS credentials. This requires the following:
- AWS S3 authentication using the following parameters:
- Region Name: Specify the AWS region where your S3 resources are located.
Obtaining AWS Credentials
To use this integration, you will need to have an AWS account and obtain the necessary AWS credentials. You can obtain these credentials by following the steps below:
- Log in to your AWS account and navigate to the IAM console.
- In the left navigation pane, click on the "Users" tab and select the user for which you want to create credentials.
- Click on the "Security credentials" tab, and then click on "Create access key".
- Make sure to save the access key ID and secret access key in a secure location, as you will not be able to see the secret access key again after this step.
- If you want to use an AWS IAM Role to access the S3 bucket, you will need to have the ARN of the role and an optional External ID, if one was specified by the AWS account administrator.
Capabilities
The AWS S3 Connector provides the following capabilities:
- Delete Object
- Download File
- Get Buckets
- Get Object
- Get Objects
- Upload File
Additional Documentation
Configurations
AWS S3
Authenticates using AWS credentials
Configuration Parameters
Parameter | Description | Type | Required |
|---|---|---|---|
access_key | AWS Access Key, see https://docs.aws.amazon.com/general/latest/gr/managing-aws-access-keys.html for more information. | string | Optional |
secret_key | AWS Secret Key, see https://docs.aws.amazon.com/general/latest/gr/managing-aws-access-keys.html for more information. | string | Optional |
region_name | The AWS Region where you want to create new connections | string | Required |
role_arn | Optional Role ARN to assume. Leave blank unless tasks need to assume a different role. See https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html for more information. | string | Optional |
external_id | External ID to assume IAM Role. Optional value used for assuming roles. Can be added, or removed in Trusted Relationships of target role. | string | Optional |
session_token | Use if a session token is provided when switching roles | string | Optional |
role_session_name | Defaults to SessionFromSwimlane_<HASH> when no value is provide | string | Optional |
Actions
Delete Object
Remove a specified object from an Amazon S3 bucket using the provided bucket name and object key.
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
Bucket | string | Required | Parameter for Delete Object |
Key | string | Required | Parameter for Delete Object |
MFA | string | Optional | Parameter for Delete Object |
VersionId | string | Optional | Unique identifier |
RequestPayer | string | Optional | Parameter for Delete Object |
BypassGovernanceRetention | boolean | Optional | Parameter for Delete Object |
ExpectedBucketOwner | string | Optional | Parameter for Delete Object |
Input Example
{"Bucket":"String","Key":"String","MFA":"String","VersionId":"String","RequestPayer":"String","BypassGovernanceRetention":false,"ExpectedBucketOwner":"string"}
Output
Parameter | Type | Description |
|---|---|---|
ResponseMetadata | object | Response data |
ResponseMetadata.RequestId | string | Response data |
ResponseMetadata.HostId | string | Response data |
ResponseMetadata.HTTPStatusCode | number | Response data |
ResponseMetadata.HTTPHeaders | object | Response data |
ResponseMetadata.HTTPHeaders.x-amz-id-2 | string | Response data |
ResponseMetadata.HTTPHeaders.x-amz-request-id | string | Response data |
ResponseMetadata.HTTPHeaders.date | string | Response data |
ResponseMetadata.HTTPHeaders.server | string | Response data |
ResponseMetadata.RetryAttempts | number | Response data |
Output Example
{"ResponseMetadata":{"RequestId":"string","HostId":"string","HTTPStatusCode":204,"HTTPHeaders":{"x-amz-id-2":"string","x-amz-request-id":"string","date":"Tue, 10 Oct 2023 10:02:19 GMT","server":"AmazonS3"},"RetryAttempts":0}}
Download File
Retrieve a specified file from an Amazon AWS S3 bucket using the provided bucket name and file key.
Endpoint
- Method: GET
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
bucket | string | Required | Parameter for Download File |
key | string | Required | Parameter for Download File |
Input Example
{"bucket":"string","key":"string"}
Output
Parameter | Type | Description |
|---|---|---|
status_code | number | HTTP status code of the response |
reason | string | Response reason phrase |
file | array | Output field: file |
Output Example
{"file":{"file_data":"string","filename":"Example Name"}}
Get Bucket ACL
Retrieve the access control list (ACL) for a specified Amazon AWS S3 bucket, with support for ExpectedBucketOwner assertions. Requires the 'Bucket' input.
Endpoint
- Method: GET
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
Bucket | string | Required | The bucket name or access point/Object Lambda alias whose ACL is requested. |
ExpectedBucketOwner | string | Optional | AWS account ID expected to own the bucket; mismatches return 403. |
Input Example
{"Bucket":"string","ExpectedBucketOwner":"string"}
Output
Parameter | Type | Description |
|---|---|---|
Owner | object | Output field: Owner |
Owner.DisplayName | string | Name of the resource |
Owner.ID | string | Unique identifier |
Grants | array | Output field: Grants |
Grants.Grantee | object | Output field: Grants.Grantee |
Grants.Grantee.DisplayName | string | Name of the resource |
Grants.Grantee.EmailAddress | string | Output field: Grants.Grantee.EmailAddress |
Grants.Grantee.ID | string | Unique identifier |
Grants.Grantee.Type | string | Type of the resource |
Grants.Grantee.URI | string | Output field: Grants.Grantee.URI |
Grants.Permission | string | Output field: Grants.Permission |
Output Example
{"Owner":{"DisplayName":"Example Name","ID":"12345678-1234-1234-1234-123456789abc"},"Grants":[]}
Get Bucket Ownership Controls
Retrieve ownership controls settings for a specified Amazon AWS S3 bucket, requiring the s3:GetBucketOwnershipControls permission.
Endpoint
- Method: GET
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
Bucket | string | Required | Name of the bucket whose ownership controls are requested. |
ExpectedBucketOwner | string | Optional | AWS account ID expected to own the bucket; mismatches return 403. |
Input Example
{"Bucket":"example-bucket","ExpectedBucketOwner":"123456789012"}
Output
Parameter | Type | Description |
|---|---|---|
OwnershipControls | object | OwnershipControls currently in effect for the bucket. |
OwnershipControls.Rules | array | Ownership control rules applied to the bucket. |
OwnershipControls.Rules.ObjectOwnership | string | Object ownership setting for the bucket. |
Output Example
{"OwnershipControls":{"Rules":[{}]}}
Get Bucket Policy
Retrieve the JSON policy of a specified S3 bucket, requiring s3:GetBucketPolicy permission and Regional endpoint calls for directory buckets.
Endpoint
- Method: GET
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
Bucket | string | Required | Name of the bucket whose policy is requested; use path-style Regional endpoint for directory buckets or an access point/Object Lambda alias where applicable. |
ExpectedBucketOwner | string | Optional | AWS account ID expected to own the bucket; mismatches return 403 (not supported for directory buckets). |
Input Example
{"Bucket":"example-bucket","ExpectedBucketOwner":"123456789012"}
Output
Parameter | Type | Description |
|---|---|---|
Policy | string | Bucket policy document as a JSON string. |
Output Example
{"Policy":"string"}
Get Bucket Policy Status
Retrieve the policy status of an Amazon AWS S3 bucket to check if it is publicly accessible. Requires 's3:GetBucketPolicyStatus' permission and the Bucket name.
Endpoint
- Method: GET
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
Bucket | string | Required | Name of the S3 bucket whose policy status is requested. |
ExpectedBucketOwner | string | Optional | AWS account ID expected to own the bucket; mismatches return 403. |
Input Example
{"Bucket":"my-bucket","ExpectedBucketOwner":"123456789012"}
Output
Parameter | Type | Description |
|---|---|---|
PolicyStatus | object | Status value |
PolicyStatus.IsPublic | boolean | True when the bucket is considered public, otherwise false. |
Output Example
{"PolicyStatus":{"IsPublic":true}}
Get Buckets
Retrieve a list of all Amazon AWS S3 buckets accessible to the authenticated user, providing an overview of available storage containers.
Output
Parameter | Type | Description |
|---|---|---|
ResponseMetadata | object | Response data |
ResponseMetadata.RequestId | string | Response data |
ResponseMetadata.HostId | string | Response data |
ResponseMetadata.HTTPStatusCode | number | Response data |
ResponseMetadata.HTTPHeaders | object | Response data |
ResponseMetadata.HTTPHeaders.x-amz-id-2 | string | Response data |
ResponseMetadata.HTTPHeaders.x-amz-request-id | string | Response data |
ResponseMetadata.HTTPHeaders.date | string | Response data |
ResponseMetadata.HTTPHeaders.content-type | string | Response data |
ResponseMetadata.HTTPHeaders.transfer-encoding | string | Response data |
ResponseMetadata.HTTPHeaders.server | string | Response data |
ResponseMetadata.RetryAttempts | number | Response data |
Buckets | array | Output field: Buckets |
Buckets.Name | string | Name of the resource |
Buckets.CreationDate | string | Date value |
Owner | object | Output field: Owner |
Owner.DisplayName | string | Name of the resource |
Owner.ID | string | Unique identifier |
Output Example
{"ResponseMetadata":{"RequestId":"string","HostId":"string","HTTPStatusCode":123,"HTTPHeaders":{"x-amz-id-2":"string","x-amz-request-id":"string","date":"2024-01-01T00:00:00Z","content-type":"string","transfer-encoding":"string","server":"string"},"RetryAttempts":123},"Buckets":[],"Owner":{"DisplayName":"Example Name","ID":"12345678-1234-1234-1234-123456789abc"}}
Get Object
Retrieve a specified object from an Amazon AWS S3 bucket using the provided Bucket name and Key.
Endpoint
- Method: GET
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
Bucket | string | Required | Parameter for Get Object |
IfMatch | string | Optional | Parameter for Get Object |
IfModifiedSince | string | Optional | Parameter for Get Object |
IfNoneMatch | string | Optional | Parameter for Get Object |
IfUnmodifiedSince | string | Optional | Parameter for Get Object |
Key | string | Required | Parameter for Get Object |
Range | string | Optional | Parameter for Get Object |
ResponseCacheControl | string | Optional | Parameter for Get Object |
ResponseContentDisposition | string | Optional | Response content |
ResponseContentEncoding | string | Optional | Response content |
ResponseContentLanguage | string | Optional | Response content |
ResponseContentType | string | Optional | Type of the resource |
ResponseExpires | string | Optional | Parameter for Get Object |
VersionId | string | Optional | Unique identifier |
SSECustomerAlgorithm | string | Optional | Parameter for Get Object |
SSECustomerKey | string | Optional | Parameter for Get Object |
RequestPayer | string | Optional | Parameter for Get Object |
PartNumber | number | Optional | Parameter for Get Object |
ExpectedBucketOwner | string | Optional | Parameter for Get Object |
ChecksumMode | string | Optional | Parameter for Get Object |
Input Example
{"Bucket":"string","IfMatch":"string","IfModifiedSince":"2015-01-01T00:00:00","IfNoneMatch":"string","IfUnmodifiedSince":"2015-01-01T00:00:00","Key":"string","Range":"string","ResponseCacheControl":"string","ResponseContentDisposition":"string","ResponseContentEncoding":"string","ResponseContentLanguage":"string","ResponseContentType":"string","ResponseExpires":"2015-01-01T00:00:00","VersionId":"string","SSECustomerAlgorithm":"string","SSECustomerKey":"string","RequestPayer":"requester","PartNumber":123,"ExpectedBucketOwner":"string","ChecksumMode":"ENABLED"}
Output
Parameter | Type | Description |
|---|---|---|
status_code | number | HTTP status code of the response |
reason | string | Response reason phrase |
response | object | Output field: response |
response.DeleteMarker | boolean | Output field: response.DeleteMarker |
response.AcceptRanges | string | Output field: response.AcceptRanges |
response.Expiration | string | Output field: response.Expiration |
response.Restore | string | Output field: response.Restore |
response.LastModified | string | Output field: response.LastModified |
response.ContentLength | number | Response content |
response.ETag | string | Output field: response.ETag |
response.ChecksumCRC32 | string | Output field: response.ChecksumCRC32 |
response.ChecksumCRC32C | string | Output field: response.ChecksumCRC32C |
response.ChecksumSHA1 | string | Output field: response.ChecksumSHA1 |
response.ChecksumSHA256 | string | Output field: response.ChecksumSHA256 |
response.MissingMeta | number | Output field: response.MissingMeta |
response.VersionId | string | Unique identifier |
response.CacheControl | string | Output field: response.CacheControl |
response.ContentDisposition | string | Response content |
response.ContentEncoding | string | Response content |
response.ContentLanguage | string | Response content |
response.ContentRange | string | Response content |
response.ContentType | string | Type of the resource |
response.Expires | string | Output field: response.Expires |
response.WebsiteRedirectLocation | string | Output field: response.WebsiteRedirectLocation |
response.ServerSideEncryption | string | Unique identifier |
Output Example
{"status_code":200,"response_headers":null,"reason":"OK","response":{"DeleteMarker":true,"AcceptRanges":"string","Expiration":"string","Restore":"string","LastModified":"2015-01-01T00:00:00","ContentLength":123,"ETag":"string","ChecksumCRC32":"string","ChecksumCRC32C":"string","ChecksumSHA1":"string","ChecksumSHA256":"string","MissingMeta":123,"VersionId":"string","CacheControl":"string","ContentDisposition":"string"}}
Get Objects
Retrieve a list of objects from the specified Amazon AWS S3 bucket using the 'Bucket' name.
Endpoint
- Method: GET
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
Bucket | string | Required | Parameter for Get Objects |
Delimiter | string | Optional | Parameter for Get Objects |
EncodingType | string | Optional | Type of the resource |
MaxKeys | number | Optional | Parameter for Get Objects |
Prefix | string | Optional | Parameter for Get Objects |
ContinuationToken | string | Optional | Parameter for Get Objects |
FetchOwner | boolean | Optional | Parameter for Get Objects |
StartAfter | string | Optional | Parameter for Get Objects |
RequestPayer | string | Optional | Parameter for Get Objects |
ExpectedBucketOwner | string | Optional | Parameter for Get Objects |
Input Example
{"Bucket":"my-bucket","Delimiter":"/","EncodingType":"url","MaxKeys":1000,"Prefix":"my-prefix","ContinuationToken":"token","FetchOwner":true,"StartAfter":"start-after","RequestPayer":"requester","ExpectedBucketOwner":"expected-owner"}
Output
Parameter | Type | Description |
|---|---|---|
ResponseMetadata | object | Response data |
ResponseMetadata.RequestId | string | Response data |
ResponseMetadata.HostId | string | Response data |
ResponseMetadata.HTTPStatusCode | number | Response data |
ResponseMetadata.HTTPHeaders | object | Response data |
ResponseMetadata.HTTPHeaders.x-amz-id-2 | string | Response data |
ResponseMetadata.HTTPHeaders.x-amz-request-id | string | Response data |
ResponseMetadata.HTTPHeaders.date | string | Response data |
ResponseMetadata.HTTPHeaders.x-amz-bucket-region | string | Response data |
ResponseMetadata.HTTPHeaders.content-type | string | Response data |
ResponseMetadata.HTTPHeaders.transfer-encoding | string | Response data |
ResponseMetadata.HTTPHeaders.server | string | Response data |
ResponseMetadata.RetryAttempts | number | Response data |
IsTruncated | boolean | Output field: IsTruncated |
Contents | array | Response content |
Contents.Key | string | Response content |
Contents.LastModified | string | Response content |
Contents.ETag | string | Response content |
Contents.ChecksumAlgorithm | array | Response content |
Contents.Size | number | Response content |
Contents.StorageClass | string | Response content |
Name | string | Name of the resource |
Prefix | string | Output field: Prefix |
MaxKeys | number | Output field: MaxKeys |
EncodingType | string | Type of the resource |
Output Example
{"ResponseMetadata":{"RequestId":"C5B5W1QCY041Z8QZ","HostId":"Zcy127CYg9grhK0UEkVYzsbphrO2dZJefGh84prjhXh1svzgr1JDR8BR+KeHf/n5U8nLTUKw0nnLKi0w...","HTTPStatusCode":200,"HTTPHeaders":{"x-amz-id-2":"Zcy127CYg9grhK0UEkVYzsbphrO2dZJefGh84prjhXh1svzgr1JDR8BR+KeHf/n5U8nLTUKw0nnLKi0w...","x-amz-request-id":"C5B5W1QCY041Z8QZ","date":"Tue, 20 May 2025 04:37:01 GMT","x-amz-bucket-region":"ap-southeast-2","content-type":"application/xml","transfer-encoding":"chunked","server":"AmazonS3"},"RetryAttempts":0}...
Get Public Access Block
Retrieve the PublicAccessBlock configuration for a specified Amazon AWS S3 bucket, requiring s3:GetBucketPublicAccessBlock permissions.
Endpoint
- Method: GET
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
Bucket | string | Required | Name of the S3 bucket whose PublicAccessBlock configuration is requested (not supported for directory buckets). |
ExpectedBucketOwner | string | Optional | AWS account ID expected to own the bucket; mismatches return 403. |
Input Example
{"Bucket":"string","ExpectedBucketOwner":"string"}
Output
Parameter | Type | Description |
|---|---|---|
PublicAccessBlockConfiguration | object | Output field: PublicAccessBlockConfiguration |
PublicAccessBlockConfiguration.BlockPublicAcls | boolean | Output field: PublicAccessBlockConfiguration.BlockPublicAcls |
PublicAccessBlockConfiguration.IgnorePublicAcls | boolean | Output field: PublicAccessBlockConfiguration.IgnorePublicAcls |
PublicAccessBlockConfiguration.BlockPublicPolicy | boolean | Output field: PublicAccessBlockConfiguration.BlockPublicPolicy |
PublicAccessBlockConfiguration.RestrictPublicBuckets | boolean | Output field: PublicAccessBlockConfiguration.RestrictPublicBuckets |
Output Example
{"PublicAccessBlockConfiguration":{"BlockPublicAcls":true,"IgnorePublicAcls":true,"BlockPublicPolicy":true,"RestrictPublicBuckets":true}}
Upload File
Upload a file to a specified Amazon AWS S3 bucket using the provided file and bucket name.
Input
Argument Name | Type | Required | Description |
|---|---|---|---|
file | object | Required | file that you want to submit. |
file.file | string | Required | Parameter for Upload File |
file.file_name | string | Required | Name of the resource |
bucket | string | Required | Parameter for Upload File |
object_name | string | Optional | S3 object name. If not specified then file_name is used |
Input Example
{"file":{"file":"","file_name":"sample.txt"},"bucket":"bucket_name"}
Output
Parameter | Type | Description |
|---|---|---|
success | boolean | Whether the operation was successful |
Output Example
{"json_body":{"success":true}}
Response Headers
Header | Description | Example |
|---|---|---|
Content-Type | The media type of the resource | application/json |
Date | The date and time at which the message was originated | Thu, 01 Jan 2024 00:00:00 GMT |