Last-pass revision for securing and governing generative AI on AWS. Skim the tables, drill the traps.
Controls at a glance
| Concern | Control | Notes |
|---|---|---|
| Identity | IAM identity-based policy scoped to model ARNs | bedrock:InvokeModel on a specific foundation-model/* ARN, not *; roles, not long-lived keys |
| Identity (enablement) | Model access in the Bedrock console | A separate gate from IAM; a model must be enabled in the account and region before any policy can invoke it |
| Identity (agents/tools) | Least-privilege execution roles on agent and tool Lambdas | Each tool gets only the permissions it needs; the agent cannot inherit broader rights through the prompt |
| Identity (scale) | Organizations SCPs and permission boundaries | SCPs cap what any principal can do; permission boundaries cap what a role can grant, across many accounts |
| Network | VPC interface endpoint (PrivateLink) for Bedrock | Traffic stays on the AWS network; no internet gateway needed |
| Network | Endpoint policy on the interface endpoint | Restricts which actions and resources are reachable through that endpoint |
| Encryption | Customer-managed KMS key on custom and fine-tuned models | You own rotation and can revoke access by disabling the key |
| Encryption | KMS on knowledge base data and the vector index | Source data, embeddings, and the store are encryptable with your key |
| Encryption | KMS on invocation logs | Prompt and completion logs are encrypted at rest under your key |
| Data boundary | Bedrock does not use your prompts or completions to train base models | Your inputs and outputs are not fed back into the foundation models |
| Data boundary | Region residency | Data stays in the region you call; choose the region to meet residency rules |
| Safety | Bedrock Guardrails | Denied topics, content filters, word filters, PII detection and redaction, contextual grounding, prompt-attack filter |
| Safety | ApplyGuardrail API | Evaluate text against a guardrail independently of any model call |
| Governance | Invocation logging plus CloudTrail | CloudTrail records the management and API calls; model invocation logging captures the prompt and completion payloads |
| Governance | Audit Manager and data lineage | Continuous evidence collection; track where training and retrieval data came from |
| Provenance | Versioning of prompts, models, and guardrails | Pin published versions so what shipped is reproducible and auditable |
Decision rules
- If a policy grants
bedrock:InvokeModelon*, then tighten it to the specific model ARNs in use. - If a model returns access-denied but the IAM policy looks correct, then check model access is enabled for that account and region.
- If Bedrock traffic must not traverse the internet, then use a VPC interface endpoint with an endpoint policy.
- If you need to limit which models are reachable from a subnet, then set the restriction in the endpoint policy, not only in IAM.
- If custom or fine-tuned models hold sensitive data, then encrypt them with a customer-managed KMS key so you control revocation.
- If a knowledge base indexes confidential documents, then apply KMS to both the source data and the vector store.
- If prompt and completion content is regulated, then enable invocation logging and encrypt the logs with your key.
- If you need to block a topic or redact PII in outputs, then attach a Bedrock Guardrail and reference a published version.
- If you want to run safety checks without invoking a model, then call the ApplyGuardrail API on the text directly.
- If retrieved documents or tool responses reach the model, then treat that content as untrusted input.
- If access to a record must be enforced, then enforce it in the retrieval query and the tool, not by instructing the model in the prompt.
- If you must audit who invoked which model when, then combine CloudTrail with model invocation logging.
- If you need bias or explainability evidence for a model, then use SageMaker Clarify.
- If you must communicate a model’s intended use and limits, then publish a model card and read the relevant AWS AI Service Card.
- If you need to tell whether an image came from one of Amazon’s own generators, then check for the built-in watermark with the detection capability.
- If the image came from a third-party generator, then there is no watermark to find, and provenance has to come from a record your pipeline wrote at generation time.
- If guardrail behaviour must be reproducible across releases, then apply a published guardrail version rather than the working draft.
Traps
- A system prompt is not a security boundary. Instructions in the prompt can be overridden by injected content; enforce access in identity, retrieval, and tools.
- Model access and IAM are two separate gates. Enabling a model in the console does not grant
InvokeModel, and an IAM allow does nothing until the model is enabled. - Access control belongs in retrieval, not the prompt. Filter documents by the caller’s entitlements at query time; do not rely on telling the model to ignore what it should not see.
- Retrieved and tool-returned content is untrusted. A poisoned document can carry instructions; apply guardrails and output filtering, and never let retrieved text expand a tool’s authority.
- Guardrails apply per published version. If you point at the draft or forget to attach the guardrail on the invocation, nothing is filtered.
- Bedrock not training on your data is about the base models. It does not mean your prompts vanish; logging, retrieval stores, and any fine-tuning data still need their own controls.
- KMS on the model is not KMS on everything. Knowledge base data, the vector index, and invocation logs each need encryption configured separately.
- Contextual grounding reduces hallucination against provided sources; it is not a factuality guarantee for claims outside those sources.
- PII redaction in Guardrails covers the configured entity types. Anything you did not list can still pass through.
- Do not put secrets in prompts. They land in logs and can be echoed back; pass credentials through the execution role, not the text.
- A VPC endpoint keeps traffic private but does not scope permissions. You still need IAM and an endpoint policy to limit actions.
- Watermark detection is model-specific. It confirms provenance for the Amazon generators that embed one, not that any arbitrary image is or is not AI-generated, and a negative result on a third-party generator’s output means nothing.
Say it in one line
- Scope
bedrock:InvokeModelto specific model ARNs and use roles, never long-lived keys. - Model access enablement in the console is a distinct gate from IAM permissions.
- SCPs and permission boundaries cap what principals and roles can do and grant across an organisation.
- A VPC interface endpoint with PrivateLink keeps Bedrock traffic off the internet; the endpoint policy scopes it.
- Customer-managed KMS keys let you encrypt custom models, knowledge base data, vector indexes, and invocation logs, and revoke by disabling the key.
- Bedrock does not train its base models on your prompts or completions, and your data stays in the region you call.
- Bedrock Guardrails cover Denied topicsSubjects you describe in plain language that a Bedrock Guardrail refuses to discuss, whichever way a user phrases the request. , content and word filters, PII detection and redaction, contextual grounding, and a prompt-attack filter.
- ApplyGuardrail evaluates text against a guardrail without a model call; always reference a published version.
- Treat retrieved and tool content as untrusted, and enforce access in retrieval and tools rather than in the prompt.
- A system prompt is not a security boundary, and secrets never belong in prompts.
- CloudTrail plus model invocation logging gives you the audit trail; Audit Manager collects evidence and tracks data lineage.
- SageMaker Clarify produces bias and explainability reports; model cards and AWS AI Service Cards document intended use and limits.
- Amazon’s own image generators watermark their output and the detection capability confirms it, but Nova Canvas is legacy (end of life 30 September 2026) and the Titan Image Generator is delisted, so new work records its own provenance at generation time.
- Version prompts, models, and guardrails so what shipped is reproducible and auditable.