Support¶
Best effort support is available through GitHub Issues or by emailing aws-nitro-enclaves-vault-solution@amazon.com.
Roadmap¶
Unordered list of future improvement ideas.
- [ ] [api,enclave] Replace the existing hex-encoding encrypted data storage scheme with something else (such as Amazon Ion)
Known Issues¶
-
The VPC template has a CloudFormation parameter called
pEnableVpcEndpoints
that will provision the VPC with VPC Interface Endpoints instead of public subnets and NAT Gateways. VPC Interface Endpoints are currently not supported due to aws-nitro-enclaves-acm#130 (GitHub Issue) -
The KMS template has a CloudFormation parameter called
pPrimaryKeyArn
that will provision a replica KMS key in another region referencing the primary key. DynamoDB is also configured as a global table to support multi-region workloads. A multi-region configuration hasn't been tested, but should be supported using the chosen services. -
The CI template has a CloudFormation parameter called
pUseCodeBuildFleet
that will provision two reserved capacity AWS CodeBuild compute instances for the builds. This will dramatically speed up theBuildParent
andBuildEnclave
projects as the Docker images will now be cached between runs. CodeBuild Fleets are more expensive than on-demand CodeBuild compute, so they are not enabled by default. -
The API template has a CloudFormation parameter called
pVpcEndpointIds
that will provision a private api in Amazon API Gateway if VPC Interface Endpoints for API Gateway are provided.
Troubleshooting¶
-
Unable to delete
nitro-vault-ci-api
ornitro-vault-ci-vault
CloudFormation stacks due toRole arn:aws:iam::123456789012:role/nitro-vault-ci-rCloudFormationRole-XXXXXXXXX is invalid or cannot be assumed
This can occur if the
nitro-vault-ci
stack is deleted first that removes theCloudFormationRole
IAM role used by both of these stacks. You can create a new IAM role named the same as the missing role and temporarily grant it to theAdministratorAccess
policy to clean up the remaining stacks, then delete the role. -
API returns "Unable to decrypt values" when calling POST /v1/vaults/:vault_id/decrypt
First check the CloudWatch Logs for the Lambda function in the
/aws/lambda/nitro-vault-ci-api
Log Group to see if there are any errors coming from the Lambda function itself. The logs will say whether it received an invalid response from the vault API or not.Next, go to the EC2 console, and connect to the instance using AWS Systems Manager and use
sudo
to become root by runningsudo su -
.cat /var/log/user-data.log
- this should show a successful execution of the user data scriptps auwx | grep nginx
- should show a runningnginx
processps auwx | grep parent
- should show a runningparent
process listening on localhostjournal -xe -u nitro-vault-server -f
- should show any logs coming from the parent process.
-
Resource handler returned message: "A policy called nitro-vault-ci-boundary already exists. Duplicate names are not allowed.
Delete any existing
nitro-vault-ci-boundary
IAM policies and re-run thenitro-vault-ci
CloudFormation stack.