incompass/aws-secrets-bundle
A Symfony bundle that integrates AWS Secrets Manager, letting you load and manage secrets from AWS directly in your application configuration and environment without hardcoding sensitive values.
Architecture fit
incompass/aws-secrets-bundle (a republish of casechek/aws-secrets-bundle) is a Symfony bundle. The *Bundle suffix, the Extension/CompilerPass wiring, and the kernel-boot hook are all Symfony idioms. It cannot be Composer-installed into a Laravel app and used as delivered. That mismatch is the first decision to make, not the last.$_ENV / $_SERVER so existing env() / %env()% references resolve to managed values. Zero application config changes. That is precisely why it is attractive.vlucas/phpdotenv owns bootstrap, and config:cache freezes values at build time. A Symfony bundle does not slot into that lifecycle — you would need a Laravel service provider plus a bootstrap/app.php hook, i.e. a rewrite.Integration feasibility
secretsmanager:GetSecretValue (plus kms:Decrypt for CMK-encrypted secrets), deploy. Modest config, no app-code change.aws/aws-sdk-php, a large dependency tree for a single API call. That is a real image-size and build-time delta in containerized workloads, and it is a second SDK if the app already ships one..env fallback. Whether the bundle provides one is unverified and must be confirmed before you commit engineering time.Technical risk
$_ENV exposes values to debug toolbars, error pages, phpinfo(), and logging middleware. No evidence of redaction.Key questions
AccessDenied, does it fail closed (abort boot) or fail open (fall back to existing env)? Is that configurable — and does it log?$_ENV, or defer to it? How are multiple secrets and nested JSON keys flattened?AWSCURRENT / version stages (rotation-safe), binary secrets, and customer-managed KMS keys?.env.Stack fit
GetSecretValue once during bootstrap and merges into the env repository before config is built. That is cheaper than owning a foreign bundle and removes the SDK-provenance problem.Migration path
.env. Attach a CMK and enable rotation.GetSecretValue, kms:Decrypt on the specific key. No wildcards, no * resources..env on disk but stripped of secrets as a rollback lever for one full release cycle.Compatibility
config:cache is the decisive constraint: once config is cached, env() calls outside config files return null. Any loader must run before the cache is built and read — bootstrap path, not a service provider that executes post-cache.Sequencing
.env..env scrub, runbook written and rehearsed.Maintenance
Support
Scaling
GetSecretValue is roughly $0.05 per 10,000 calls. Boot-time-only fetching is effectively free. Per-request fetching is the trap.Failure modes
AccessDenied on boot across the fleet..env for one release cycle.Ramp-up
How can I help you explore Laravel packages today?