LogoLogo
HomePricingSelf-hosted docsAPI docsLogin
  • Home
  • Login to hava
  • Developer
  • Getting Started
    • Quickstart
      • Create New Account
      • Import Demo Data
      • Creating Environments
      • Exporting Diagrams
  • AWS Marketplace
  • Using Hava
    • Providers & Sources
    • Environments
      • Creating Environments
      • Filtering Environments
  • Importing Data
    • Demo Data
    • AWS
      • Getting Started with AWS
        • Cross Account Role
        • Read Only IAM User
        • Minimum Access IAM User
      • AWS Supported Resources
      • AWS Views
        • Infrastructure
        • Security
        • Container - ECS
        • List
    • Azure
      • Getting Started with Azure
        • Powershell
        • Azure Portal
      • Azure Supported Resources
      • Azure Views
        • Infrastructure
        • Azure Security View
        • List
    • Google Cloud
      • Getting Started with GCP
        • Service Account
        • Import Multiple Projects
        • Enabling APIs
      • GCP Supported Resources
      • GCP Views
        • Infrastructure
        • List
    • Kubernetes
      • Getting Started with Kubernetes
        • Read Only Kubeconfig
        • Automatic Import of Managed Kubernetes
          • AWS EKS Cluster Configuration
        • Converting certificate files to certificate data fields
      • Kubernetes Supported Resources
      • Kubernetes Views
        • Container
        • List
    • Import Errors
  • Discover
    • Importing
    • Searching
      • Search Overview
      • Search Syntax
        • VPC Search
        • Wildcard Search
        • Tag Search
        • Deep Search
      • Search Examples
        • Discover Resources From Regions
        • Create a multiple VPC diagram
        • Defining Custom Environments
    • Versioning
      • Tracking Changes in Cloud Architecture
    • Manual Sync
  • Diagram
    • Listing Environments
      • Filtering Environments
      • Favouriting Environments
    • Viewing Environments
      • Diagram Controls
      • Diagram Layout
      • Switch Between Views
      • Diagram Canvas Resource Filters
    • Draw Custom Connections
  • Diagnose
    • Architectural Monitoring Alerts
    • Attributes
    • Cost Estimation
    • Diff View - Comparing Diagrams
    • Infrastructure
      • View Route Tables
      • View ACLs
      • View Security Groups
    • Reports
      • AWS Compliance Reports
  • Document
    • Environment Notes
    • Embed
    • Exporting Diagrams
    • Edit
      • Draw.io
  • Collaboration
    • Teams
    • Inviting Users
    • Disabling users
    • SSO/SAML
      • Overview
      • Azure AD - SAML Setup
      • Azure AD - OIDC Setup
      • Okta - SAML Setup
      • Okta - OIDC Setup
      • Trouble Shooting SSO
    • Project folders
  • Integrations
    • AWS Control Tower
    • CLI
    • Confluence Cloud
    • GitHub
    • Terraform
  • API
    • API Docs
  • Account & Billing
    • Types Of Hava Accounts
    • Change Subscription
    • Switch to AWS marketplace
    • Change Password
    • MFA
    • Download Invoice
    • Cancel Account
    • Account Audit Log
  • Quick Look
    • Quick AWS Overview
    • Security Overview
    • Customize the Hava Dashboard
Powered by GitBook
On this page

Was this helpful?

  1. Importing Data
  2. AWS
  3. Getting Started with AWS

Minimum Access IAM User

PreviousRead Only IAM UserNextAWS Supported Resources

Last updated 1 year ago

Was this helpful?

How to Create a Minimum Access IAM User

Creating the Hava Read-Only IAM user, that uses the standard AWS ReadOnlyAccess Policy will ensure that your user doesn't have enough privileges to change anything in your environment.

If you feel that the default policy from AWS allows too much access you can create a custom policy to limit it to just what we need.

While we recommend the default Read-Only policy to account for future updates to our supported services you can follow these steps to create a minimum access read-only user that Hava can use to visualize your AWS infrastructure.

