All pages
Powered by GitBook
1 of 20

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Technical Documentation

All Cloud Scal3 products are reviewed by AWS via their Foundation Technical Review.

FinOps Center is aligned to Customer Deployed Solution that requires that Customer Guidance is provided aligned to AWS Best Practices and are detailed in the subsection of the category.

Additionally our AWS Marketplace products are validated by the AWS Marketplace Onboarding team that both scans the AMIs that we upload and validate that our CloudFormation template adhere to their standards.

Solution Management

FinOps Center is deployed entirely within customer’s AWS account and is built 100% on native AWS services, enabling centralized operations management, governance, and observability aligned with AWS best practices. It provides customers with full ownership and control of their operational environment while supporting scalable, secure, and compliant centralized management across their AWS workloads.

Centralized Operational Control

The solution is designed to support centralized visibility and control through seamless integration with AWS native tools, allowing customers to centrally manage infrastructure, security, and operations. Key components include:

  • AWS CloudFormation: FinOps Center serverless infrastructure and application code is deployed with CloudFormation, ensuring consistency of deployments.

  • AWS Control Tower and AWS Organizations Alignment: FinOps Center integrates with the Account Management APIs that are accessed from the Delegated Admin account enabling onboarding of new AWS Account immediately vs when the account appears on the Cost and Usage Report

Centralized Monitoring and Logging

To support operational excellence and proactive issue detection, the solution integrates natively with:

  • Amazon CloudWatch (Logs, Metrics, Alarms, Dashboards): All FinOps Center operations are monitored by CloudWatch, which provides real-time performance monitoring and unified observability across application components.

  • AWS CloudTrail and AWS Config: Aligned to AWS Best Practices, all FinOps Center transactions and configuration updates are tracked with AWS CloudTrail and AWS Config.

Centralized Compliance and Governance

The solution promotes centralized compliance through:

  • AWS Config Rules and Conformance Packs: Evaluate resource configurations continuously across all regions and accounts to ensure compliance with internal policies and industry regulations.

  • IAM, SCPs, and Resource Policies: Secure access to resources is managed centrally using AWS IAM policies, permission boundaries, and Service Control Policies (SCPs) where AWS Organizations is used.

Adding to VPC

FinOps Center S3, Lambda, and DynamoDB components like any other application via VPC Endpoints.

New VPC

  • 1 VPC, e.g. 10.0.0.0/16

  • At least 2 public and 2 private subnets across 2 AZs

