Skip to main content

Translating with Amazon Bedrock

Amazon Bedrock allows you to translate using the latest Amazon models such as Amazon Nova models. Amazon Bedrock can be used as a translation provider in Smartling, as part of a translation workflow or with any of Smartling's instant machine translation integrations.

Amazon Bedrock can be used either with an access key or using IAM role assumption.

Prerequisites

Before you begin, ensure you have the following:

  • An AWS account with Amazon Bedrock enabled

  • The desired Bedrock models enabled in your target region (e.g.,us-east-1)

  • If you plan to use models from third-party providers on Amazon Bedrock, you may need to enable access to those models in your AWS account first

    • For Anthropic models (Claude), you are required to submit the Anthropic use case details form in the AWS Bedrock console (Model catalog → select an Anthropic model → follow the prompts). This is a one-time step per account.

    • Enabling access starts a subscription process in the background. This can take up to 15 minutes, and longer if a required AWS permission is missing. See Notes on model access.

Note: Additional prerequisites apply depending on the selected credential type.

Additional prerequisites for setting up with an access key:

  • An AWS user with IAM policies that allow the use of Amazon Bedrock (i.e., AWS permission bedrock:InvokeModel)

  • An AWS Access Key ID and Secret Key ID generated for that user. Refer to the Amazon documentation for more information.

Additional prerequisites for setting up with an IAM Role:

  • IAM permissions to create roles and policies in your AWS account

  • The following value from Smartling:
    ​Smartling AWS Principal ARN: arn:aws:iam::108497063145:role/ai-proxy-service-prod-customer-assume-role— the IAM Role that Smartling's service uses to assume your role

Info: You must also have Account Owner access in Smartling to complete the setup process.

Supported models

All text models supported by Amazon Bedrock can be used in Smartling, provided your AWS credentials have access to them. Check the Amazon Bedrock documentation for a complete list of all models.

Supported languages

Amazon Bedrock models support numerous languages. Different models may have varying results and language coverage. Consult the documentation for your specific model to determine whether a language or specific locale is supported.

Setting up Amazon Bedrock credentials in Smartling

You will need to store your Amazon Bedrock credentials in Smartling in order to use an Amazon Bedrock model as a translation provider.

  1. From the top navigation of your Smartling dashboard, access the AI Hub.

  2. Navigate to the Credentials section.

  3. Follow the instructions outlined here to store your provider credentials in Smartling.

Credential types

Smartling supports two methods for authenticating with Amazon Bedrock:

Credential Type

Description

When to Use

Access Key

Uses an AWS Access Key ID and Secret Access Key tied to an IAM user.

Quick setup; suitable for teams comfortable managing static credentials.

IAM Role

Smartling assumes a customer-managed IAM role using AWS STS. No static keys are stored.

Recommended for security-conscious teams; no long-lived credentials, access revocable instantly.

Warning: Once created, the credential type cannot be changed.

Option A: Option A: Setting up with an access key

Step 1: Setup in Amazon

Once you have set up an AWS user with IAM policies that allow the use of Amazon Bedrock (i.e., AWS permission bedrock:InvokeModel), you can generate an Access Key ID and Secret Access Key, which you will need when creating the provider credential in Smartling.

Refer to the AWS documentation for instructions on generating access keys for your IAM user. Smartling-provisioned credentials are not available for Amazon Bedrock.

Step 2: Add provider credentials in Smartling

You will need to store your Amazon Bedrock credentials (Access Key ID and Secret Access Key) in Smartling in order to use an Amazon Bedrock model as a translation provider.

  1. From the top navigation of your Smartling dashboard, access the AI Hub.

  2. Navigate to the Credentials section.

  3. Follow the instructions outlined here to store your provider credentials in Smartling.

  4. Select Amazon Bedrock as your LLM provider, and "Access key" as your credential type.

  5. Complete all required fields, then save your credential.
    ​

Option B: Setting up with an IAM role

Instead of sharing long-lived AWS access keys, you create an IAM Role in your AWS account that trusts Smartling's AWS principal. Smartling assumes that role to obtain short-lived temporary credentials, then uses those to call Bedrock on your behalf.

This eliminates long-lived credentials and gives you full, instant control over access revocation.
​

Step 1: Create an IAM Policy for Bedrock Access

In the AWS Console, create a new policy named SmartlingBedrockAccessPolicy (or a name of your choice) with the following JSON. This grants Smartling permission to invoke Bedrock models on your behalf.

Note: Smartling accesses Bedrock models via both inference profiles (cross-region routed access, used for most chat/translation models) and foundation models (direct access, used for some embedding models). Your policy must cover both resource types.

