{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "STSGetCallerIdentity",
      "Effect": "Allow",
      "Action": "sts:GetCallerIdentity",
      "Resource": "*"
    },
    {
      "Sid": "IAMManageStackRoles",
      "Effect": "Allow",
      "Action": [
        "iam:CreateRole",
        "iam:GetRole",
        "iam:UpdateAssumeRolePolicy",
        "iam:PutRolePolicy",
        "iam:GetRolePolicy",
        "iam:TagRole",
        "iam:UntagRole",
        "iam:DeleteRole",
        "iam:DeleteRolePolicy",
        "iam:ListAttachedRolePolicies",
        "iam:ListRolePolicies",
        "iam:ListInstanceProfilesForRole"
      ],
      "Resource": [
        "arn:aws:iam::ACCOUNT_ID:role/assetsonar-cloud-inventory-live-tracking-role",
        "arn:aws:iam::ACCOUNT_ID:role/assetsonar-cloud-inventory-live-state-put-events",
        "arn:aws:iam::ACCOUNT_ID:role/assetsonar-cloud-inventory-live-tracking-scheduler"
      ]
    },
    {
      "Sid": "IAMPassRoleToLambda",
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::ACCOUNT_ID:role/assetsonar-cloud-inventory-live-tracking-role",
      "Condition": {
        "StringEquals": {
          "iam:PassedToService": "lambda.amazonaws.com"
        }
      }
    },
    {
      "Sid": "IAMPassRoleToEventBridge",
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::ACCOUNT_ID:role/assetsonar-cloud-inventory-live-state-put-events",
      "Condition": {
        "StringEquals": {
          "iam:PassedToService": "events.amazonaws.com"
        }
      }
    },
    {
      "Sid": "IAMPassRoleToScheduler",
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::ACCOUNT_ID:role/assetsonar-cloud-inventory-live-tracking-scheduler",
      "Condition": {
        "StringEquals": {
          "iam:PassedToService": "scheduler.amazonaws.com"
        }
      }
    },
    {
      "Sid": "LambdaManageDrainFunction",
      "Effect": "Allow",
      "Action": [
        "lambda:CreateFunction",
        "lambda:GetFunction",
        "lambda:ListVersionsByFunction",
        "lambda:GetFunctionCodeSigningConfig",
        "lambda:UpdateFunctionCode",
        "lambda:UpdateFunctionConfiguration",
        "lambda:AddPermission",
        "lambda:RemovePermission",
        "lambda:GetPolicy",
        "lambda:PutFunctionConcurrency",
        "lambda:GetFunctionConcurrency",
        "lambda:DeleteFunctionConcurrency",
        "lambda:DeleteFunction",
        "lambda:UntagResource"
      ],
      "Resource": [
        "arn:aws:lambda:REGION:ACCOUNT_ID:function:assetsonar-cloud-inventory-live-tracking",
        "arn:aws:lambda:REGION:ACCOUNT_ID:function:assetsonar-cloud-inventory-live-tracking:*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:RequestedRegion": "REGION"
        }
      }
    },
    {
      "Sid": "LogsCreateGroupAndRetention",
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:PutRetentionPolicy",
        "logs:ListTagsForResource",
        "logs:DeleteLogGroup",
        "logs:UntagResource"
      ],
      "Resource": [
        "arn:aws:logs:REGION:ACCOUNT_ID:log-group:/aws/lambda/assetsonar-cloud-inventory-live-tracking",
        "arn:aws:logs:REGION:ACCOUNT_ID:log-group:/aws/lambda/assetsonar-cloud-inventory-live-tracking:*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:RequestedRegion": "REGION"
        }
      }
    },
    {
      "Sid": "LogsDescribeGroups",
      "Effect": "Allow",
      "Action": "logs:DescribeLogGroups",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:RequestedRegion": "REGION"
        }
      }
    },
    {
      "Sid": "SQSManageDrainQueue",
      "Effect": "Allow",
      "Action": [
        "sqs:CreateQueue",
        "sqs:GetQueueUrl",
        "sqs:GetQueueAttributes",
        "sqs:SetQueueAttributes",
        "sqs:TagQueue",
        "sqs:UntagQueue",
        "sqs:ListQueueTags",
        "sqs:DeleteQueue"
      ],
      "Resource": "arn:aws:sqs:REGION:ACCOUNT_ID:assetsonar-cloud-inventory-live-state",
      "Condition": {
        "StringEquals": {
          "aws:RequestedRegion": "REGION"
        }
      }
    },
    {
      "Sid": "EventBridgeManageCustomBus",
      "Effect": "Allow",
      "Action": [
        "events:CreateEventBus",
        "events:DescribeEventBus",
        "events:PutPermission",
        "events:RemovePermission",
        "events:DeleteEventBus",
        "events:TagResource",
        "events:UntagResource",
        "events:ListTagsForResource"
      ],
      "Resource": "arn:aws:events:REGION:ACCOUNT_ID:event-bus/assetsonar-cloud-inventory-live-state",
      "Condition": {
        "StringEquals": {
          "aws:RequestedRegion": "REGION"
        }
      }
    },
    {
      "Sid": "EventBridgeManageRulesAndTargets",
      "Effect": "Allow",
      "Action": [
        "events:PutRule",
        "events:DescribeRule",
        "events:PutTargets",
        "events:ListTargetsByRule",
        "events:RemoveTargets",
        "events:DeleteRule",
        "events:TagResource",
        "events:UntagResource",
        "events:ListTagsForResource"
      ],
      "Resource": [
        "arn:aws:events:REGION:ACCOUNT_ID:rule/assetsonar-cloud-inventory-live-state/assetsonar-cloud-inventory-live-state-to-sqs",
        "arn:aws:events:REGION:ACCOUNT_ID:rule/assetsonar-lt-ec2_instance_state_change",
        "arn:aws:events:REGION:ACCOUNT_ID:rule/assetsonar-lt-ebs_volume_notification",
        "arn:aws:events:REGION:ACCOUNT_ID:rule/assetsonar-lt-rds_db_instance_event",
        "arn:aws:events:REGION:ACCOUNT_ID:rule/assetsonar-lt-rds_db_cluster_event"
      ],
      "Condition": {
        "StringEquals": {
          "aws:RequestedRegion": "REGION"
        }
      }
    },
    {
      "Sid": "SchedulerManageDrainSchedule",
      "Effect": "Allow",
      "Action": [
        "scheduler:CreateSchedule",
        "scheduler:GetSchedule",
        "scheduler:UpdateSchedule",
        "scheduler:DeleteSchedule",
        "scheduler:UntagResource"
      ],
      "Resource": "arn:aws:scheduler:REGION:ACCOUNT_ID:schedule/default/assetsonar-cloud-inventory-live-tracking-drain",
      "Condition": {
        "StringEquals": {
          "aws:RequestedRegion": "REGION"
        }
      }
    }
  ]
}
