Isolate Claude Fable 5 Data Retention with Mantle Projects
Create a dedicated Bedrock project for Fable 5 with provider_data_share, keeping production workloads under zero-retention. Includes IAM lockdown.
Introduction
Claude Fable 5 is Anthropic's latest Mythos-class model, purpose-built for multi-day autonomous coding, advanced vision, and long-horizon agentic workflows. To access Fable 5 on Amazon Bedrock, you must opt into
provider_data_share mode, which allows inference data to be retained and shared with Anthropic per their model requirements.Important: There is no data retention change to models released before Claude Fable 5. Your existing Bedrock workloads (Opus, Sonnet, Haiku) remain unaffected.
While enabling
provider_data_share at the account level is technically safe for most models (each model's allowed_modes determines whether data is actually shared, see Data Retention ), it may create unnecessary questions during compliance reviews. For organizations subject to regulatory oversight, isolating data retention at the project level provides auditable clarity: your compliance team can point to a single, dedicated project where data sharing is explicitly enabled, separate from your production workloads which continue to operate under zero-retention.Mantle Projects provide that boundary. In this guide, we'll walk through:
- Creating a dedicated project for Fable 5 with
provider_data_shareenabled - Keeping your account default at
defaultso other models remain at their standard retention policy - Using IAM policies to restrict the project to Fable-only invocations
By the end, you'll have a clean separation: Fable 5 accessible in a dedicated project with explicit data sharing, all other workloads operating under their standard policies, and IAM enforcement ensuring the boundaries stay in place.
Prerequisites
- An AWS account with Amazon Bedrock access
- A Bedrock API key (generated from the Bedrock console)
- IAM permissions including
bedrock-mantle:*actions on the API key's backing IAM user curlinstalled (all steps use curl commands)
Note: This guide uses a Bedrock API key for simplicity. The same operations can be performed using AWS SigV4 authentication (IAM credentials via the AWS CLI or SDK). If your organization prefers IAM-based access over static keys, substitutex-api-keyheaders with SigV4-signed requests usingawscurlorboto3.
Important: Long-term Bedrock API keys are created with a restricted default policy that only permits get and list operations. To complete the steps in this guide, you must attach an additional inline policy to the backing IAM user granting at minimum:bedrock-mantle:CreateProject,bedrock-mantle:UpdateProject,bedrock-mantle:CreateInference, andbedrock-mantle:GetAccountDataRetention. For simplicity, you can grantbedrock-mantle:*onResource: "*"
Understanding Data Retention Modes
Amazon Bedrock provides three data retention modes:
| Mode | Behavior |
|---|---|
| default | The model's own retention policy applies. For most models, this means zero data retention. AWS may retain data for safety/abuse prevention only. Model providers do NOT receive it. |
| none | Zero data retention. Nothing is written to durable storage or shared with model providers. |
| provider_data_share | AWS retains and shares inference data with the model provider per their requirements. Required for Fable 5 and Mythos 5. |
Setting
provider_data_share at the project level does NOT mean all model traffic in that project is shared with providers. Each model's allowed_modes determines what actually happens:- A model whose
allowed_modesis["provider_data_share"](e.g., Claude Fable 5) - data is retained and shared with the provider. - A model whose
allowed_modesis["default", "provider_data_share"](e.g., Claude Opus 4.8) - data is retained by AWS only. The model acceptsprovider_data_shareas a valid mode but does not require data to leave AWS's boundary. (source )
This distinction is critical: even if your project is set to
provider_data_share, only models that exclusively require it (Fable 5, Mythos 5) will actually share data. All other models continue to operate under their standard data handling.Setting up Project Isolation
Now that you understand how modes work, here's how we'll configure your account to isolate Fable 5 into its own project
Step 1: Verify Your Account is at Default
First, confirm your account-level data retention is set to
default:1
2
curl -s "https://bedrock-mantle.us-east-1.api.aws/v1/data_retention" \
-H "x-api-key: $BEDROCK_API_KEY"
Expected response:
1
{"mode": "default", "updated_at": 1781213635}
Step 2: Confirm Fable 5 is Unavailable at Account Level
With the account at
default, calling Fable 5 should be blocked:1
2
3
4
5
curl -s "https://bedrock-mantle.us-east-1.api.aws/anthropic/v1/messages" \
-H "x-api-key: $BEDROCK_API_KEY" \
-H "Content-Type: application/json" \
-H "anthropic-version: 2023-06-01" \
-d '{"model":"anthropic.claude-fable-5","max_tokens":50,"messages":[{"role":"user","content":"Hello"}]}'
Expected response:
1
2
3
4
5
6
7
{
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "data retention mode 'default' is not available for this model"
}
}
This confirms: Fable 5 requires an explicit opt-in to
provider_data_share.Step 3: Create a Dedicated Project for Fable 5
Create a new Mantle project specifically for Fable workloads:
1
2
3
4
5
6
7
8
9
10
curl -s -X POST "https://bedrock-mantle.us-east-1.api.aws/v1/organization/projects" \
-H "x-api-key: $BEDROCK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "fable-workspace",
"tags": {
"Purpose": "Fable5-isolated",
"DataRetention": "provider_data_share"
}
}'
Expected response:
1
2
3
4
5
6
7
8
{
"arn": "arn:aws:bedrock-mantle:us-east-1:123456789012:project/proj_xxxxxxxxxxxxxx",
"id": "proj_xxxxxxxxxxxxxx",
"name": "fable-workspace",
"data_retention": {"mode": "inherit"},
"status": "active",
"tags": {"Purpose": "Fable5-isolated", "DataRetention": "provider_data_share"}
}
Note the project ID (
proj_xxxxxxxxxxxxxx), you'll need it for the following steps.Note: The project is created withdata_retention: inheritby default. We'll set it explicitly in the next step.
Step 4: Enable Data Sharing on the Project
Set the project's data retention mode to
provider_data_share:1
2
3
4
curl -s -X POST "https://bedrock-mantle.us-east-1.api.aws/v1/organization/projects/proj_xxxxxxxxxxxxxx" \
-H "x-api-key: $BEDROCK_API_KEY" \
-H "Content-Type: application/json" \
-d '{"data_retention": {"mode": "provider_data_share"}}'
Expected response confirms the update:
1
2
3
4
5
{
"id": "proj_xxxxxxxxxxxxxx",
"data_retention": {"mode": "provider_data_share"},
"status": "active"
}
Step 5: Invoke Fable 5 from the Project
Now call Fable 5 using the
anthropic-workspace-id header to target the project:1
2
3
4
5
6
curl -s "https://bedrock-mantle.us-east-1.api.aws/anthropic/v1/messages" \
-H "x-api-key: $BEDROCK_API_KEY" \
-H "Content-Type: application/json" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-workspace-id: proj_xxxxxxxxxxxxxx" \
-d '{"model":"anthropic.claude-fable-5","max_tokens":100,"messages":[{"role":"user","content":"Hello from the Fable workspace!"}]}'
✅ Success, Fable 5 responds.
Step 6: Verify Isolation, Fable Remains Blocked at Account Level
Without the
anthropic-workspace-id header (targeting the default project), Fable should still be blocked:1
2
3
4
5
curl -s "https://bedrock-mantle.us-east-1.api.aws/anthropic/v1/messages" \
-H "x-api-key: $BEDROCK_API_KEY" \
-H "Content-Type: application/json" \
-H "anthropic-version: 2023-06-01" \
-d '{"model":"anthropic.claude-fable-5","max_tokens":50,"messages":[{"role":"user","content":"Hello"}]}'
Expected:
"data retention mode 'default' is not available for this model"✅ Confirmed, Fable 5 is only accessible through the dedicated project.
Step 7: Restrict the Project to Fable-Only (IAM Policy)
At this point, any model can be called from the fable-workspace project. To ensure only Fable 5 is used there (preventing accidental access from other workloads), attach an IAM Deny policy to the API key's backing IAM user:
IAM Console → Users → [your Bedrock API key user] → Permissions → Add inline policy → JSON:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DenyNonFableInFableProject",
"Effect": "Deny",
"Action": "bedrock-mantle:CreateInference",
"Resource": "arn:aws:bedrock-mantle:us-east-1:123456789012:project/proj_xxxxxxxxxxxxxx",
"Condition": {
"StringNotEquals": {
"bedrock-mantle:Model": "anthropic.claude-fable-5"
}
}
}
]
}
This policy uses the
bedrock-mantle:Model condition key to deny any inference request that isn't Fable 5, but ONLY for the fable-workspace project. All other projects remain unrestricted.Verify the restriction:
Call Haiku from fable-workspace (should be BLOCKED):
1
2
3
4
5
6
curl -s "https://bedrock-mantle.us-east-1.api.aws/anthropic/v1/messages" \
-H "x-api-key: $BEDROCK_API_KEY" \
-H "Content-Type: application/json" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-workspace-id: proj_xxxxxxxxxxxxxx" \
-d '{"model":"anthropic.claude-haiku-4-5","max_tokens":50,"messages":[{"role":"user","content":"Hello"}]}'
Expected:
1
2
3
4
5
6
7
{
"type": "error",
"error": {
"type": "permission_error",
"message": "User is not authorized to perform: bedrock-mantle:CreateInference ... with an explicit deny in an identity-based policy"
}
}
Call Fable from fable-workspace (should still WORK):
1
2
3
4
5
6
curl -s "https://bedrock-mantle.us-east-1.api.aws/anthropic/v1/messages" \
-H "x-api-key: $BEDROCK_API_KEY" \
-H "Content-Type: application/json" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-workspace-id: proj_xxxxxxxxxxxxxx" \
-d '{"model":"anthropic.claude-fable-5","max_tokens":50,"messages":[{"role":"user","content":"Hello from Fable!"}]}'
✅ Success, the project is now locked to Fable-only.
Things to Know
Organization-wide governance with SCPs
If your organization requires zero data retention across all accounts, you can enforce this with a Service Control Policy:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "EnforceZDR",
"Effect": "Deny",
"Action": [
"bedrock-mantle:PutAccountDataRetention",
"bedrock-mantle:UpdateProject"
],
"Resource": "*",
"Condition": {
"StringNotEquals": {
"bedrock-mantle:DataRetentionMode": "none"
}
}
}
]
}
This prevents anyone in the organization from enabling
provider_data_share, except through a specific exception process for approved accounts.Compliance considerations
If your organization requires zero data retention for compliance reasons (e.g., HIPAA, BAA) and also needs access to Fable 5, work with your AWS Account Team to evaluate options.
References
Enjoyed reading this content? Let the author know!
Your likes, comments, shares, and saves help creators reach more builders.
Loading recommendations
Loading article