Setting up Amazon DevOps Guru - Amazon DevOps Guru

Setting up Amazon DevOps Guru

Complete the tasks in this section to set up Amazon DevOps Guru for the first time. If you already have an AWS account, know which AWS account or accounts you want to analyze, and have an Amazon Simple Notification Service topic to use for insight notifications, you can skip ahead to Getting started with DevOps Guru.

Optionally, you can use Quick Setup, a capability of AWS Systems Manager, to set up DevOps Guru and quickly configure its options. You can use Quick Setup to set up DevOps Guru for a standalone account or an organization. To use Quick Setup in Systems Manager to set up DevOps Guru for an organization, you must have the following prerequisites in place:

  • An organization with AWS Organizations. For more information, see AWS Organizations terminology and concepts in the AWS Organizations User Guide.

  • Two or more organizational units (OUs).

  • One or more target AWS accounts in each OU.

  • One administrator account with privileges to manage the target accounts.

To learn how to set up DevOps Guru using Quick Setup, see Configure DevOps Guru with Quick Setup in the AWS Systems Manager User Guide.

Use the following steps to set up DevOps Guru without Quick Setup.

Step 1 – Sign up for AWS

Sign up for an AWS account

If you do not have an AWS account, complete the following steps to create one.

To sign up for an AWS account
  1. Open

  2. Follow the online instructions.

    Part of the sign-up procedure involves receiving a phone call and entering a verification code on the phone keypad.

    When you sign up for an AWS account, an AWS account root user is created. The root user has access to all AWS services and resources in the account. As a security best practice, assign administrative access to a user, and use only the root user to perform tasks that require root user access.

AWS sends you a confirmation email after the sign-up process is complete. At any time, you can view your current account activity and manage your account by going to and choosing My Account.

Create a user with administrative access

After you sign up for an AWS account, secure your AWS account root user, enable AWS IAM Identity Center, and create an administrative user so that you don't use the root user for everyday tasks.

Secure your AWS account root user
  1. Sign in to the AWS Management Console as the account owner by choosing Root user and entering your AWS account email address. On the next page, enter your password.

    For help signing in by using root user, see Signing in as the root user in the AWS Sign-In User Guide.

  2. Turn on multi-factor authentication (MFA) for your root user.

    For instructions, see Enable a virtual MFA device for your AWS account root user (console) in the IAM User Guide.

Create a user with administrative access
  1. Enable IAM Identity Center.

    For instructions, see Enabling AWS IAM Identity Center in the AWS IAM Identity Center User Guide.

  2. In IAM Identity Center, grant administrative access to a user.

    For a tutorial about using the IAM Identity Center directory as your identity source, see Configure user access with the default IAM Identity Center directory in the AWS IAM Identity Center User Guide.

Sign in as the user with administrative access
  • To sign in with your IAM Identity Center user, use the sign-in URL that was sent to your email address when you created the IAM Identity Center user.

    For help signing in using an IAM Identity Center user, see Signing in to the AWS access portal in the AWS Sign-In User Guide.

Assign access to additional users
  1. In IAM Identity Center, create a permission set that follows the best practice of applying least-privilege permissions.

    For instructions, see Create a permission set in the AWS IAM Identity Center User Guide.

  2. Assign users to a group, and then assign single sign-on access to the group.

    For instructions, see Add groups in the AWS IAM Identity Center User Guide.

Step 2 – Determine coverage for DevOps Guru

Your boundary coverage determines the AWS resources that are analyzed by Amazon DevOps Guru for anomalous behavior. We recommend that you group your resources into your operational applications. All the resources in your resource boundary should comprise one or more of your applications. If you have one operational solution, then your coverage boundary should include all of its resources. If you have multiple applications, choose the resources that make up each solution and group them together using AWS CloudFormation stacks or AWS tags. All of the combined resources you specify, whether they define one or more applications, are analyzed by DevOps Guru and make up its coverage boundary.

Use one of the following methods to specify the resources in your operational solutions.

  • Choose to have your AWS Region and account define your coverage boundary. With this option, DevOps Guru analyzes all resources in your account and Region. This is a good option to choose if you use your account for only one application.

  • Use AWS CloudFormation stacks to define the resources in your operational application. AWS CloudFormation templates define and generate your resources for you. Specify the stacks that create your application resources when you configure DevOps Guru. You can update your stacks at any time. All of the resources in the stacks that you choose define your boundary coverage. For more information, see Using AWS CloudFormation stacks to identify resources in your DevOps Guru applications.

  • Use AWS tags to specify AWS resources in your applications. DevOps Guru analyzes only the resources that contain the tags you choose. Those resources make up your boundary.

    An AWS tag consists of a tag key and a tag value. You can specify one tag key and you can specify one or more values with that key. Use one value for all the resources in one of your applications. If you have multiple applications, then use a tag with the same key for all of them, and group the resources into your applications using the tags' values. All of the resources with the tags that you choose make up the coverage boundary for DevOps Guru. For more information, see Using tags to identify resources in your DevOps Guru applications.

If your boundary coverage includes resources that make up more than one application, you can use tags to filter your insights by to view them by one application at a time. For more information, see Step 4 in Viewing DevOps Guru insights.

For more information, see Defining applications using AWS resources. For more information about the supported services and resources, see Amazon DevOps Guru pricing.

Step 3 – Identify your Amazon SNS notifications topic

You use one or two Amazon SNS topics to generate notifications about important DevOps Guru events, such as when an insight is created. This ensures you know about issues that DevOps Guru finds as soon as possible. Have your topics ready when you set up DevOps Guru. When you use the DevOps Guru console to set up DevOps Guru, you specify a notification topic using its name or its Amazon Resource Name (ARN). For more information, see Enable DevOps Guru. You can use the Amazon SNS console to view the name and ARN for each of your topics. If you don't have a topic, you can create one when you enable DevOps Guru using the DevOps Guru console. For more information, see Creating a topic in the Amazon Simple Notification Service Developer Guide.

Permissions added to your Amazon SNS topic

An Amazon SNS topic is a resource that contains an AWS Identity and Access Management (IAM) resource policy. When you specify a topic here, DevOps Guru appends the following permissions to its resource policy.

{ "Sid": "DevOpsGuru-added-SNS-topic-permissions", "Effect": "Allow", "Principal": { "Service": "" }, "Action": "sns:Publish", "Resource": "arn:aws:sns:region-id:topic-owner-account-id:my-topic-name", "Condition" : { "StringEquals" : { "AWS:SourceArn": "arn:aws:devops-guru:region-id:topic-owner-account-id:channel/devops-guru-channel-id", "AWS:SourceAccount": "topic-owner-account-id" } } }

These permissions are required for DevOps Guru to publish notifications using a topic. If you prefer to not have these permissions on the topic, you can safely remove them and the topic will continue to work as it did before you chose it. However, if these appended permissions are removed, DevOps Guru cannot use the topic to generate notifications.