feat: add aiml-bedrock-security-assessment skill - #78
Open
aditya-vikram-parakala wants to merge 1 commit into
Open
feat: add aiml-bedrock-security-assessment skill#78aditya-vikram-parakala wants to merge 1 commit into
aditya-vikram-parakala wants to merge 1 commit into
Conversation
Add a read-only Amazon Bedrock security posture assessment skill that runs 33 checks (BR-01..BR-33) across guardrail coverage, KMS encryption, VPC private connectivity, agent and action-group IAM least privilege, model- invocation logging, CloudTrail, CloudWatch alarms, service-quota throttling, and Inspector Lambda scanning, producing severity-rated findings and a consolidated report. This is the Bedrock domain of a per-domain AI/ML security posture family (carved out of a broader proposal per reviewer feedback to phase by domain). It defers production-adoption readiness to bedrock-adoption-readiness, reactive access-denial diagnosis to aiml-access-diagnostics, and AgentCore observability to agentcore-observability-setup. Every check carries a Verifiability classification (Verifiable / Heuristic / Prescribe-only) so the report never marks an unread or access-denied control as Passed. BR-14 (stale access) is Prescribe-only and always N/A, since it would require iam:GenerateServiceLastAccessedDetails, a Generate* verb blocked by the DevOps Agent read-only guardrail. Register the skill in llms.txt and add a gated read-only inline policy (EnableAIMLBedrockSecurityAssessment, default true) to the CloudFormation skill policies for the Bedrock/cloudtrail/servicequotas/inspector2 reads not covered by AIDevOpsAgentAccessPolicy. sim: https://taskei.amazon.dev/tasks/V2341889467
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds the
aiml-bedrock-security-assessmentskill: a read-only Amazon Bedrock security posture assessment that runs 33 checks (BR-01..BR-33) across an account, regions, and associated accounts, and produces severity-rated findings plus a consolidated report. The DevOps Agent runs the read-only checks directly; no infrastructure is deployed.This is the Bedrock domain of a per-domain AI/ML security posture family (scoped down from a broader 174-check proposal per reviewer feedback to phase by domain and prove the determinism + eval model on one domain first). Coverage: guardrail depth (content filters, sensitive-information/PII, contextual grounding, automated reasoning, tiers), KMS encryption (custom/imported models, knowledge bases, invocation logs, batch output), VPC private connectivity, agent and action-group IAM least privilege, agent guardrail association and idle-session TTL, model-invocation logging, CloudTrail, CloudWatch alarms, service-quota throttling, and Inspector Lambda scanning.
Owns vs. defers (boundaries with existing skills)
bedrock-adoption-readiness— production-adoption readiness (ZDR/data-retention, quota/capacity headroom, observability maturity, bedrock-mantle).aiml-access-diagnostics— reactive diagnosis of a specific access denial (authorization-chain tracing).agentcore-observability-setup), Responsible AI GRC, OWASP Top 10 for LLM.Verify vs. prescribe (determinism contract)
Every check carries a Verifiability classification so the report never marks an unread control as
Passed:N/A, neverPassed.BR-14stale access) — requiresiam:GenerateServiceLastAccessedDetails, aGenerate*verb blocked by the DevOps Agent read-only guardrail; always reportedN/Awith out-of-band remediation, neverPassed/Failed.Testing
100/100, Grade A, 0 critical / 0 warning / 0 info,passed: true.0.9727,passed: true(outcome 0.971, process 1.0, style 0.971, efficiency 0.948).should_trigger:falsenegatives 6/6 (no over-trigger onto SageMaker, AgentCore, reactive access-denial, or adoption-readiness).should_trigger:trueactivation is implied by the functional pass per CONTRIBUTING; it registers via the Skill tool when the skill is installed in the evaluation environment.cfn-lintoncloudformation/devops-agent-skill-policies.yaml: 0 errors (only pre-existing warnings unrelated to this change).mkdocs build --strictwith the skill staged, on the pinnedmkdocs-material==9.6.14: EXIT 0, 0 warnings; README uses only absolute GitHub URLs so the docs deploy does not break.IAM / CloudFormation
Added a gated read-only inline policy
EnableAIMLBedrockSecurityAssessment(defaulttrue, Condition-gated, withSkillPolicySummaryupdated) tocloudformation/devops-agent-skill-policies.yaml. It grants only the reads not covered byAIDevOpsAgentAccessPolicy:bedrock:Get*/List*control-plane reads (21 actions — note thebedrock:IAM prefix applies to Agents/Knowledge Bases/Flows/Prompts;bedrock-agentis only the SDK client name),cloudtrail:Get*/ListTrails,servicequotas:GetServiceQuota/GetAWSDefaultServiceQuota,inspector2:BatchGetAccountStatus.IAM, Organizations, EC2, CloudWatch, S3, KMS, and Lambda reads ride
AIDevOpsAgentAccessPolicy. All actions are read-only.BR-14is deliberately not granted (prescribe-only).Taskei
V2341889467 — https://taskei.amazon.dev/tasks/V2341889467
Checklist
versionandauthorin metadatanamein frontmatter matches directory namedescriptionclearly states what/when to activate (1004/1024 chars)## 1.0.0, version-synced)passed(100/A) and functionalpassed(0.97)llms.txt.skilleval.yamlpresent (canonical STR-016 ignore)--strictsafe)SkillPolicySummaryupdatedmainBy submitting this pull request, I confirm that my contribution is made under the terms of the Apache License 2.0.