

Amazon Monitron is no longer open to new customers. Existing customers can continue to use the service as normal. For capabilities similar to Amazon Monitron, see our [blog post](https://aws.amazon.com/blogs/machine-learning/maintain-access-and-consider-alternatives-for-amazon-monitron).

# Security in Amazon Monitron
<a name="security"></a>

Cloud security at AWS is the highest priority. As an AWS customer, you benefit from data centers and network architectures that are built to meet the requirements of the most security-sensitive organizations.

Security is a shared responsibility between AWS and you. The [shared responsibility model](https://aws.amazon.com/compliance/shared-responsibility-model/) describes this as security *of* the cloud and security *in* the cloud:
+ **Security of the cloud** – AWS is responsible for protecting the infrastructure that runs AWS services in the AWS Cloud. AWS also provides you with services that you can use securely. Third-party auditors regularly test and verify the effectiveness of our security as part of the [AWS Compliance Programs](https://aws.amazon.com/compliance/programs/). To learn about the compliance programs that apply to Amazon Monitron, see [AWS Services in Scope by Compliance Program](https://aws.amazon.com/compliance/services-in-scope/).
+ **Security in the cloud** – Your responsibility is determined by the AWS service that you use. You are also responsible for other factors, including the sensitivity of your data, your company’s requirements, and applicable laws and regulations. 

This documentation helps you understand how to apply the shared responsibility model when using Amazon Monitron. The following topics show you how to configure Amazon Monitron to meet your security and compliance objectives. You also learn how to use other AWS services that help you to monitor and secure your Amazon Monitron resources. 

**Topics**
+ [Data protection in Amazon Monitron](data-protection.md)
+ [Identity and Access Management for Amazon Monitron](security-iam.md)
+ [Logging and Monitoring in Amazon Monitron](monitron-logging.md)
+ [Compliance Validation for Amazon Monitron](monitron-compliance.md)
+ [Infrastructure Security in Amazon Monitron](infrastructure-security.md)
+ [Security Best Practices for Amazon Monitron](security-best-practices.md)

# Data protection in Amazon Monitron
<a name="data-protection"></a>

Amazon Monitron conforms to the AWS [shared responsibility model](https://aws.amazon.com/compliance/shared-responsibility-model/), which includes regulations and guidelines for data protection. AWS is responsible for protecting the global infrastructure that runs all the AWS services. AWS maintains control over data hosted on this infrastructure, including the security configuration controls for handling customer content and personal data. AWS customers and APN partners, acting either as data controllers or data processors, are responsible for any personal data that they put in the AWS Cloud. 

For data protection purposes, we recommend that you protect AWS account credentials and set up individual users with AWS Identity and Access Management (IAM), so that each user is given only the permissions necessary to fulfill their job duties. We also recommend that you secure your data in the following ways:
+ Use multi-factor authentication (MFA) with each account.
+ Use TLS (Transport Layer Security) to communicate with AWS resources.
+ Set up API and user activity logging with AWS CloudTrail.
+ Use AWS encryption solutions, along with all default security controls within AWS services.
+ Use advanced managed security services such as Amazon Macie, which assists in discovering and securing personal data that is stored in Amazon S3.

We strongly recommend that you never put sensitive identifying information, such as your customers' account numbers, into free-form fields such as a **Name** field. This includes when you work with Amazon Monitron or other AWS services using the console, API, AWS CLI, or AWS SDKs. Any data that you enter into Amazon Monitron or other services might get picked up for inclusion in diagnostic logs. When you provide a URL to an external server, don't include credentials information in the URL to validate your request to that server.

For more information about data protection, see the [AWS Shared Responsibility Model and GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) blog post on the *AWS Security Blog*.

**Topics**
+ [Data at rest](data-at-rest.md)
+ [Data in transit](data-in-transit.md)
+ [AWS KMS and data encryption in Amazon Monitron](kms-data-encrypt.md)

# Data at rest
<a name="data-at-rest"></a>

Your data is encrypted at rest in the cloud using one of two types of keys through AWS Key Management Service (AWS KMS). The data is encrypted in Amazon Simple Storage Service (Amazon S3) using an AWS owned key. Amazon Monitron also stores data in tables in Amazon DynamoDB. By default, these are encrypted using an AWS owned CMK. However, if a customer chooses **Custom encryption settings** when setting up a project, Amazon Monitron uses a customer managed CMK.

See also [Using server-side encryption for the Kinesis stream](monitron-kinesis-export.md#data-export-server-side-encryption).

# Data in transit
<a name="data-in-transit"></a>

Amazon Monitron uses TLS (Transport Layer Security) to encrypt data that is transferred between your sensors and Amazon Monitron. 

# AWS KMS and data encryption in Amazon Monitron
<a name="kms-data-encrypt"></a>

Amazon Monitron encrypts your data and project information using one of two types of keys through AWS Key Management Service (AWS KMS). You can choose one of the following: 
+ An AWS owned key. This is the default encryption key and is used if you do not choose **Custom encryption settings** when setting up your project.
+ A customer managed CMK. You can use an existing key in your AWS account or create a key in the AWS KMS console or using the API. If you're using an existing key, you choose **Choose an AWS KMS key** and then either choose a key from the list of AWS KMS keys, or enter the Amazon Resource Name (ARN) of another key. If you want to create a new key, you choose **Create an AWS KMS key**. For more information, see [Creating Keys](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) in the *AWS Key Management Service Developer Guide*. 

When using AWS KMS to encrypt your data, keep the following in mind: 
+ Your data is encrypted at rest in the Cloud in Amazon S3 and Amazon DynamoDB. 
+ When data is encrypted using an AWS owned CMK, Amazon Monitron uses a separate CMK for each customer.
+ IAM users must have the required permissions to call the AWS KMS API operations connected with Amazon Monitron. Amazon Monitron includes the following permissions in its managed policy for console use. 

  ```
  {
                   "Effect": "Allow",
                   "Action": [
                           "kms:ListKeys",
                           "kms:DescribeKey",
                           "kms:ListAliases",
                           "kms:CreateGrant"
                   ],
                   "Resource": "*"
           },
  ```

   For more information, see [Using IAM Policies with AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html) in the *AWS Key Management Service Developer Guide*. 
+ If you delete or disable your CMK, you won't be able to access the data. For more information, see [Deleting AWS KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html) in the *AWS Key Management Service Developer Guide*. 

# Identity and Access Management for Amazon Monitron
<a name="security-iam"></a>

AWS Identity and Access Management (IAM) is an AWS service that helps an administrator securely control access to AWS resources. IAM administrators control who can be *authenticated* (signed in) and *authorized* (have permissions) to use Amazon Monitron resources. IAM is an AWS service that you can use with no additional charge.

**Topics**
+ [Audience](security_iam_audience.md)
+ [Authenticating with Identities](security_iam_authentication.md)
+ [Managing Access Using Policies](security_iam_access-manage.md)
+ [How Amazon Monitron Works with IAM](security_iam_service-with-iam.md)
+ [Using service-linked roles for Amazon Monitron](using-service-linked-roles.md)

# Audience
<a name="security_iam_audience"></a>

How you use AWS Identity and Access Management (IAM) differs based on your role:
+ **Service user** - request permissions from your administrator if you cannot access features (see [Troubleshooting Amazon Monitron Identity and Access](security_iam_service-with-iam.md#security_iam_troubleshoot))
+ **Service administrator** - determine user access and submit permission requests (see [How Amazon Monitron Works with IAM](security_iam_service-with-iam.md))
+ **IAM administrator** - write policies to manage access (see [Amazon Monitron Identity-Based Policy Examples](security_iam_service-with-iam.md#security_iam_id-based-policy-examples))

# Authenticating with Identities
<a name="security_iam_authentication"></a>

Authentication is how you sign in to AWS using your identity credentials. You must be authenticated as the AWS account root user, an IAM user, or by assuming an IAM role.

You can sign in as a federated identity using credentials from an identity source like AWS IAM Identity Center (IAM Identity Center), single sign-on authentication, or Google/Facebook credentials. For more information about signing in, see [How to sign in to your AWS account](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) in the *AWS Sign-In User Guide*.

For programmatic access, AWS provides an SDK and CLI to cryptographically sign requests. For more information, see [AWS Signature Version 4 for API requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) in the *IAM User Guide*.

**Topics**
+ [AWS account root user](security_iam_authentication-rootuser.md)
+ [IAM users and Groups](security_iam_authentication-iamuser.md)
+ [IAM Roles](security_iam_authentication-iamrole.md)

# AWS account root user
<a name="security_iam_authentication-rootuser"></a>

 When you create an AWS account, you begin with one sign-in identity called the AWS account *root user* that has complete access to all AWS services and resources. We strongly recommend that you don't use the root user for everyday tasks. For tasks that require root user credentials, see [Tasks that require root user credentials](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) in the *IAM User Guide*. 

# IAM users and Groups
<a name="security_iam_authentication-iamuser"></a>

An *[IAM user](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)* is an identity with specific permissions for a single person or application. We recommend using temporary credentials instead of IAM users with long-term credentials. For more information, see [Require human users to use federation with an identity provider to access AWS using temporary credentials](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) in the *IAM User Guide*.

An [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) specifies a collection of IAM users and makes permissions easier to manage for large sets of users. For more information, see [Use cases for IAM users](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) in the *IAM User Guide*.

# IAM Roles
<a name="security_iam_authentication-iamrole"></a>

An *[IAM role](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* is an identity with specific permissions that provides temporary credentials. You can assume a role by [switching from a user to an IAM role (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) or by calling an AWS CLI or AWS API operation. For more information, see [Methods to assume a role](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) in the *IAM User Guide*.

IAM roles are useful for federated user access, temporary IAM user permissions, cross-account access, cross-service access, and applications running on Amazon EC2. For more information, see [Cross account resource access in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) in the *IAM User Guide*.

# Managing Access Using Policies
<a name="security_iam_access-manage"></a>

You control access in AWS by creating policies and attaching them to AWS identities or resources. A policy defines permissions when associated with an identity or resource. AWS evaluates these policies when a principal makes a request. Most policies are stored in AWS as JSON documents. For more information about JSON policy documents, see [Overview of JSON policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) in the *IAM User Guide*.

Using policies, administrators specify who has access to what by defining which **principal** can perform **actions** on what **resources**, and under what **conditions**.

By default, users and roles have no permissions. An IAM administrator creates IAM policies and adds them to roles, which users can then assume. IAM policies define permissions regardless of the method used to perform the operation.

**Topics**
+ [Identity-Based Policies](security_iam_access-manage-id-based-policies.md)
+ [Other Policy Types](security_iam_access-manage-other-policies.md)
+ [Multiple Policy Types](security_iam_access-manage-multiple-policies.md)

# Identity-Based Policies
<a name="security_iam_access-manage-id-based-policies"></a>

Identity-based policies are JSON permissions policy documents that you attach to an identity (user, group, or role). These policies control what actions identities can perform, on which resources, and under what conditions. To learn how to create an identity-based policy, see [Define custom IAM permissions with customer managed policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) in the *IAM User Guide*.

Identity-based policies can be *inline policies* (embedded directly into a single identity) or *managed policies* (standalone policies attached to multiple identities). To learn how to choose between managed and inline policies, see [Choose between managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html) in the *IAM User Guide*.

# Other Policy Types
<a name="security_iam_access-manage-other-policies"></a>

AWS supports additional policy types that can set the maximum permissions granted by more common policy types:
+ **Permissions boundaries** – Set the maximum permissions that an identity-based policy can grant to an IAM entity. For more information, see [Permissions boundaries for IAM entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) in the *IAM User Guide*.
+ **Service control policies (SCPs)** – Specify the maximum permissions for an organization or organizational unit in AWS Organizations. For more information, see [Service control policies](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) in the *AWS Organizations User Guide*.
+ **Resource control policies (RCPs)** – Set the maximum available permissions for resources in your accounts. For more information, see [Resource control policies (RCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) in the *AWS Organizations User Guide*.
+ **Session policies** – Advanced policies passed as a parameter when creating a temporary session for a role or federated user. For more information, see [Session policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) in the *IAM User Guide*.

# Multiple Policy Types
<a name="security_iam_access-manage-multiple-policies"></a>

When multiple types of policies apply to a request, the resulting permissions are more complicated to understand. To learn how AWS determines whether to allow a request when multiple policy types are involved, see [Policy evaluation logic](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) in the *IAM User Guide*.

# How Amazon Monitron Works with IAM
<a name="security_iam_service-with-iam"></a>

Before you use IAM to manage access to Amazon Monitron, you should understand what IAM features are available to use with Amazon Monitron. To get a high-level view of how Amazon Monitron and other AWS services work with IAM, see [AWS Services That Work with IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) in the *IAM User Guide*.

**Topics**
+ [Amazon Monitron Identity-Based Policies](#security_iam_service-with-iam-id-based-policies)
+ [Amazon Monitron Resource-Based Policies](#security_iam_service-with-iam-resource-based-policies)
+ [Authorization Based on Amazon Monitron Tags](#security_iam_service-with-iam-tags)
+ [Amazon Monitron IAM Roles](#security_iam_service-with-iam-roles)
+ [Amazon Monitron Identity-Based Policy Examples](#security_iam_id-based-policy-examples)
+ [Troubleshooting Amazon Monitron Identity and Access](#security_iam_troubleshoot)

## Amazon Monitron Identity-Based Policies
<a name="security_iam_service-with-iam-id-based-policies"></a>

To specify allowed or denied actions and resources and the conditions under which actions are allowed or denied, use IAM identity-based policies. Amazon Monitron supports specific actions, resources, and condition keys. To learn about all of the elements that you use in a JSON policy, see [IAM JSON Policy Elements Reference](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) in the *IAM User Guide*.

**Topics**
+ [Actions](#security_iam_service-with-iam-id-based-policies-actions)
+ [Resources](#security_iam_service-with-iam-id-based-policies-resources)
+ [Condition Keys](#security_iam_service-with-iam-id-based-policies-conditionkeys)
+ [Examples](#security_iam_service-with-iam-id-based-policies-examples)

### Actions
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

Administrators can use AWS JSON policies to specify who has access to what. That is, which **principal** can perform **actions** on what **resources**, and under what **conditions**.

The `Action` element of a JSON policy describes the actions that you can use to allow or deny access in a policy. Include actions in a policy to grant permissions to perform the associated operation.

In Amazon Monitron, policy actions use the following prefix before the action: `monitron:`. For example, to grant someone permission to create a project with the Amazon Monitron `CreateProject` operation, you include the `monitron:CreateProject` action in their policy. Policy statements must include either an `Action` or `NotAction` element. Amazon Monitron defines its own set of actions that describe tasks that you can perform with this service.

**Note**  
With the `deleteProject` operation, you must have the AWS IAM Identity Center (SSO) permissions for deletion. Without these permissions, the delete functionality will still remove the project. However, it will not remove the resources from SSO and you may end up with dangling references on SSO.

To specify multiple actions in a single statement, separate them with commas as follows:

```
"Action": [
      "monitron:action1",
      "monitron:action2"
]
```

You can specify multiple actions using wildcards (\$1). For example, to specify all actions that begin with the word `List`, include the following action:

```
"Action": "monitron:List*"
```

### Resources
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

Amazon Monitron does not support specifying resource ARNs in a policy.

### Condition Keys
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

Administrators can use AWS JSON policies to specify who has access to what. That is, which **principal** can perform **actions** on what **resources**, and under what **conditions**.

The `Condition` element specifies when statements execute based on defined criteria. You can create conditional expressions that use [condition operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html), such as equals or less than, to match the condition in the policy with values in the request. To see all AWS global condition keys, see [AWS global condition context keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) in the *IAM User Guide*.

Amazon Monitron defines its own set of condition keys and also supports using some global condition keys. For a list of all AWS global condition keys, see [AWS Global Condition Context Keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) in the *IAM User Guide*.

To see a list of Amazon Monitron condition keys, see [Actions defined by Amazon Monitron](https://docs.aws.amazon.com//service-authorization/latest/reference/list_amazonmonitron.html#amazonmonitron-actions-as-permissions) in the *IAM User Guide*. To learn with which actions and resources you can use a condition key, see [Condition keys for Amazon Monitron](https://docs.aws.amazon.com//service-authorization/latest/reference/list_amazonmonitron.html#amazonmonitron-policy-keys).

### Examples
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>

To view examples of Amazon Monitron identity-based policies, see [Amazon Monitron Identity-Based Policy Examples](#security_iam_id-based-policy-examples).

## Amazon Monitron Resource-Based Policies
<a name="security_iam_service-with-iam-resource-based-policies"></a>

Amazon Monitron does not support resource-based policies.

## Authorization Based on Amazon Monitron Tags
<a name="security_iam_service-with-iam-tags"></a>

You can associate tags with certain types of Amazon Monitron resources for authorization. To control access based on tags, provide tag information in the [condition element](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) of a policy using the `Amazon Monitron:TagResource/${TagKey}`, `aws:RequestTag/${TagKey}`, or `aws:TagKeys` condition keys. 

## Amazon Monitron IAM Roles
<a name="security_iam_service-with-iam-roles"></a>

An [IAM role](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) is an entity within your AWS account that has specific permissions.

### Using Temporary Credentials with Amazon Monitron
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

You can use temporary credentials to sign in with federation, assume an IAM role, or assume a cross-account role. You obtain temporary security credentials by calling AWS STS API operations such as [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) or [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html). 

Amazon Monitron supports using temporary credentials. 

### Service-Linked Roles
<a name="security_iam_service-with-iam-roles-service-linked"></a>

[Service-linked roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) allow AWS services to access resources in other services to complete an action on your behalf. Service-linked roles appear in your IAM account and are owned by the service. An IAM administrator can view but not edit the permissions for service-linked roles. 

Amazon Monitron supports service-linked roles. 

### Service Roles
<a name="security_iam_service-with-iam-roles-service"></a>

This feature allows a service to assume a [service role](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role) on your behalf. This role allows the service to access resources in other services to complete an action on your behalf. Service roles appear in your IAM account and are owned by the account. This means that an IAM administrator can change the permissions for this role. However, doing so might break the functionality of the service.

Amazon Monitron supports service roles. 

## Amazon Monitron Identity-Based Policy Examples
<a name="security_iam_id-based-policy-examples"></a>

By default, IAM users and roles don't have permission to create or modify Amazon Monitron resources. They also can't perform tasks using the AWS Management Console. An IAM administrator must give permissions to the IAM users, groups, or roles that require them. Then these users, groups, or roles can perform the specific operations on the specified resources they need. The administrator must then attach those policies to the IAM users or groups that require those permissions.

To learn how to create an IAM identity-based policy using these example JSON policy documents, see [Creating Policies on the JSON Tab](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor) in the *IAM User Guide*.

**Topics**
+ [Policy Best Practices](#security_iam_service-with-iam-policy-best-practices)
+ [Using the Amazon Monitron Console](#security_iam_id-based-policy-examples-console)
+ [Example: List All Amazon Monitron Projects](#security_iam_id-based-policy-examples-access-one-bucket)
+ [Example: List Amazon Monitron Projects Based on Tags](#security_iam_id-based-policy-examples-view-widget-tags)

### Policy Best Practices
<a name="security_iam_service-with-iam-policy-best-practices"></a>

Identity-based policies determine whether someone can create, access, or delete Amazon Monitron resources in your account. These actions can incur costs for your AWS account. When you create or edit identity-based policies, follow these guidelines and recommendations:
+ **Get started with AWS managed policies and move toward least-privilege permissions** – To get started granting permissions to your users and workloads, use the *AWS managed policies* that grant permissions for many common use cases. They are available in your AWS account. We recommend that you reduce permissions further by defining AWS customer managed policies that are specific to your use cases. For more information, see [AWS managed policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) or [AWS managed policies for job functions](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) in the *IAM User Guide*.
+ **Apply least-privilege permissions** – When you set permissions with IAM policies, grant only the permissions required to perform a task. You do this by defining the actions that can be taken on specific resources under specific conditions, also known as *least-privilege permissions*. For more information about using IAM to apply permissions, see [ Policies and permissions in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) in the *IAM User Guide*.
+ **Use conditions in IAM policies to further restrict access** – You can add a condition to your policies to limit access to actions and resources. For example, you can write a policy condition to specify that all requests must be sent using SSL. You can also use conditions to grant access to service actions if they are used through a specific AWS service, such as CloudFormation. For more information, see [ IAM JSON policy elements: Condition](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) in the *IAM User Guide*.
+ **Use IAM Access Analyzer to validate your IAM policies to ensure secure and functional permissions** – IAM Access Analyzer validates new and existing policies so that the policies adhere to the IAM policy language (JSON) and IAM best practices. IAM Access Analyzer provides more than 100 policy checks and actionable recommendations to help you author secure and functional policies. For more information, see [Validate policies with IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) in the *IAM User Guide*.
+ **Require multi-factor authentication (MFA)** – If you have a scenario that requires IAM users or a root user in your AWS account, turn on MFA for additional security. To require MFA when API operations are called, add MFA conditions to your policies. For more information, see [ Secure API access with MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) in the *IAM User Guide*.

For more information about best practices in IAM, see [Security best practices in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) in the *IAM User Guide*.

### Using the Amazon Monitron Console
<a name="security_iam_id-based-policy-examples-console"></a>

To set up Amazon Monitron using the console, please complete the initial setup process using a high privilege user (such as one with the `AdministratorAccess` managed policy attached). 

To access the Amazon Monitron console for day-to-day operations after the initial setup, you must have a minimum set of permissions. These permissions must allow you to list and view details about the Amazon Monitron resources in your AWS account and include a set of permissions related to IAM Identity Center. If you create an identity-based policy that is more restrictive than these minimum required permissions, the console won't function as intended for entities (IAM users or roles) with that policy. For basic Amazon Monitron Console functionality, you need to attach the `AmazonMonitronFullAccess` managed policy. Depending on the circumstances, you may also need additional permissions to the Organizations and SSO service. Contact AWS support if you need more information.

### Example: List All Amazon Monitron Projects
<a name="security_iam_id-based-policy-examples-access-one-bucket"></a>

This example policy grants an IAM user in your AWS account permission to list all projects in your account. 

### Example: List Amazon Monitron Projects Based on Tags
<a name="security_iam_id-based-policy-examples-view-widget-tags"></a>

You can use conditions in your identity-based policy to control access to Amazon Monitron resources based on tags. This example shows how you might create a policy that allows listing projects. However, permission is granted only if the project tag `location` has the value of `Seattle`. This policy also grants the permissions necessary to complete this action on the console.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ListProjectsInConsole",
            "Effect": "Allow",
            "Action": "monitron:ListProjects",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/location": "Seattle"
                }
            }
        }
    ]
}
```

------

For more information, see [IAM JSON Policy Elements: Condition](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) in the *IAM User Guide*.

## Troubleshooting Amazon Monitron Identity and Access
<a name="security_iam_troubleshoot"></a>

Use the following information to help you diagnose and fix common issues that you might encounter when working with Amazon Monitron and IAM.

**Topics**
+ [I Am Not Authorized to Perform an Action in Amazon Monitron](#security_iam_troubleshoot-no-permissions)
+ [I Want to Allow People Outside of My AWS Account to Access My Amazon Monitron Resources](#security_iam_troubleshoot-cross-account-access)

### I Am Not Authorized to Perform an Action in Amazon Monitron
<a name="security_iam_troubleshoot-no-permissions"></a>

If you receive an error that you're not authorized to perform an action, your policies must be updated to allow you to perform the action.

The following example error occurs when the `mateojackson` IAM user tries to use the console to view details about a fictional `my-example-widget` resource but doesn't have the fictional `monitron:GetWidget` permissions.

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: monitron:GetWidget on resource: my-example-widget
```

In this case, the policy for the `mateojackson` user must be updated to allow access to the `my-example-widget` resource by using the `monitron:GetWidget` action.

If you need help, contact your AWS administrator. Your administrator is the person who provided you with your sign-in credentials.

### I Want to Allow People Outside of My AWS Account to Access My Amazon Monitron Resources
<a name="security_iam_troubleshoot-cross-account-access"></a>

You can create a role that users in other accounts or people outside of your organization can use to access your resources. You can specify who is trusted to assume the role. For services that support resource-based policies or access control lists (ACLs), you can use those policies to grant people access to your resources.

To learn more, consult the following:
+ To learn whether Amazon Monitron supports these features, see [How Amazon Monitron Works with IAM](#security_iam_service-with-iam).
+ To learn how to provide access to your resources across AWS accounts that you own, see [Providing access to an IAM user in another AWS account that you own](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html) in the *IAM User Guide*.
+ To learn how to provide access to your resources to third-party AWS accounts, see [Providing access to AWS accounts owned by third parties](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html) in the *IAM User Guide*.
+ To learn how to provide access through identity federation, see [Providing access to externally authenticated users (identity federation)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html) in the *IAM User Guide*.
+ To learn the difference between using roles and resource-based policies for cross-account access, see [Cross account resource access in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) in the *IAM User Guide*.

# Using service-linked roles for Amazon Monitron
<a name="using-service-linked-roles"></a>

Amazon Monitron uses AWS Identity and Access Management (IAM)[ service-linked roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role). A service-linked role is a unique type of IAM role that is linked directly to Amazon Monitron. Service-linked roles are predefined by Amazon Monitron and include all the permissions that the service requires to call other AWS services on your behalf. 

A service-linked role makes setting up Amazon Monitron easier because you don’t have to manually add the necessary permissions. Amazon Monitron defines the permissions of its service-linked roles, and unless defined otherwise, only Amazon Monitron can assume its roles. The defined permissions include the trust policy and the permissions policy, and that permissions policy cannot be attached to any other IAM entity.

For information about other services that support service-linked roles, see [AWS services that work with IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) and look for the services that have **Yes **in the **Service-linked roles** column. Choose a **Yes** with a link to view the service-linked role documentation for that service.

**Topics**
+ [Service-linked role permissions for Amazon Monitron](slr-permissions.md)
+ [Creating a service-linked role for Amazon Monitron](create-slr.md)
+ [Editing a service-linked role for Amazon Monitron](edit-slr.md)
+ [Deleting a service-linked role for Amazon Monitron](delete-slr.md)
+ [Supported regions for Amazon Monitron service-linked roles](slr-regions.md)
+ [AWS managed policies for Amazon Monitron](monitron-managed-policies.md)
+ [Amazon Monitron updates to AWS managed policies](managed-policy-updates.md)

# Service-linked role permissions for Amazon Monitron
<a name="slr-permissions"></a>

Amazon Monitron uses the service-linked role named **AWSServiceRoleForMonitron[\$1\$1SUFFIX\$1]** – Amazon Monitron uses AWSServiceRoleForMonitron to access other AWS services, including Cloudwatch Logs, Kinesis Data Streams, KMS keys, and SSO. For more information about the policy, see [AWSServiceRoleForMonitronPolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSServiceRoleForMonitronPolicy.html) in the *AWS Managed Policy Reference Guide*

The AWSServiceRoleForMonitron[\$1\$1SUFFIX\$1] service-linked role trusts the following services to assume the role:
+ `monitron.amazonaws.com` or `core.monitron.amazonaws.com`

The role permissions policy named MonitronServiceRolePolicy allows Amazon Monitron to complete the following actions on the specified resources:
+ Action: Amazon CloudWatch Logs `logs:CreateLogGroup`, `logs:CreateLogStream` and `logs:PutLogEvents` on the CloudWatch log group, log stream, and log events under /aws/monitron/\$1 path

The role permissions policy named MonitronServiceDataExport-KinesisDataStreamAccess allows Amazon Monitron to complete the following actions on the specified resources:
+ Action: Amazon Kinesis `kinesis:PutRecord`, `kinesis:PutRecords`, and `kinesis:DescribeStream` on the Kinesis data stream specified for live data export.
+ Action: Amazon AWS KMS `kms:GenerateDataKey` for the AWS KMS key used by the specified Kinesis data stream for live data export
+ Action: Amazon IAM `iam:DeleteRole` to delete the service-linked role itself when not used

The role permissions policy named AWSServiceRoleForMonitronPolicy allows Amazon Monitron to complete the following actions on the specified resources:
+ Action: IAM Identity Center `sso:GetManagedApplicationInstance`, `sso:GetProfile`, `sso:ListProfiles`, `sso:AssociateProfile`, `sso:ListDirectoryAssociations`, `sso:ListProfileAssociations`, `sso-directory:DescribeUsers`, `sso-directory:SearchUsers`, `sso:CreateApplicationAssignment`, and `sso:ListApplicationAssignments` to access IAM Identity Center users associated with the project

**Note**  
 Add `sso:ListProfileAssociations` to allow Amazon Monitron to list associations with the application instance underlying the Amazon Monitron Project. 

You must configure permissions to allow an IAM entity (such as a user, group, or role) to create, edit, or delete a service-linked role. For more information, see [Service-linked role permissions](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions) in the *IAM User Guide*.

# Creating a service-linked role for Amazon Monitron
<a name="create-slr"></a>

You don't need to manually create a service-linked role. When you enable a feature requiring your permissions to call other AWS services on your behalf in Amazon Monitron in the AWS Management Console, Amazon Monitron creates the service-linked role for you.

# Editing a service-linked role for Amazon Monitron
<a name="edit-slr"></a>

Amazon Monitron does not allow you to edit the AWSServiceRoleForMonitron[\$1\$1SUFFIX\$1] service-linked role. After you create a service-linked role, you cannot change the name of the role because various entities might reference the role. However, you can edit the description of the role using IAM. For more information, see [Editing a service-linked role](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role) in the *IAM User Guide*.

# Deleting a service-linked role for Amazon Monitron
<a name="delete-slr"></a>

You don't need to manually delete the AWSServiceRoleForMonitron[\$1\$1SUFFIX\$1] role. When you delete a Amazon Monitron project that you created through Amazon Monitron in the AWS Management Console, Amazon Monitron cleans up the resources and deletes the service-linked role for you.

You can also use the IAM console, the AWS CLI or the AWS API to manually delete the service-linked role. To do this, you must first manually clean up the resources for your service-linked role and then you can manually delete it.

**Note**  
If the Amazon Monitron service is using the role when you try to delete the resources, then the deletion might fail. If that happens, wait for a few minutes and try the operation again.

**To delete Amazon Monitron resources used by the AWSServiceRoleForMonitron[\$1\$1SUFFIX\$1]**
+ Delete Amazon Monitron projects using this service-linked role.

**To manually delete the service-linked role using IAM**

Use the IAM console, the AWS CLI, or the AWS API to delete the AWSServiceRoleForMonitron[\$1\$1SUFFIX\$1] service-linked role. For more information, see [Deleting a service-linked role](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role) in the *IAM User Guide*.

# Supported regions for Amazon Monitron service-linked roles
<a name="slr-regions"></a>

Amazon Monitron supports using service-linked roles in all of the regions where the service is available. For more information, see [AWS Regions and Endpoints](https://docs.aws.amazon.com//general/latest/gr/rande.html#connect_region).

Amazon Monitron does not support using service-linked roles in every region where the service is available. You can use the AWSServiceRoleForMonitron[\$1\$1SUFFIX\$1] role in the following regions.


****  

| Region name | Region identity | Support in Amazon Monitron | 
| --- | --- | --- | 
| US East (N. Virginia) | us-east-1 | Yes | 
| US East (Ohio) | us-east-2 | No | 
| US West (N. California) | us-west-1 | No | 
| US West (Oregon) | us-west-2 | No | 
| Asia Pacific (Mumbai) | ap-south-1 | No | 
| Asia Pacific (Osaka) | ap-northeast-3 | No | 
| Asia Pacific (Seoul) | ap-northeast-2 | No | 
| Asia Pacific (Singapore) | ap-southeast-1 | No | 
| Asia Pacific (Sydney) | ap-southeast-2 | Yes | 
| Asia Pacific (Tokyo) | ap-northeast-1 | No | 
| Canada (Central) | ca-central-1 | No | 
| Europe (Frankfurt) | eu-central-1 | No | 
| Europe (Ireland) | eu-west-1 | Yes | 
| Europe (London) | eu-west-2 | No | 
| Europe (Paris) | eu-west-3 | No | 
| South America (São Paulo) | sa-east-1 | No | 
| AWS GovCloud (US) | us-gov-west-1 | No | 

# AWS managed policies for Amazon Monitron
<a name="monitron-managed-policies"></a>

You can attach AmazonMonitronFullAccess to your IAM entities. This policy grants *administrative* permissions that allow access to all Amazon Monitron resources and operations.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:CreateServiceLinkedRole",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:AWSServiceName": "monitron.amazonaws.com"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "monitron:*"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:ListKeys",
                "kms:DescribeKey",
                "kms:ListAliases"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "kms:CreateGrant",
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "monitron.*.amazonaws.com"
                    ]
                },
                "Bool": {
                    "kms:GrantIsForAWSResource": true
                }
            }
        },
        {
            "Sid": "AWSSSOPermissions",
            "Effect": "Allow",
            "Action": [
                "organizations:DescribeAccount",
                "organizations:DescribeOrganization",
                "ds:DescribeDirectories",
                "ds:DescribeTrusts"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "kinesis:DescribeStream",
                "kinesis:ListStreams"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "logs:DescribeLogGroups",
                "logs:DescribeLogStreams",
                "logs:GetLogEvents",
                "logs:CreateLogGroup"
            ],
            "Resource": "arn:aws:logs:*:*:log-group:/aws/monitron/*"
        }
    ]
}
```

------

# Amazon Monitron updates to AWS managed policies
<a name="managed-policy-updates"></a>

View details about updates to AWS managed policies for Amazon Monitron since this service began tracking these changes. For automatic alerts about changes to this page, subscribe to the RSS feed on the Amazon Monitron document history page.


| Change | Description | Date | 
| --- | --- | --- | 
|  AWSServiceRoleForMonitronPolicy - Update to an existing policy  |  Added `sso:CreateApplicationAssignment` and `sso:ListApplicationAssignments` to [role permissions policy](https://docs.aws.amazon.com/Monitron/latest/user-guide/using-service-linked-roles.html).  | September 30, 2024 | 
|  AmazonMonitronFullAccess - Update to an existing policy  |  Amazon Monitron added permissions to describe and list Kinesis Data Streams, and describe get, and create CloudWatch log groups, log streams, and log events.You must use these permissions to use the Amazon Monitron console to display information about Kinesis Data Streams and CloudWatch Logs.  | June 8, 2022 | 

# Logging and Monitoring in Amazon Monitron
<a name="monitron-logging"></a>

Monitoring is an important part of maintaining the reliability, availability, and performance of your Amazon Monitron applications. To monitor Amazon Monitron console and mobile app actions, you can use AWS CloudTrail. 

CloudTrail logs provide a record of actions taken by a user, role, or an AWS service in Amazon Monitron. Using the information collected by CloudTrail, you can determine the request that was made to Amazon Monitron, the IP address from which the request was made, who made the request, when it was made, and additional details. For more information, see [Logging Amazon Monitron actions with AWS CloudTrail](logging-using-cloudtrail.md).

# Compliance Validation for Amazon Monitron
<a name="monitron-compliance"></a>

To learn whether an AWS service is within the scope of specific compliance programs, see [AWS services in Scope by Compliance Program](https://aws.amazon.com/compliance/services-in-scope/) and choose the compliance program that you are interested in. For general information, see [AWS Compliance Programs](https://aws.amazon.com/compliance/programs/).

You can download third-party audit reports using AWS Artifact. For more information, see [Downloading Reports in AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html).

Your compliance responsibility when using AWS services is determined by the sensitivity of your data, your company's compliance objectives, and applicable laws and regulations. For more information about your compliance responsibility when using AWS services, see [AWS Security Documentation](https://docs.aws.amazon.com/security/).

# Infrastructure Security in Amazon Monitron
<a name="infrastructure-security"></a>

As a managed service, Amazon Monitron is protected by AWS global network security. For information about AWS security services and how AWS protects infrastructure, see [AWS Cloud Security](https://aws.amazon.com/security/). To design your AWS environment using the best practices for infrastructure security, see [Infrastructure Protection](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html) in *Security Pillar AWS Well‐Architected Framework*.

You use AWS published API calls to access Amazon Monitron through the network. Clients must support the following:
+ Transport Layer Security (TLS). We require TLS 1.2 and recommend TLS 1.3.
+ Cipher suites with perfect forward secrecy (PFS) such as DHE (Ephemeral Diffie-Hellman) or ECDHE (Elliptic Curve Ephemeral Diffie-Hellman). Most modern systems such as Java 7 and later support these modes.

# Security Best Practices for Amazon Monitron
<a name="security-best-practices"></a>

Amazon Monitron provides a number of security features to consider as you develop and implement your own security policies. The following best practices are general guidelines and don’t represent a complete security solution. Because these best practices might not be appropriate or sufficient for your environment, treat them as helpful considerations rather than prescriptions.

The following best practices for Amazon Monitron can help prevent security incidents:
+ When creating an AWS IAM Identity Center (IAM Identity Center) directory of users for Amazon Monitron enable multi-factor authentication (MFA) for the directory for better directory security.
+ Be aware that all project and site admins using the Amazon Monitron mobile app will have read access to all users in your organization who are listed in the user directory you choose when setting up your project. We strongly recommend using an isolated directory if you want to limit access to user organization information.
+ Because of the danger of phishing attacks, in which an attacker sends an email impersonating a Amazon Monitron project invitation email to your users, warn users to make sure that the directory name is visible on the login screen before they enter their sign-in credentials.
+ Because the Amazon Monitron mobile app runs on a smartphone and has access to your project, have all users enable screen lock to protect access when not in use.