Internet Gateway attached
  • NAT Gateway(s) in public subnets

  • Route tables:

    • Public subnets → 0.0.0.0/0 via IGW

    • Private subnets → 0.0.0.0/0 via NAT

  • Attach FinOps Center Lambdas to the VPC

    For each Lambda that should live “inside the VPC”:

    IAM for VPC attachment

    Add the managed policy AWSLambdaVPCAccessExecutionRole to the Lambda execution role so Lambda can create Hyperplane ENIs

    Attach Data

    • S3 Gateway – for CUR 2.0, Cost Optimization Hub exports, Athena query results

    • Interface endpoints (AWS PrivateLink) for:

      • com.amazonaws.<region>.dynamodb

      • ...sts

      • ...logs (if you want private delivery to CloudWatch Logs)

      • ...secretsmanager / ...ssm / ...lambda as needed

    Attach security groups that allow inbound from sg-finopscenter-lambda (or ECS SG) on 443.

    AWS Documentation+1

    Architecture

    FinOps Center is 100% Cloud-Native leveraging a number of AWS Services. The Full Architecture runs Across Multiple AWS Account Aligned to the Multi-Acccount Strategy.

    In the Master Payer Account - FinOps Center leverages the Cost & Usage Report (CUR) for Billing information. The CUR is stored in a s3 Bucket in the Master Payer Account. Customers leverage AWS Bucket Replication (and Batch Operations) to move the CUR Objects to the S3 bucketing in the FinOps Center Installed Account.

    One of the limitations of the CUR is the delay in Accounts showing up on the file. During the Account Vending Process, this delay will add work to align AWS Accounts to Financial Budgets. To facilitate this end-to-end process, FinOps Center (in the Delegated Admin / CloudOps Account) queries the Organization/Account Management API to immediately make Accounts onboarded even prior to the Account having billing.

    Subscriptions

    All Cloud Scal3 products are sold exclusively via the AWS Marketplace.

    Any customerized offering or pricing is handled via the Standard Private Offers processes within Marketplace.

    Region Supported

    • US East (N. Virginia) (us-east-1)

    • US East (Ohio) (us-east-2)

    • US West (N. California) (us-west-1)

    US West (Oregan) (us-west-2)

    Data Storage & Security

    FinOps Center stores data in DynamoDB and aligns to general practices of using DynamoDB for Storage and Security.

    As with all data storied in DynamoDB, customers can chose to encrypt the data at rest with the default AWS Owned , AWS Managed, or Customer Managed Keys

    AWS Service Instructions

    Delegated Admin Account via Security Hub Configuration

    AWS Multi-Account Framework

    AWS Control Tower with Multi-Account Strategy

    AWS Cloud Financial Management

    AWS Service Limits

    Cognito Quotas

    DynamoDB

    Lambda

    Security, Monitoring, and Backup

    DynamoDB

    Encryption

    Monitoring

    Backup

    Lambda

    Security

    Monitoring

    VPC Endpoints

    IAM Best Practice

    Amazon Q in QuickSight Community

    Cloud Intelligence Dashboard Framework

    Monitoring

    Agent Bill Agentic CFM

    Required Tools used for Health Validation

    • AgentCore Observability (request traces, token validity, workflow action traces)

    • Amazon CloudWatch (metrics, logs, alarms on Lambda, ECS, AppSync)

    Component
    Health Source

    Recovery

    FinOps Center

    To recovery FinOps Center the application and the database need to be restored to the last know functioning state.

    If their is an issue with the application after patching the environment with a new release, return to the ami of the prior release and launch instance. The cdk bucket will load with the previous release. Return to the CloudFormation and the stack with the previous releases JSON Object.

    FinOps Center stores all of its data in DynamoDB. During the installation, the DynamoDB tables are enabled with Point-in-time Recovery. If any tables needs to be recovered, an engineer can log into the console, navigate to the DynamoDB service, and restore any table to the time of last operation.

    RTO Target

    FinOps Center RTO is plus 2 hours from your original installation time. This is based on a scenerio where your AWS Account has been compromised and you need to restore the DynamoDB tables from an S3 backup in a new CloudOps Designated Admin Account.

    RPO Target

    FinOps Center RPO is close to zero as the Cost and Usage Report will be created in the MaterPayer Accounts. Any budget mapping can be be restored from backup but it would cause any data lose.

    Deployment Best Practices

    • Complete QuickStart and Create Business Requirements Document

    • Allocated AWS Accounts to Financial Budgets prior to adding users

    • Communicate to users that they will receive emails inviting them to FinOps Center but that they should wait a day to enter the application or they may not have their experience loaded

    Data Storage & Security

    FinOps Center stores data in DynamoDB and aligns to general practices of using DynamoDB for Storage and Security.

    As with all data storied in DynamoDB, customers can chose to encrypt the data at rest with the default AWS Owned , AWS Managed, or Customer Managed Keys

    Add Users via the Admin Screen not the Cognito Interface
  • Allocation Users to their Financial Scope once the Accounts have been Allocated to their Budgets

  • Configure initial Amazon QuickSight Dashboard to all Roles

  • Upload Customer logo prior to adding users

  • Update the Cognito Email Invites Prior to sending invites

    Once the Customer Logo has been upload - create a new invalidation in CloudFront.

  • Validate that CloudFront is Configured Correctly.

  • Add Memory to Highly Used Lambda Function - UsageLambdaHandler

  • Agent Bill → AgentCore MCP Gateway connectivity

    AgentCore Observability Console Health Endpoint (/health)

    AgentCore ECS Runtime

    ECS task status + ALB target health

    FinOps Center Lambda functions

    CloudWatch Logs & Lambda Insights

    AppSync API layer

    AppSync console resolver metrics (4xx / 5xx / latency)

    DynamoDB, S3, Secrets Manager

    CloudWatch Service Metrics

    PITR

    All FinOps Center DynamoDB Tables that get deployed are configured with Point in Time Recovery.

    Agent Bill

    The data that Agent Bill accesses are FinOps Center tables that follow the same recommmednations for Recovery. Recovery of the solution is via a reinstall via CloudFormation Scripts.

    Update
    Underlying Services Security, Monitoring, and Backup

    API Key Management

    All FinOps Center APIs are managed by Cognito

    FinOps Center AppSync API Credential Management

    • Amazon Cognito Federated Identities issue short-lived AWS credentials using STS under an IAM role.

    • Amazon Cognito User Pools issue JWT tokens that are used to authenticate AppSync requests.

    • Because Cognito-issued credentials are automatically rotated and expire frequently (typically after 1 hour), long-term key rotation is not required for day-to-day operations.

    https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/EncryptionAtRest.html
    https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/monitoring.html
    https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/BackupRestore.html
    https://docs.aws.amazon.com/lambda/latest/dg/lambda-security.html
    https://docs.aws.amazon.com/lambda/latest/dg/lambda-monitoring.html
    https://docs.aws.amazon.com/whitepapers/latest/aws-privatelink/what-are-vpc-endpoints.html
    https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html

    Operational Team & Playbook

    FinOps Center has a low burden on Technical Operations Teams once the pre-requisite AWS components are configured and the Application is deployed.

    Skills of the Technical operations Team:

    • AWS Engineering with specific understanding of the S3 Bucket Replication, CloudFormation, VPC Configuration, and Web Application Management leveraging CloudFront.

    • AWS Data Engineering with understanding of DynamoDB Backups to S3

    • Account Vending Process with Tools like Control Tower

    Operational Checklist to Validate Functional Application

    1. Validate that Cost and Usage Report has replicated to the Cloud Operations Account Bucket.

    2. Compare loading of the Application Updated (Note: The application time stamp should be approximately 1 hr after the Bucket timestamp. This is due to the allowance of “eventual consistency” of bucket replication).

    The Finance and Business Teams are the primary users of FinOps Center and will need to be enabled in operations of the applications. In the Finance and Business Teams, there should be members that are comfortable in the development of QuickSight Dashboards and how to share information to the Technical Operations Team to make a Dashboard available to different Roles.

    The Finance and Business Team are the key to driving spend accountability with FinOps Center. They must daily monitor spending, card approval, and account mapping to validate that users are acting on the data.

    Encryption

    FinOps Center leverages native services encryption of data at rest and in transit.

    All FinOps Center data is stored in S3 or DynamoDB when at rest. When users are accessing the application CloudFront provides the SSL connection for the frontend application.

    1. React Frontend (S3 Hosting)

    Data at Rest:

    • S3 Server-Side Encryption (SSE):

      • SSE-S3: Encrypts objects using AES-256, managed by S3.

      • SSE-KMS: Uses AWS Key Management Service (KMS) for encryption keys, giving more control over key policies and auditability.

      • SSE-C: Customer-provided encryption keys, if you prefer to manage keys outside AWS.

    • Client-Side Encryption: Use AWS SDK for encryption before uploading objects to S3. You manage keys and encrypt data client-side.

    Data in Transit:

    • Use HTTPS (TLS 1.2 or higher) for all communications to and from S3.

    • Enforce HTTPS using S3 bucket policies or CloudFront distribution.


    2. QuickSight Dashboards

    Data at Rest:

    • QuickSight encrypts your data at rest using AWS KMS by default.

    • For additional control, configure your own KMS Customer Managed Key (CMK) for QuickSight to use.

    Data in Transit:

    • All communication between QuickSight, S3, and other AWS services is protected using TLS 1.2.

    Embedded Dashboards:

    • Use secure HTTPS connections for embedding dashboards within your React frontend.

    • FinOps Center Custom IAM policies and Row-Level Security (RLS) to ensure users only see authorized data.


    3. Lambda Functions (Business Logic)

    Data at Rest:

    • By default, AWS Lambda encrypts deployment packages and environment variables at rest using AWS-managed keys.

    • For additional control, use KMS for:

      • Encrypting environment variables (configure KMS keys in Lambda function settings).

      • Encrypting sensitive application secrets (e.g., credentials, tokens) stored in AWS Secrets Manager or SSM Parameter Store.

    Data in Transit:

    • All data passed to and from Lambda is encrypted using TLS 1.2.

    • Use HTTPS endpoints for API Gateway and other services invoked by Lambda.


    4. DynamoDB (Application Data)

    Data at Rest:

    • Default Encryption with AWS KMS: All DynamoDB tables are encrypted at rest using AES-256.

    • Use Customer Managed KMS Keys (CMK) for:

      • More control over the encryption keys.

      • Auditability and fine-grained key management.

    Data in Transit:

    • All DynamoDB connections use TLS 1.2 to secure data in transit.

    • Enforce the use of HTTPS for all interactions with DynamoDB.


    5. Cross-Service Encryption Management

    • Use AWS Key Management Service (KMS) to unify encryption management across services like S3, Lambda, DynamoDB, and QuickSight.

    • Monitor key usage with AWS CloudTrail for auditing encryption activities.


    Summary Table of Encryption Options


    Tools for Monitoring and Auditing Encryption

    • AWS CloudTrail: Track key usage, access logs, and API calls.

    • AWS CloudWatch: Monitor encryption-related metrics.

    • AWS Config: Ensure encryption configurations remain compliant with best practices.

    Agent Bill Bedrock Agent

    Agent Bill has an additional encrypted connection between the MCP Server on Lambda to the Bedrock Agent/Action Group.

    Data in Transit:

    • All data passed to and from Lambda (MCP Server) is encrypted using TLS 1.2.

    • Use HTTPS endpoints for API Gateway and other services invoked by Lambda.

    Installation Fault Conditions

    Fault Conditions during installation will be discovered during the CloudFormation Template deployment.

    If there is an issue during installation, CloudFormation will provide Root Cause Analysis.

    Common Fault Conditions

    • Wrong Path to Cost and Usage Report

    • Cost and Usage Bucket was not created in US-East-1 causing S3 Bucket Notification Error

    Wrong S3 Bucket name for installation of Front End Bucket
  • If a re-installation, prior deployed resources have not been delete fully

  • DynamoDB (Data Storage)

    AWS KMS (default or CMK)

    TLS 1.2 (HTTPS)

    Enforce HTTPS for DynamoDB connections.

    Component

    At Rest

    In Transit

    Additional Notes

    S3 (React Frontend)

    SSE-S3, SSE-KMS, SSE-C, Client-Side

    TLS 1.2 (HTTPS)

    Enforce HTTPS using policies.

    QuickSight

    AWS KMS (default or CMK)

    TLS 1.2

    Use IAM and Row-Level Security (RLS).

    Lambda (Business Logic)

    AWS KMS for environment variables

    TLS 1.2

    Use KMS for Secrets Manager or SSM data.

    Auditing

    FinOps Center

    FinOps Center provides auditability across all solution using AWS-native logging, monitoring, and compliance tools. Activity logs are collected across the entire stack—including authentication, business logic, orchestration, data access, and storage—to support customer audit and compliance requirements.

    AWS Service Logging

    • Amazon Cognito Authentication and authorization events—such as user sign-ins, token refreshes, and federated identity access—are logged through AWS CloudTrail, enabling traceability of identity events and user sessions.

    • AWS Lambda All Lambda function invocations, including business logic execution and data processing, are logged to Amazon CloudWatch Logs. Function invocation metadata, API calls made by functions, and errors are also captured in CloudTrail.

    • AWS Step Functions Workflow execution history, state transitions, and error handling logic are logged via CloudWatch Logs, while CloudTrail captures orchestration activity and API interactions initiated by workflows.

    • Amazon S3 (for web hosting) Static web content access and object-level interactions are logged via S3 Server Access Logs or CloudTrail Data Events, providing visibility into frontend usage patterns.

    • AWS AppSync GraphQL queries, mutations, and subscriptions are recorded by CloudTrail, allowing full traceability of frontend-to-backend data access. Resolver execution logs can also be sent to CloudWatch Logs for detailed debugging and auditing.

    • Amazon EventBridge Events published to or routed through EventBridge are tracked in CloudTrail, providing insight into event-based workflows, system integration points, and automation triggers.

    • Amazon DynamoDB All reads, writes, updates, and deletes on DynamoDB tables used for application data are auditable through CloudTrail Data Events (if enabled). This captures the full lifecycle of data access patterns. Additionally:

      • DynamoDB Streams can be used to monitor real-time changes to data for audit trails or downstream processing.

    Centralized Logging and Audit Readiness

    To support customer audit and compliance needs, the solution integrates the following centralized logging tools:

    • AWS CloudTrail: Captures all control-plane and (where enabled) data-plane API calls across services. Trails can be configured for multi-account logging with delivery to Amazon S3, encrypted using AWS KMS, and analyzed via Athena, OpenSearch, or third-party SIEM tools.

    • Amazon CloudWatch Logs and Metrics: Provide real-time operational visibility into application performance, execution paths, and anomalies.

    Time Definition

    Within FinOps Center, we currently support Annual Budgets that are aligned to Calendar years.

    Another key Time definition is Period. A Period represents the Work Week for Billing and is defined as below:

    For Spend Cards, the First Period of each month is from the 1st day till Saturday 11:59. The Last Period of each month is Sunday 00:01 till the last day of the month.

    Spend Cards run every Monday for the previous Period. The final Cards run when FinOps Center recieves a CUR with the AWS Invoices that signifies the Spending is final.

    Within FinOps Center, the AWS spend as of - is approximately 1 hour after the Cost and Usage report has created a new file. As FinOps Center leverages S3 Bucket Replication it can take time for all of the Cost and Usage data to Replicate so we wait to start the spending onboarding.

    Trouble Shooting

    FinOps Center

    FinOps Center is a web application that may experience typical issues from users around login issues or page loading (especially updates). Additionally, during the initial 24hrs of installing FinOps Center the application may be awaiting data population from the Cost & Usage Report (CUR).

    If users are having issues with their initial logging into FinOps Center it could be an issue with the Cognito temporary password. It is common that the remedy is to delete the users from the Cognito User Pool and Re-Create them in the FinOps Center Configuration.

    During initial configuration of the application the AWS CUR Data is not loading you may need to wait until the next cycle to run. Have a member of your technical team navigate to the S3 bucket in the FinOps Center installed account and view when the last CUR was created keeping in mind that the CUR creation time is UCT. If a CUR cycle has run after the time of the upload of the Chart/Budget File, contact support.

    Agent Bill Amazon Q in QuickSight

    If users are having issues accessing the Amazon Q in QuickSight Topics, validate that the following are configured apppriately:

    • The FinOps Center application URL has been added to the QuickSight Admin

    • Validate in the Topic ID has been added to the Configuration Page

    • Validate that the Topics have been added to the Role from the QuickSight Console

    • if you can't see the Topics, validate that your Author Pro has the Topics Role

    Agent Bill Agentic CFM

    Issue
    Cause
    Prescriptive Fix / Test

    Cost Optimization Hub Data

    If Cost Optimization Hub Data is not loading in the Cost Optiizatoin Raw Table,, navigate to the Lambda service in the Console (CostOptimizationLambda881C3E41) and run Test to trigger the Lambda.

    Agentcore ECS tasks stuck in provisioning

    VPC endpoint missing or SG restricts outbound

    Validate required Interface Endpoints (S3, DynamoDB, STS, Secrets Manager, AppSync, Bedrock) exist and SG outbound is not 0.0.0.0/0 denied

    Client application cannot reach AgentCore MCP endpoint

    Wrong ALB DNS used or not using HTTPS 443

    Validate the endpoint using curl -v https://<agentcore-alb-dns>/health — must return 200

    AgentCore cannot invoke FinOps Center API

    IAM trust misalignment between delegated admin and linked accounts

    Validate delegated admin role trust using STS AssumeRole test from AgentCore ECS task execution role

    AppSync returns unauthorized

    missing JWT validator / wrong signature key

    Validate JWT issuer matches AgentCore Identity config. re-rotate token + test via AppSync Console with same token

    Lambda invoked but no FinOps process executes

    missing FinOps Center permission boundary or missing PK Tenant prefix

    Validate Dynamo Partition Key prefix matches defined TenantID for that deployment

    FinOps Center Resources and Roles

    Logical

    Services

    accountbudgetlambdarole77006F98

    AWS::IAM::Role

    accountbudgetlambdaroleDefaultPolicy4FB21BEA

    AWS::IAM::Policy

    AccountBudgetTable0C66D07B

    AWS::DynamoDB::Table

    AccountMapping4D0F5AFB

    AWS::DynamoDB::Table

    During the installation of FinOps Center, the following roles are created in customers accounts:

    Lambda access to write data dynamodb table (InvoiceTable)

    quicksightaccessrole80E5A653

    Lambda to get quicksight dashboard url programatically

    FinOpsCenterFinopsInaBoxBudgetAllocationApilambdaDatasourceServiceRoleE3C454C3

    Appsync to invoke lambda function named BudgetAllocationLambda

    FinOpsCenterFinopsInaBoxBudgetAllocationApibudgetApprovalLambdaDatasourceServiceRole59BD64A6

    Appsync to invoke lambda function named BudgetApprovalLambda

    FinOpsCenterFinopsInaBoxBudgetAllocationApiquickSightLambdaDatasourceServiceRoleDC35C747

    Appsync to invoke lambda function named QuicksightLambda

    FinOpsCenterFinopsInaBoxBudgetAllocationApischedulerLambdaDatasourceServiceRole5D04EA71

    Appsync to invoke lambda function named SchedulerLambda

    FinOpsCenterFinopsInaBoxBudgetAllocationApiinvoiceLambdaDatasourceServiceRoleD85B21E4

    appsync to invoke lambda function named InvoiceLambda

    FinOpsCenterFinopsInaBoxBudgetAllocationApiauthenticationLambdaDatasourceServiceRole0DAF3D85

    appsync to invoke lambda function named AuthenticationLambda

    accountbudgetlambdarole77006F98

    lambda access to write data dynamodb table (SorElementToKeyMapper, BudgetsFromSOR)

    FinOpsCenterFinopsInaBoxSchedulerLambdaHandlerServiceRole1D4A6F1E

    lambda access to write data dynamodb table (Scheduler)

    FinOpsCenterFinopsInaBoxAuthenticationLambdaHandlerServiceRole3583A726

    lambda access to Cognito

    CustomCDKBucketDeployment8693BB64968944B69AAFB0CC9EB8756CServiceRole89A01265

    Lambda access to S3

    athenaexecutionroleDefaultPolicy7907B333

    Athena access for CUR Data Import

    S3NotificationResourceCustomResourcePolicy0EC084AF

    Bucket to trigger lambda on new items upload

    executionroleDefaultPolicy497F11A3

    BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleDefaultPolicy2CF63D36

    Bucket to trigger lambda on new items upload

    budgetApprovalLambdaHandlerServiceRoleDefaultPolicyDE143198

    budgetTriggerLambdaHandlerServiceRoleDefaultPolicyDD9AEFCA

    Bucket to trigger lambda on new items upload

    BudgetApprovalStateMachineRoleDefaultPolicyF89BE0F0,

    Step Function Execution

    invoiceLambdaHandlerServiceRoleDefaultPolicy20D94148

    Bucket to trigger lambda on new items upload

    quicksightaccessroleDefaultPolicy15628D24

    Access to QuickSight Assets

    FinOpsCenterFinopsInaBoxBudgetAllocationApilambdaDatasourceServiceRoleDefaultPolicyECB450A3

    Access to DynamoDB for Step Function

    FinOpsCenterFinopsInaBoxBudgetAllocationApibudgetApprovalLambdaDatasourceServiceRoleDefaultPolicyBCD48E00

    Step Function Execution

    FinOpsCenterFinopsInaBoxBudgetAllocationApiquickSightLambdaDatasourceServiceRoleDefaultPolicyE116784C

    Access to QuickSight Assets for Row Level Security

    FinOpsCenterFinopsInaBoxBudgetAllocationApiquickSightLambdaDatasourceServiceRoleDefaultPolicyE116784C

    Access to QuickSight Assets for Row Level Security

    FinOpsCenterFinopsInaBoxBudgetAllocationApiquickSightLambdaDatasourceServiceRoleDefaultPolicyE116784C

    Access to QuickSight Assets for Row Level Security

    FinOpsCenterFinopsInaBoxBudgetAllocationApischedulerLambdaDatasourceServiceRoleDefaultPolicyC73BC128

    Access to DynamoDB for Step Function

    FinOpsCenterFinopsInaBoxBudgetAllocationApiinvoiceLambdaDatasourceServiceRoleDefaultPolicyF3F771EC

    Access to DynamoDB for Step Function

    FinOpsCenterFinopsInaBoxBudgetAllocationApiauthenticationLambdaDatasourceServiceRoleDefaultPolicyEDD13462

    Access to Cognito for Authenticationo

    accountbudgetlambdaroleDefaultPolicy4FB21BEA

    Step Function Execution

    FinOpsCenterFinopsInaBoxSchedulerLambdaHandlerServiceRoleDefaultPolicy0A59ABD5

    Step Function Execution

    FinOpsCenterFinopsInaBoxAuthenticationLambdaHandlerServiceRoleDefaultPolicy28CCCF9A

    Access to Cognito for Authentication

    CustomCDKBucketDeployment8693BB64968944B69AAFB0CC9EB8756CServiceRoleDefaultPolicy88902FDF

    Execution to Create S3 bucket for FinOps Center Deployment

    QSManagedPolicyBC3B1016

    AccountToElement1Mapping752D6570

    AWS::DynamoDB::Table

    AccountMapping4D0F5AFB

    AWS::DynamoDB::Table

    AccountToElement1Mapping752D6570

    AWS::DynamoDB::Table

    AccountToElement2MappingC5E21C49

    AWS::DynamoDB::Table

    AccountToElement3MappingA58D0E58

    AWS::DynamoDB::Table

    AccountToElement4Mapping7A6110D3

    AWS::DynamoDB::Table

    Admins

    AWS::Cognito::UserPoolGroup

    adminUser

    AWS::Cognito::UserPoolUser

    ApprovedBudgetsTableA2AC60E6

    AWS::DynamoDB::Table

    athenaexecutionrole33E3CAB2

    AWS::IAM::Role

    athenaexecutionroleDefaultPolicy7907B333

    AWS::IAM::Policy

    AthenaPolicyCADD8C34

    AWS::IAM::ManagedPolicy

    athenatemp87F857C8

    AWS::S3::Bucket

    AWS679f53fac002430cb0da5b7982bd22872D164C4C

    AWS::Lambda::Function

    AWS679f53fac002430cb0da5b7982bd2287ServiceRoleC1EA0FF2

    AWS::IAM::Role

    BucketNotificationsHandler050a0587b7544547bf325f094a3db8347ECC3691

    AWS::Lambda::Function

    BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleB6FB88EC

    AWS::IAM::Role

    BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleDefaultPolicy2CF63D36

    AWS::IAM::Policy

    budgetApprovalLambdaHandlerD5A8C414

    AWS::Lambda::Function

    budgetApprovalLambdaHandlerServiceRole57D52BE3

    AWS::IAM::Role

    budgetApprovalLambdaHandlerServiceRoleDefaultPolicyDE143198

    AWS::IAM::Policy

    BudgetApprovalStateMachine749086CB

    AWS::StepFunctions::StateMachine

    BudgetApprovalStateMachineRole7D20BD03

    AWS::IAM::Role

    BudgetApprovalStateMachineRoleDefaultPolicyF89BE0F0

    AWS::IAM::Policy

    BudgetApprovalWorkflow471D8ADC

    AWS::DynamoDB::Table

    BudgetsFromSOR1281753B

    AWS::DynamoDB::Table

    budgetTriggerLambdaHandler47313A97

    AWS::Lambda::Function

    budgetTriggerLambdaHandlerServiceRoleB543531A

    AWS::IAM::Role

    budgetTriggerLambdaHandlerServiceRoleDefaultPolicyDD9AEFCA

    AWS::IAM::Policy

    BUManagers

    AWS::Cognito::UserPoolGroup

    CDKMetadata

    AWS::CDK::Metadata

    curExtractorLambdaHandler527EA93F

    AWS::Lambda::Function

    curExtractorLambdaHandlerAllowS3InvocationDD55202D

    AWS::Lambda::Permission

    CustomCDKBucketDeployment8693BB64968944B69AAFB0CC9EB8756C81C01536

    AWS::Lambda::Function

    CustomCDKBucketDeployment8693BB64968944B69AAFB0CC9EB8756CServiceRole89A01265

    AWS::IAM::Role

    CustomCDKBucketDeployment8693BB64968944B69AAFB0CC9EB8756CServiceRoleDefaultPolicy88902FDF

    AWS::IAM::Policy

    DepartmentManagers

    AWS::Cognito::UserPoolGroup

    Element1Mapping4380F9B0

    AWS::DynamoDB::Table

    Element2MappingE36F9FE4

    AWS::DynamoDB::Table

    Element3Mapping4C6A994A

    AWS::DynamoDB::Table

    Element4Mapping2FFF5F38

    AWS::DynamoDB::Table

    executionroleD9A39BE6

    AWS::IAM::Role

    executionroleDefaultPolicy497F11A3

    AWS::IAM::Policy

    FinancialAdmins

    AWS::Cognito::UserPoolGroup

    FinOpsCenterAccountBudgetLambdaHandler8229024E

    AWS::Lambda::Function

    FinOpsCenterAuthenticationLambdaHandler7B901A70

    AWS::Lambda::Function

    FinOpsCenterAuthenticationLambdaHandlerServiceRoleDefaultPolicy9C018194

    AWS::IAM::Policy

    FinOpsCenterAuthenticationLambdaHandlerServiceRoleF2924748

    AWS::IAM::Role

    FinOpsCenterBudgetAllocationApi830C7F83

    AWS::AppSync::GraphQLApi

    FinOpsCenterBudgetAllocationApiauthenticationLambdaDatasource22C76159

    AWS::AppSync::DataSource

    FinOpsCenterBudgetAllocationApiauthenticationLambdaDatasourceServiceRole8F2BC046

    AWS::IAM::Role

    FinOpsCenterBudgetAllocationApiauthenticationLambdaDatasourceServiceRoleDefaultPolicyABAF4045

    AWS::IAM::Policy

    FinOpsCenterBudgetAllocationApibudgetApprovalLambdaDatasourceA40E713B

    AWS::AppSync::DataSource

    FinOpsCenterBudgetAllocationApibudgetApprovalLambdaDatasourceServiceRole5098C713

    AWS::IAM::Role

    FinOpsCenterBudgetAllocationApibudgetApprovalLambdaDatasourceServiceRoleDefaultPolicy9EC99F1C

    AWS::IAM::Policy

    FinOpsCenterBudgetAllocationApicanCloseMonthResolver2E01B50A

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApichangePasswordResolver3C958E69

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApicompletePasswordChallengeResolver30910FB5

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApiconfirmPasswordResolverFDF56F2F

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApicreateAccountMappingResolver7B079C58

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApicreateAllocationResolver225FB95A

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApicreateBudgetResolver64D61C0E

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApicreateInvoiceResolver43BD5274

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApicreateOrUpdateDashboardResolverA81AB980

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApicreateOrUpdateSpaceDetailsResolver537D1657

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApicreateOrUpdateUserToBudgetAccessResolverE080EDB5

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApicreateUserMappingResolver7D63193A

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApicreateUserResolverA1E605E3

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApidefaultApiKey300A2538

    AWS::AppSync::ApiKey

    FinOpsCenterBudgetAllocationApideleteAllocationResolver4650763F

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApiforgotPasswordResolver42502E8F

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApigetAllBudgetsNewResolverC85C0932

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApigetAllBudgetsResolverB935009A

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApigetDashboardListResolver72B95653

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApigetInvoicesResolverC4F37F86

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApigetLastRunCurResolver24E9B10E

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApigetPeriodCardsForUserResolver2086F8FC

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApigetQuickSightDashboardUrlResolverE9D8DE12

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApigetSorListByYearResolverCD447711

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApigetSorMappingResolverDD843F7B

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApigetTimeCardsForUserResolver4FC1F4CD

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApigetUnallocatedAccountsResolver3432E36F

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApigetUsageActualsForUserResolverDBEAA204

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApigetUsageDetailsForUserNewResolver746CB582

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApigetUsageDetailsForUserResolver6EF10137

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApigetUsageStatsResolverAED9AFEA

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApigetUserMappingToBudgetsAndAccountsResolverAA475845

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApiinvoiceLambdaDatasource999FAA93

    AWS::AppSync::DataSource

    FinOpsCenterBudgetAllocationApiinvoiceLambdaDatasourceServiceRole833AADEB

    AWS::IAM::Role

    FinOpsCenterBudgetAllocationApiinvoiceLambdaDatasourceServiceRoleDefaultPolicyAD0CDF57

    AWS::IAM::Policy

    FinOpsCenterBudgetAllocationApilambdaDatasourceAB665C33

    AWS::AppSync::DataSource

    FinOpsCenterBudgetAllocationApilambdaDatasourceServiceRole7144E454

    AWS::IAM::Role

    FinOpsCenterBudgetAllocationApilambdaDatasourceServiceRoleDefaultPolicy440E4797

    AWS::IAM::Policy

    FinOpsCenterBudgetAllocationApilistAccountMappingResolver34043668

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApilistAccountsResolver56E8C48D

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApilistAllocationsResolver6165ADBD

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApilistGroupsResolverDCFF3E28

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApilistSpacesResolver60ED72B7

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApilistUserBudgetAllocationsResolver78C6B1CF

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApilistUserMappingResolverC3FFF016

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApilistUsersResolver8B930FB7

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApiloginUserResolver48621D0D

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApimonthCloseResolver17AA178F

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApiquickSightLambdaDatasource42753279

    AWS::AppSync::DataSource

    FinOpsCenterBudgetAllocationApiquickSightLambdaDatasourceServiceRole9A3B29C1

    AWS::IAM::Role

    FinOpsCenterBudgetAllocationApiquickSightLambdaDatasourceServiceRoleDefaultPolicy21D8C2A6

    AWS::IAM::Policy

    FinOpsCenterBudgetAllocationApireviewBudgetResolverB4A7AD9A

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApischedulerLambdaDatasourceDF97F9B9

    AWS::AppSync::DataSource

    FinOpsCenterBudgetAllocationApischedulerLambdaDatasourceServiceRole0E24BE0C

    AWS::IAM::Role

    FinOpsCenterBudgetAllocationApischedulerLambdaDatasourceServiceRoleDefaultPolicy8D806BF5

    AWS::IAM::Policy

    FinOpsCenterBudgetAllocationApiSchema6D45E612

    AWS::AppSync::GraphQLSchema

    FinOpsCenterBudgetAllocationApisorMappingResolver822F3A5B

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApiupdateAccountsWithOrganizationsInfoResolver91CC1D41

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApiupdateAllocationResolver8A725FFD

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApiupdateBudgetResolver2EDA782E

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApiupdateTimeCardStatusResolver66B4C127

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApiupdateUserRoleResolverBE9C313C

    AWS::AppSync::Resolver

    FinOpsCenterBudgetAllocationApiuploadSORResolver08F81E2F

    AWS::AppSync::Resolver

    FinOpsCenterQuickSightLambdaHandler796799F3

    AWS::Lambda::Function

    FinOpsCenterSchedulerLambdaHandler044C0558

    AWS::Lambda::Function

    FinOpsCenterSchedulerLambdaHandlerServiceRole44BD75A8

    AWS::IAM::Role

    FinOpsCenterSchedulerLambdaHandlerServiceRoleDefaultPolicyA6553EC0

    AWS::IAM::Policy

    FinOpsCenterScheduleRuleAllowEventRuleFinOpsCenterStackFinOpsCenterSchedulerLambdaHandler680625AE3E90D379

    AWS::Lambda::Permission

    FinOpsCenterScheduleRuleEDEF0E06

    AWS::Events::Rule

    FinOpsCenterSharedFunctionsLayer84909F55

    AWS::Lambda::LayerVersion

    GluePolicyCA7268D5

    AWS::IAM::ManagedPolicy

    invoiceLambdaHandler083AEC55

    AWS::Lambda::Function

    invoiceLambdaHandlerServiceRoleAD7C6EE6

    AWS::IAM::Role

    invoiceLambdaHandlerServiceRoleDefaultPolicy20D94148

    AWS::IAM::Policy

    InvoiceTableD753B0E0

    AWS::DynamoDB::Table

    LastUpdatedTableD54B2C25

    AWS::DynamoDB::Table

    PortfolioManagers

    AWS::Cognito::UserPoolGroup

    ProductManagers

    AWS::Cognito::UserPoolGroup

    QSManagedPolicyBC3B1016

    AWS::IAM::ManagedPolicy

    quicksightaccessrole80E5A653

    AWS::IAM::Role

    quicksightaccessroleDefaultPolicy15628D24

    AWS::IAM::Policy

    QuicksightTable0E76B5B0

    AWS::DynamoDB::Table

    S3NotificationResourceCustomResourcePolicy0EC084AF

    AWS::IAM::Policy

    S3NotificationResourceF98D77E7

    Custom::AWS

    S3Policy8FACFAB8

    AWS::IAM::ManagedPolicy

    SorElementToKeyMapper64C55F7A

    AWS::DynamoDB::Table

    SORExtractorLambda56652A5B

    AWS::Lambda::Function

    sorfiles6743E409

    AWS::S3::Bucket

    sorfilesAllowBucketNotificationsToFinOpsCenterStackSORExtractorLambdaA4B317F72869BA7F

    AWS::Lambda::Permission

    sorfilesNotifications4210B679

    Custom::S3BucketNotifications

    SpacesTable8A997355

    AWS::DynamoDB::Table

    staticContentDeploymentAwsCliLayer18F25694

    AWS::Lambda::LayerVersion

    staticContentDeploymentCustomResourceC4584F3F

    Custom::CDKBucketDeployment

    TimeCardsTable0247B46C

    AWS::DynamoDB::Table

    UsageAccountsTable883695CF

    AWS::DynamoDB::Table

    UsageAccountToServiceDailyTable3EF26074

    AWS::DynamoDB::Table

    UsageAccountToServiceTableD3843CFA

    AWS::DynamoDB::Table

    UsageDailyTable837F89FC

    AWS::DynamoDB::Table

    UsageMasterAccountsTableD91A7B5C

    AWS::DynamoDB::Table

    UsageTable28300137

    AWS::DynamoDB::Table

    UserBudgetAccessTable665F2C92

    AWS::DynamoDB::Table

    UserMappingABB16FE5

    AWS::DynamoDB::Table

    UserPool6BA7E5F2

    AWS::Cognito::UserPool

    UserPoolFinOpsCenterPoolweb6108E3D9

    AWS::Cognito::UserPoolClient

    Resource/Role

    Purpose

    athenaexecutionrole33E3CAB2

    Lambda Execute Role for Athena queries

    AWS679f53fac002430cb0da5b7982bd2287ServiceRoleC1EA0FF2, executionroleD9A39BE6

    Lambda to Read files from s3 bucket

    BucketNotificationsHandler050a0587b7544547bf325f094a3db834RoleB6FB88EC

    S3Bucket trigger for lambda on new file upload

    budgetApprovalLambdaHandlerServiceRole57D52BE3

    Lambda to write data to DynamoDB tables (BudgetApprovalWorkflow, ApprovedBudgetsTable)

    budgetTriggerLambdaHandlerServiceRoleB543531A

    Lambda to Write data to dynamodb table (BudgetApprovalWorkflow, ApprovedBudgetsTable)

    BudgetApprovalStateMachineRole7D20BD03,

    Lambda access to trigger step function

    invoiceLambdaHandlerServiceRoleAD7C6EE6

    Integrating Security Hub CSPM with AWS Organizations - AWS Security HubAWS Security Hub
    Cloud Cost Management - AWS Cloud Financial Management - AWSAmazon Web Services, Inc.
    Workshop Studiocatalog.workshops.aws
    Amazon Quick Suite CommunityAmazon Quick Suite Community
    AWS Marketplace: Cloud Scal3 Inc.aws.amazon.com
    Logo
    Logo
    AWS multi-account strategy for your AWS Control Tower landing zone - AWS Control TowerAWS Control Tower
    Quotas in Amazon Cognito - Amazon CognitoAmazon Cognito
    Quotas in Amazon DynamoDB - Amazon DynamoDBAmazon DynamoDB
    Logo
    Logo
    Lambda quotas - AWS LambdaAWS Lambda
    Organizing Your AWS Environment Using Multiple Accounts - Organizing Your AWS Environment Using Multiple AccountsOrganizing Your AWS Environment Using Multiple Accounts
    Logo
    Logo
    Logo
    Logo
    Logo
    Logo