You can scope the Resource to specific models (recommended for least-privilege), or use a wildcard (arn:aws:bedrock:*:*:foundation-model/*) to allow all models in a region.

Option A — All Bedrock models (recommended for getting started):

{
   "Version": "2012-10-17",
   "Statement": [
       {
           "Sid": "AllowBedrockInvocation",
           "Effect": "Allow",
           "Action": [
               "bedrock:InvokeModel"
           ],
           "Resource": [
               "arn:aws:bedrock:*::foundation-model/*",
               "arn:aws:bedrock:*:<YOUR_ACCOUNT_ID>:inference-profile/*"
           ]
       }
   ]
}

Replace <YOUR_ACCOUNT_ID> with your AWS Account ID.
Note that inference profile ARNs use your own account ID, while foundation model ARNs have an empty account field (they are AWS-owned resources).

Option B — Scoped to specific models:

{
   "Version": "2012-10-17",
   "Statement": [
       {
           "Sid": "AllowBedrockInvocation",
           "Effect": "Allow",
           "Action": [
               "bedrock:InvokeModel"
           ],
           "Resource": [
               "arn:aws:bedrock:*::foundation-model/anthropic.claude-sonnet-4-20250514-v1:0",
               "arn:aws:bedrock:*:<YOUR_ACCOUNT_ID>:inference-profile/*anthropic.claude-sonnet-4*"
           ]
       }
   ]
}

Scoping to specific models is more secure but requires updating the policy when new models are added.
​

Step 2: Create an IAM Role with a Trust Policy

Create a new IAM role named SmartlingBedrockAccess (or a name of your choice) with the following trust policy:

{
   "Version": "2012-10-17",
   "Statement": [
       {
           "Sid": "AllowSmartlingAssumeRole",
           "Effect": "Allow",
           "Principal": {
               "AWS": "arn:aws:iam::108497063145:role/ai-proxy-service-prod-customer-assume-role"
           },
           "Action": "sts:AssumeRole",
           "Condition": {
               "StringEquals": {
                   "sts:ExternalId": "<YOUR_EXTERNAL_ID>"
               }
           }
       }
   ]
}

Replace the following placeholder value:

  • <YOUR_EXTERNAL_ID> — a unique string you generate (see below)

Note: The Smartling AWS Principal ARN shown above (arn:aws:iam::108497063145:role/ai-proxy-service-prod-customer-assume-role) is Smartling's production IAM role used for cross-account role assumption. This value must be used exactly as shown in the Principal field.

External ID (required)

The External ID is a unique string that you generate and include in both your trust policy and the configuration you provide to Smartling. It is required — Smartling will not accept credentials without it.

Why it is required: The External ID prevents the confused deputy problem, a security vulnerability where a third party could trick Smartling into accessing a role they control. AWS explicitly recommends requiring an External ID whenever a third party assumes roles in your account. See:

How to generate it: Use any unique, hard-to-guess string. Examples:

  • A UUID: 550e8400-e29b-41d4-a716-446655440000

  • A descriptive identifier: smartling-bedrock-mycompany-prod-2026

The same External ID must be provided in both your trust policy (sts:ExternalId condition) and in the Smartling credentials configuration. If they don't match, role assumption will fail.

The role name can be anything you choose.

Step 3: Attach the Bedrock Policy to the Role

Attach the SmartlingBedrockAccessPolicy created in Step 1 to the SmartlingBedrockAccess role created in Step 2.
​

Step 4: Store the IAM Role Credential in Smartling

1. From the top navigation of your Smartling dashboard, access the AI Hub.
2. Navigate to Credentials tab.
3. Click "Add Credential" and select Amazon Bedrock as your LLM provider.
4. Select "IAM role" as the credential type.

Info: Once created, the credential type (Access key vs. IAM role) cannot be changed.

5. Enter a credential name and optional description.
6. In the Role ARN field, enter the full ARN of the role you created (e.g., arn:aws:iam::<YOUR_ACCOUNT_ID>:role/SmartlingBedrockAccess).
7. In the External ID field, enter the External ID you generated and used in the trust policy (required).
8. Under Region, specify the AWS region where Bedrock models are enabled (e.g., us-east-1).
9. Click Save to store your credential in Smartling.

Tip: IAM role access can be revoked anytime.

Step 5: Verify access with IAM role assumption

If you selected IAM role as your credential type, submit a test translation request after saving the credential in Smartling and creating an LLM Profile with it.

You can then verify in AWS CloudTrail that:
• sts:AssumeRole events appear from Smartling's principal (arn:aws:iam::108497063145:role/ai-proxy-service-prod-customer-assume-role)
• bedrock:InvokeModel events appear with the assumed role's identity

Filter by Event name → AssumeRole or InvokeModel, and narrow the time range to when the test request was made.

Creating an LLM Profile using Amazon Bedrock credentials

Once your provider credential is saved and tested successfully, create a Profile to configure translation settings. A Profile allows you to configure your translation prompt, as well as additional preferences to further customize the translation output.

  1. From the top navigation of your Smartling dashboard, access the AI Hub.

  2. Navigate to the Profiles page.

  3. Click Create Profile and select LLM Profile.

  4. Follow the steps in How to create an LLM Profile.

    • These steps guide you through creating an LLM Profile for Amazon Bedrock, optionally adjusting translation parameters, and configuring and testing your translation prompt using Prompt Tooling with RAG, along with other optional settings for customizing the translation output.

    • In addition to these general steps, refer to the Amazon Bedrock–specific information below.

Amazon Bedrock-specific setup information

When creating the LLM Profile, you must enter the model ID or ARN of the Amazon Bedrock model you want to use for translation in the Bedrock model field.
​
​

Bedrock-model.png

This field tells the system which model to use when generating a response. The exact value you enter depends on the type of resource you're using:
​
From the Amazon Bedrock documentation

  • If you use a base model, specify the model ID or its ARN. For a list of model IDs for base models, see Supported Regions and models for inference profiles.

  • If you use an Amazon Bedrock Marketplace model, specify the ID or ARN of the marketplace endpoint that you created. For more information about Amazon Bedrock Marketplace and setting up an endpoint, see Amazon Bedrock Marketplace in the Amazon Bedrock User Guide.

  • If you use an inference profile, specify the inference profile ID or its ARN. For a list of inference profile IDs, see Supported Regions and models for cross-region inference in the Amazon Bedrock User Guide.

  • If you use a provisioned model, specify the ARN of the Provisioned Throughput. For more information, see Run inference using a Provisioned Throughput in the Amazon Bedrock User Guide.

  • If you use a custom model, specify the ARN of the custom model deployment (for on-demand inference) or the ARN of your provisioned model (for Provisioned Throughput). For more information, see Use a custom model in Amazon Bedrock in the Amazon Bedrock User Guide.

Notes on model access

Test the model before using it to translate in Smartling. Before an Amazon Bedrock LLM Profile will work, someone with the right AWS permissions needs to invoke the model at least once.

On first invocation, Bedrock automatically starts a subscription process for that model in the background. This can take up to 15 minutes, and API calls may succeed temporarily during this window while the subscription is still finalizing. If a required prerequisite is missing, the subscription attempt fails, and subsequent calls return AccessDeniedException. After you fix a missing prerequisite, allow up to 2 more minutes, calls can still return AccessDeniedException during that window before the subscription completes and invocations start succeeding consistently.

The API user Smartling uses to translate usually can't do this. Regular translation work only needs InvokeModel, so that user typically lacks Marketplace permissions and can't trigger the subscription on its own. To activate a model the first time, either:

  • Test it manually in the AWS Console, under Bedrock > Playground, or

  • Make one API call using a separate user or role that has the permissions below.

Prerequisites for successful model access

  1. AWS Marketplace permissions: Your IAM role must have aws-marketplace:Subscribe, aws-marketplace:Unsubscribe, and aws-marketplace:ViewSubscriptions permissions. See Grant IAM permissions to request access to Amazon Bedrock foundation models with a product ID for details.

  2. Anthropic models: For Anthropic models, you must complete the First Time Use (FTU) form before invoking the model. This requirement does not apply to Anthropic models accessed through the bedrock-mantle endpoint.

  3. Valid payment method: Your AWS account must have a valid payment method configured for AWS Marketplace purchases.

Using an LLM Profile with Amazon Bedrock for translation

After creating the LLM Profile, you can use it to translate content within the Smartling platform (using an MT workflow or generating MT suggestions in the CAT Tool), or use the Profile with one of Smartling's MT integrations to display machine translations directly where needed, such as in connected third-party applications.

Revoking IAM role access

You can revoke Smartling's access to your AWS account at any time by taking one of the following actions in the AWS Console:
• Delete or modify the IAM role's trust policy
• Delete the IAM role entirely
• Add a Deny statement to the role's trust policy

Note: Access revocation is immediate — no credential rotation or changes in Smartling are required.

Troubleshooting Amazon Bedrock translation issues

Common causes and solutions

Error appears on Profile page in the AI Hub

  • Check if you've exceeded token or rate limits in your Amazon Bedrock account

  • Verify your AWS user has the required permissions (e.g., bedrock:InvokeModel) and access to the selected model

  • Confirm your Access Key ID and Secret Access Key are still valid

Translations aren't appearing

Poor translation quality

  • Review and refine your translation prompt and/or assess the quality of your linguistic assets if you are using Prompt Tooling with RAG. The quality of your linguistic assets is also crucial if you are using other features that reference your translation memory, glossary, and style guides, such as AI-Enhanced Glossary Term Insertion or TM Match Insertion.

  • Verify that the target language is well supported by your chosen model. LLM providers like Amazon Bedrock typically produce better quality translation for high-resource languages than for less common, low-resource languages.

  • Try a different Amazon Bedrock model

  • Consider using Smartling's AI Toolkit features or add a human review step to your workflow

Considerations

Compared to traditional machine translation providers, LLMs like those offered through Amazon Bedrock provide more flexibility. However, they also come with a number of challenges that should be considered.

Read about important considerations for translating with LLMs in Translating with LLMs in Smartling.

Did this answer your question?