Create S3 Role-based Output

Body Params

The S3 Role-based output to be created

The following permissions are required for S3 Role-based output:

  • s3:PutObject
  • s3:PutObjectAcl
  • s3:ListBucket
  • s3:GetBucketLocation
string

Name of the resource. Can be freely chosen by the user.

string

Description of the resource. Can be freely chosen by the user.

string

User-specific meta data. This can hold anything.

acl
array of objects
deprecated

Deprecation notice: This property does not have any effect and will not be returned by GET endpoints

acl
string
required

Amazon S3 bucket name

string
required

Amazon ARN of the IAM Role (Identity and Access Management Role) that will be assumed for S3 access.

This role has to be created by the owner of the account with the S3 bucket (i.e., you as a customer). For Bitmovin to be able to assume this role, the following has to be added
to the trust policy of the role:

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::630681592166:user/bitmovinCustomerS3Access"
  },
  "Action": "sts:AssumeRole",
  "Condition": {
    "StringEquals": {
      "sts:ExternalId": "{{externalId}}"
    }
  }
}

where "arn:aws:iam::630681592166:user/bitmovinCustomerS3Access" is the Bitmovin user used for the access.
The Condition is optional but we highly recommend it, see property externalId below for more information.

This setup allows Bitmovin assume the provided IAM role and to write data to your S3 bucket. Please note that the IAM role has to have write access to S3.

For more information about role creation please visit https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console

string

External ID used together with the IAM role identified by roleArn to assume S3 access.

This ID is provided by the API if externalIdMode is set to GLOBAL or GENERATED. If present, it has to be added to the trust policy of the IAM role roleArn configured above, otherwise the API won't be able to write to the S3 bucket. An appropriate trust policy would look like this:

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::630681592166:user/bitmovinCustomerS3Access"
  },
  "Action": "sts:AssumeRole",
  "Condition": {
    "StringEquals": {
      "sts:ExternalId": "{{externalId}}"
    }
  }
}

where "{{externalId}}" is the generated ID.

This property is optional but we recommend it as an additional security feature. We will use both the roleArn and the externalId to access your S3 data.
If the Amazon IAM role has an external ID configured but it is not provided in the output configuration Bitmovin won't be able to write to the S3 bucket. Also if the
external ID does not match the one configured for the IAM role on AWS side, Bitmovin won't be able to access the S3 bucket.

If you need to change the external ID that is used by your IAM role, you need to create a new output, and use the external ID provided by the API to update your IAM role.

For more information please visit https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html

string
enum
Defaults to CUSTOM
Allowed:
string

If set a user defined tag (x-amz-meta-) with that key will be used to store the MD5 hash of the file.

string
enum
string
enum
Defaults to S3_V4

Specifies the method used for authentication

Allowed:
Responses

Language
Credentials
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json