Before you start make sure you are logged in to the .

  1. From the main console screen click on Identity & Access Management.

  2. From the IAM dashboard select the Users section and then click the Create New Users button.

  3. Enter a unique username for your new user, make sure Generate an access key is checked, and then click the Create button.

  4. You should be notified that your user has been created. You can copy the details from this screen or just click Download to save them.

  5. Now that you've created your user, you will need to create the customer policy that grants Hava the security it requires at a minimum.From the IAM dashboard select the Policy section and then click the Create New Policy button.

  6. You will then need to select the Create Your Own Policy option.

  7. You will need to provide the name of your policy such as "HAVA-RO-POLICY", a description of the policy such as "Just enough access to ensure Hava can work it's magic" and then enter in the custom policy seen here: You can copy and paste the policy from here:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Action": [
            "acm:DescribeCertificate",
            "acm:GetCertificate",
            "acm:ListCertificates",
            "apigateway:GET",
            "appsync:GetApiCache",
            "appsync:ListApiKeys",
            "appsync:ListDataSources",
            "appsync:ListDomainNames",
            "appsync:ListFunctions",
            "appsync:ListGraphqlApis",
            "appsync:ListResolvers",
            "appsync:ListSourceApiAssociations",
            "appsync:ListTagsForResource",
            "appsync:ListTypes",
            "appstream:Get*",
            "autoscaling:Describe*",
            "cloudformation:List*",
            "cloudfront:Get*",
            "cloudfront:List*",
            "cloudsearch:Describe*",
            "cloudsearch:List*",
            "cloudtrail:DescribeTrails",
            "cloudtrail:GetTrailStatus",
            "cloudwatch:Describe*",
            "cloudwatch:Get*",
            "cloudwatch:List*",
            "codecommit:BatchGetRepositories",
            "codecommit:Get*",
            "codecommit:GitPull",
            "codecommit:List*",
            "codedeploy:Batch*",
            "codedeploy:Get*",
            "codedeploy:List*",
            "config:Deliver*",
            "config:Describe*",
            "config:Get*",
            "datapipeline:DescribeObjects",
            "datapipeline:DescribePipelines",
            "datapipeline:EvaluateExpression",
            "datapipeline:GetPipelineDefinition",
            "datapipeline:ListPipelines",
            "datapipeline:QueryObjects",
            "datapipeline:ValidatePipelineDefinition",
            "directconnect:Describe*",
            "ds:Check*",
            "ds:Describe*",
            "ds:Get*",
            "ds:List*",
            "ds:Verify*",
            "dynamodb:DescribeGlobalTable",
            "dynamodb:DescribeTable",
            "dynamodb:ListGlobalTables",
            "dynamodb:ListTables",
            "dynamodb:ListTagsOfResource",
            "ec2:Describe*",
            "ec2:GetConsoleOutput",
            "ecr:BatchCheckLayerAvailability",
            "ecr:BatchGetImage",
            "ecr:DescribeRepositories",
            "ecr:GetDownloadUrlForLayer",
            "ecr:ListImages",
            "ecs:Describe*",
            "ecs:List*",
            "eks:Describe*",
            "eks:List*",
            "elasticache:Describe*",
            "elasticache:List*",
            "elasticbeanstalk:Check*",
            "elasticbeanstalk:Describe*",
            "elasticbeanstalk:List*",
            "elasticbeanstalk:RequestEnvironmentInfo",
            "elasticbeanstalk:RetrieveEnvironmentInfo",
            "elasticfilesystem:DescribeFileSystems",
            "elasticfilesystem:DescribeMountTargetSecurityGroups",
            "elasticfilesystem:DescribeMountTargets",
            "elasticfilesystem:DescribeTags",
            "elasticloadbalancing:Describe*",
            "elasticmapreduce:Describe*",
            "elasticmapreduce:List*",
            "elastictranscoder:List*",
            "elastictranscoder:Read*",
            "es:DescribeDomain",
            "es:DescribeDomainNodes",
            "es:DescribeDomains",
            "es:DescribeElasticsearchDomain",
            "es:DescribeElasticsearchDomainConfig",
            "es:DescribeElasticsearchDomains",
            "es:DescribeReservedElasticsearchInstances",
            "es:DescribeVpcEndpoints",
            "es:ESHttpGet",
            "es:ESHttpHead",
            "es:ListDomainNames",
            "es:ListTags",
            "es:ListVpcEndpointAccess",
            "es:ListVpcEndpoints",
            "es:ListVpcEndpointsForDomain",
            "events:DescribeApiDestination",
            "events:DescribeArchive",
            "events:DescribeConnection",
            "events:DescribeEndpoint",
            "events:DescribeEventBus",
            "events:DescribeEventSource",
            "events:DescribePartnerEventSource",
            "events:DescribeReplay",
            "events:DescribeRule",
            "events:ListApiDestinations",
            "events:ListArchives",
            "events:ListConnections",
            "events:ListEndpoints",
            "events:ListEventBuses",
            "events:ListEventSources",
            "events:ListPartnerEventSourceAccounts",
            "events:ListPartnerEventSources",
            "events:ListReplays",
            "events:ListRuleNamesByTarget",
            "events:ListRules",
            "events:ListTagsForResource",
            "events:ListTargetsByRule",
            "events:TestEventPattern",
            "firehose:DescribeDeliveryStream",
            "firehose:ListDeliveryStreams",
            "firehose:ListTagsForDeliveryStream",
            "glacier:DescribeJob",
            "glacier:DescribeVault",
            "glacier:GetDataRetrievalPolicy",
            "glacier:GetJobOutput",
            "glacier:GetVaultAccessPolicy",
            "glacier:GetVaultLock",
            "glacier:GetVaultNotifications",
            "glacier:ListJobs",
            "glacier:ListMultipartUploads",
            "glacier:ListParts",
            "glacier:ListTagsForVault",
            "glacier:ListVaults",
            "iam:GenerateCredentialReport",
            "iam:Get*",
            "iam:List*",
            "inspector:Describe*",
            "inspector:Get*",
            "inspector:List*",
            "iot:Describe*",
            "iot:Get*",
            "iot:List*",
            "kafka:DescribeCluster",
            "kafka:DescribeClusterV2",
            "kafka:DescribeVpcConnection",
            "kafka:ListClientVpcConnections",
            "kafka:ListClusters",
            "kafka:ListClustersV2",
            "kafka:ListNodes",
            "kafka:ListTagsForResource",
            "kafka:ListVpcConnections",
            "kinesis:Describe*",
            "kinesis:DescribeStream",
            "kinesis:DescribeStreamConsumer",
            "kinesis:DescribeStreamSummary",
            "kinesis:ListShards",
            "kinesis:ListStreamConsumers",
            "kinesis:ListStreams",
            "kinesis:ListTagsForStream",
            "kms:Describe*",
            "kms:Get*",
            "kms:List*",
            "lambda:Get*",
            "lambda:List*",
            "logs:Describe*",
            "logs:Get*",
            "logs:TestMetricFilter",
            "machinelearning:Describe*",
            "machinelearning:Get*",
            "opsworks:Describe*",
            "opsworks:Get*",
            "organizations:ListAccounts",
            "rds:Describe*",
            "rds:ListTagsForResource",
            "redshift:Describe*",
            "redshift:ViewQueriesInConsole",
            "route53:Get*",
            "route53:List*",
            "route53domains:CheckDomainAvailability",
            "route53domains:GetDomainDetail",
            "route53domains:GetOperationDetail",
            "route53domains:ListDomains",
            "route53domains:ListOperations",
            "route53domains:ListTagsForDomain",
            "s3:GetAccelerateConfiguration",
            "s3:GetAnalyticsConfiguration",
            "s3:GetBucket*",
            "s3:GetInventoryConfiguration",
            "s3:GetLifecycleConfiguration",
            "s3:GetMetricsConfiguration",
            "s3:GetReplicationConfiguration",
            "s3:List*",
            "sdb:GetAttributes",
            "sdb:List*",
            "sdb:Select*",
            "ses:Get*",
            "ses:List*",
            "sns:Get*",
            "sns:List*",
            "sqs:GetQueueAttributes",
            "sqs:ListQueues",
            "sqs:ReceiveMessage",
            "storagegateway:Describe*",
            "storagegateway:List*",
            "swf:Count*",
            "swf:Describe*",
            "swf:Get*",
            "swf:List*",
            "tag:Get*",
            "trustedadvisor:Describe*",
            "waf-regional:Get*",
            "waf-regional:List*",
            "waf:Get*",
            "waf:List*",
            "wafv2:GetWebACL",
            "wafv2:ListResourcesForWebACL",
            "wafv2:ListTagsForResource",
            "wafv2:ListWebACLs",
            "workspaces:Describe*"
          ],
          "Effect": "Allow",
          "Resource": "*"
        }
      ]
    }
  8. Once you have entered in all of the details and copy and pasted the policy contents into the Policy Document section, you can click Create Policy to complete the policy creation process.

  9. Click your new user in the list and go to the Managed Policies header under Permissions. Click Attach Policy.

  10. Scroll through the policy list until you find custom policy HAVA-RO-POLICY. Click the checkbox and then click Attach Policy.

  11. This policy will allow you to import everything needed to create diagrams and basic reports. If you would like the full data available in your reports you can also add these policies to your user: arn:aws:iam::aws:policy/SecurityAudit

    arn:aws:iam::aws:policy/job-function/ViewOnlyAccess

  12. Now head back to the Hava homepage and enter the credentials you downloaded earlier to get started!

AWS console
iam-step2.png
IAM-policy-selected.png
Screen_Shot_2016-04-08_at_3.26.09_PM.png
iam-step4.png
Screen_Shot_2016-04-08_at_3.23.48_PM.png
iam-step1.png
Screen_Shot_2016-04-08_at_3.35.27_PM.png
iam-step3.png
iam-step5.png
Screen_Shot_2016-04-08_at_3.30.20_PM.png