

# AMS Advanced Developer mode
<a name="developer-mode-section"></a>

**Topics**
+ [Getting started with AMS Advanced Developer mode](developer-mode-implement.md)
+ [Security and compliance in Developer mode](developer-mode-security-and-compliance.md)
+ [Change management in Developer mode](developer-mode-change-management.md)
+ [Provisioning infrastructure in AMS Developer mode](developer-mode-provisioning.md)
+ [Detective controls in AMS Developer mode](developer-mode-detective-controls.md)
+ [Logging, monitoring, and event management in AMS Developer mode](developer-mode-logging.md)
+ [Incident management in AMS Developer mode](developer-mode-incident-management.md)
+ [Patch management in AMS Developer mode](developer-mode-patch-management.md)
+ [Continuity management in AMS Developer mode](developer-mode-continuity.md)
+ [Security and access management in AMS Developer mode](developer-mode-security-and-access.md)

AWS Managed Services (AMS) Developer mode uses elevated permissions in AMS Advanced Plus and Premium accounts to provision and update AWS resources outside of the AMS Advanced change management process. AMS Advanced Developer mode does this by leveraging native AWS API calls within the AMS Advanced Virtual Private Cloud (VPC), enabling you to design and implement infrastructure and applications in your managed environment.

When using an account that has Developer mode enabled, continuity management, patch management, and change management are provided for resources provisioned through the AMS Advanced change management process or by using an AMS Amazon Machine Image (AMI). However, these AMS management features are not offered for resources provisioned through native AWS APIs. 

You are responsible for monitoring infrastructure resources that are provisioned outside of the AMS Advanced change management process. Developer mode is compatible with both production and non-production workloads. With elevated permissions, you have an increased responsibility to ensure adherence to internal controls.

**Important**  
Resources that you create using Developer mode can be managed by AMS Advanced only if they are created using AMS Advanced change management processes.

Developer mode is one of the AMS Advanced modes you can employ. For more information, see [Modes overview](ams-modes-ug.md).

# Getting started with AMS Advanced Developer mode
<a name="developer-mode-implement"></a>

Learn the various AMS Advanced accounts with AMS Advanced Developer mode and how to successfully implement Developer mode.

**Topics**
+ [Before you begin](developer-mode-faqs.md)
+ [Prerequisites for Developer mode](#developer-mode-implement-prerequisites)
+ [How to implement Developer mode](#developer-mode-implement-steps)
+ [Developer mode permissions](#developer-mode-role)

# Before you begin with AMS Developer mode
<a name="developer-mode-faqs"></a>

Before implementing Developer mode, there are a few things you should know.

AMS Advanced cannot manage existing stacks or resources in a DevMode account that were created outside of the AMS Advanced change management process through requests for change (RFCs). However, while the account is in DevMode, AMS Advanced continues to manage resources provisioned through the AMS Advanced change management process with RFCs.

You cannot start with a DevMode account and later covert it to an AMS Advanced-managed application account.

## Prerequisites for AMS Developer mode
<a name="developer-mode-implement-prerequisites"></a>

The following are the prerequisites for implementing Developer mode: 
+ You must be an AMS Advanced customer with at least one onboarded AMS Advanced Plus or Premium account.
+ Any account you use must be an AMS Advanced Plus or Premium account.
+ **Multi-Account Landing Zone (MALZ)**: You must use the `AWSManagedServicesDevelopmentRole` predefined AWS Identity and Access Management (IAM) role. You request this role. The next section describes how to acquire Developer mode permissions.
+ **Single-Account Landing Zone (SALZ)**: You must use the `customer_developer_role` predefined AWS Identity and Access Management (IAM) role. You request this role. The next section describes how to acquire Developer mode permissions.

## How to implement AMS Advanced Developer mode
<a name="developer-mode-implement-steps"></a>

You implement Developer mode by requesting that your eligible AMS Advanced account be provisioned with the predefined IAM role:
+ **MALZ**: `AWSManagedServicesDevelopmentRole`
+ **SALZ**: `customer_developer_role`

You then assign the role to the relevant users in your federated network.

AMS Advanced recommends that you ensure that your use of Developer mode complies with your internal control frameworks and standards as Developer mode creates two vectors of change: AMS Advanced change management for AMS Advanced-managed resources and customer-managed role federation for resources that you, as our customer, manage. While AMS Advanced processes remain compliant with our declarations, customer processes and control frameworks might need to be updated.

**To implement Developer mode in your AMS Advanced account**

1. Confirm the account that you want to use with Developer mode meets the requirements listed in [Prerequisites for AMS Developer mode](#developer-mode-implement-prerequisites).

1. Submit a request for change (RFC) using the change type (CT) Management \$1 Managed account \$1 Developer mode \$1 Enable (managed automation). For an example of how to use this CT, see [ Developer Mode \$1 Enable (Managed Automation)](https://docs.aws.amazon.com/managedservices/latest/ctref/management-managed-developer-mode-enable-review-required.html).

   After the CT is processed, the predefined IAM role, (`AWSManagedServicesDevelopmentRole` for **MALZ**, `customer_developer_role` for **SALZ**), is provisioned in the requested account.

1. Assign the appropriate role to the users that require Developer mode access using your internal federation process.

   AMS Advanced recommends that you limit access to prevent unwanted or unapproved provisioning of, or changes to, resources.

## AMS Advanced Developer mode permissions
<a name="developer-mode-role"></a>

The predefined role (`AWSManagedServicesDevelopmentRole` for **MALZ**, `customer_developer_role` for **SALZ**), grants permission to create application infrastructure resources within the AMS Advanced VPC, including IAM roles, while restricting access to *shared service* components that are operated by AMS Advanced (for example, management hosts, domain controllers, Trend Micro EPS, bastions, and unsupported AWS services). The role also restricts access to the following AWS services: Amazon GuardDuty, AWS Organizations, AWS Directory Service APIs, and AMS Advanced logs.

While the role allows you to create additional IAM roles, the same permissions boundaries included in Developer mode access are enforced on any IAM role created by the `AWSManagedServicesDevelopmentRole`.

# Security and compliance in Developer mode
<a name="developer-mode-security-and-compliance"></a>

Security and compliance is a shared responsibility between AMS Advanced and you as our customer. AMS Advanced Developer mode shifts the shared responsibility to you for resources provisioned outside of the change management process or provisioned through change management but updated with Developer mode permissions. For more information about shared responsibility, see [AWS Managed Services](https://aws.amazon.com/managed-services/).

**Cautions:**
+ DevMode allows you and your authorized team to bypass the deny-by-default principles at the core of AMS security. The advantages, self-service, less time waiting for AMS must be weighed against the disadvantages, anyone can perform unexpected and destructive actions without the knowledge of their security team. Automated change types to enable Dev mode and Direct Change mode are exposed, and any authorized person in your org can run these CTs and enable these modes.
+ You are responsible for managing the permissions of CT execution from your user base.
+ AMS doesn’t manage CT execution permissions

**Recommendations:**
+ **Protect**
  + Customers can prevent access to this CT via permissioning, see [Restrict permissions with IAM role policy statements](https://docs.aws.amazon.com/managedservices/latest/userguide/request-iam-user.html)
  + Prevent access to this CT by implementing a proxy such as an ITSM system
  + Utilize service control policies (SCPs) that prevent policies and behaviors as needed, see [AMS Preventative and Detective Controls Library](https://docs.aws.amazon.com/managedservices/latest/userguide/scp-library.html)
+ **Detect**
  + Monitor your RFC’s for these CTs (Enable developer mode ct-1opjmhuddw194 and Direct change mode, Enable ct-3rd4781c2nnhp) being executed and respond accordingly
  + Review and/or audit your accounts for the presence of the IAM resources to identify those accounts where Developer mode or Direct Change mode have been deployed
+ **Respond**
  + Remove accounts in Developer mode as needed

## Security in Developer mode
<a name="developer-mode-security"></a>

AMS Advanced offers additional value with a prescriptive landing zone, a change management system, and access management. When using Developer mode the security value of AMS Advanced is persisted by using the same account configuration of standard AMS Advanced accounts that establishes the baseline AMS Advanced security hardened network. The network is protected by the permissions boundary enforced in the role (`AWSManagedServicesDevelopmentRole` for **MALZ**, `customer_developer_role` for **SALZ**), which restricts the user from breaking down the parameter protections established when the account is set up.

For example, users with the role can access Amazon Route 53 but AMS Advanced internal hosted zone is restricted. The same permissions boundaries are enforced on an IAM role created by the `AWSManagedServicesDevelopmentRole`, enforcing permissions boundaries on the `AWSManagedServicesDevelopmentRole` that restricts the user from breaking down the parameter protections established when the account is onboarded to AMS Advanced.

## Compliance in Developer mode
<a name="developer-mode-compliance"></a>

Developer mode is compatible with both production and non-production workloads. It's your responsibility to ensure adherence to any compliance standards (for example, PHI, HIPAA, PCI), and to ensure that the use of Developer mode complies with your internal control frameworks and standards.

# Change management in Developer mode
<a name="developer-mode-change-management"></a>

Change management is the process the AMS Advanced service uses to implement requests for change. A request for change (RFC) is a request created by either you or AMS Advanced through the AMS Advanced interface to make a change to your managed environment and includes a change type (CT) ID for a particular operation. For more information, see [Change management modes](using-change-management.md). 

Change management is not enforced in AMS Advanced accounts where Developer mode permissions are granted. Users who have been granted Developer mode permission with the IAM role (`AWSManagedServicesDevelopmentRole` for **MALZ**, `customer_developer_role` for **SALZ**), can use native AWS API access to provision and make changes to resources in their AMS Advanced accounts. Users who do not have the appropriate role in these accounts must use the AMS Advanced change management process to make changes. 

**Important**  
Resources that you create using Developer mode can be managed by AMS Advanced only if they are created using AMS Advanced change management processes. Requests for changes submitted to AMS Advanced for resources created outside of the AMS Advanced change management process are rejected by AMS Advanced because they must be handled by you.

## Self-service provisioning services API restrictions
<a name="developer-mode-ssps-restrictions"></a>

All AMS Advanced self-provisioned services are supported with Developer mode. Access to self-provisioned services are subject to the limitations outlined in the respective user guide sections for each. If a self-provisioned service is not available with your Developer mode role, you can request an updated role through the Developer mode change type.

The following services do not provide full access to service APIs:


**Self-Provisioned Services Restricted in Developer mode**  

| Service | Notes | 
| --- | --- | 
|  Amazon API Gateway | All Gateway APIs calls are allowed except `SetWebACL`. | 
|  Application Auto Scaling | Can only register or deregister scalable targets, and put or delete a scaling policy. | 
|  AWS CloudFormation | Can't access or modify CloudFormation stacks that have a name prefixed with `mc-`. | 
|  AWS CloudTrail | Can't access or modify CloudTrail resources that have a name prefixed with `ams-` and/or `mc-`. | 
|  Amazon Cognito (User Pools) | Can't associate software tokens. Can't create user pools, user import jobs, resource servers, or identity providers. | 
|  AWS Directory Service | Only the following Directory Service actions are required by `Connect` and `WorkSpaces` services. All other Directory Service actions are denied by the Developer mode permission boundary policy: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/managedservices/latest/userguide/developer-mode-change-management.html) In single-account landing zone accounts, the boundary policy explicitly denies access to the AMS Advanced managed directory used by AMS Advanced for maintaining access to dev-mode enabled accounts. | 
|  Amazon Elastic Compute Cloud | Can't access Amazon EC2 APIs that contain the string: `DhcpOptions`, `Gateway`, `Subnet`, `VPC`, and `VPN`. Can't access or modify Amazon EC2 resources that have a tag prefixed with `AMS`, `mc`, `ManagementHostASG`, and/or `sentinel`. | 
|  Amazon EC2 (Reports) | Only view access is granted (cannot modify). Note: Amazon EC2 Reports is moving. The **Reports** menu item will be removed from the Amazon EC2 console navigation menu. To view your Amazon EC2 usage reports after it has been removed, use the AWS Billing and Cost Management console. | 
|  AWS Identity and Access Management (IAM) | Can't delete existing permission boundaries, or modify IAM user password policies. Can't create or modify IAM resources unless you are using the correct IAM role (`AWSManagedServicesDevelopmentRole` for **MALZ**, `customer_developer_role` for **SALZ**)). Can't modify IAM resources that are prefixed with: `ams`, `mc`, `customer_deny_policy`, and/or `sentinel`. When creating a new IAM resource (role, user, or group), the permission boundary (**MALZ**: `AWSManagedServicesDevelopmentRolePermissionsBoundary`, **SALZ**: `ams-app-infra-permissions-boundary`) must be attached. | 
|  AWS Key Management Service (AWS KMS) | Can't access or modify AMS Advanced-managed KMS keys. | 
|  AWS Lambda | Can't access or modify AWS Lambda functions that are prefixed with `AMS`. | 
|  CloudWatch Logs | Can't access CloudWatch log streams that a name prefixed with: `mc`, `aws`, `lambda`, and/or `AMS`. | 
|  Amazon Relational Database Service (Amazon RDS) | Can't access or modify Amazon Relational Database Service (Amazon RDS) databases (DBs) that have a name prefixed with: `mc-`. | 
|  AWS Resource Groups | Can only access `Get`, `List`, and `Search` Resource Group API actions. | 
|  Amazon Route 53 | Can't access or modify Route53 AMS Advanced-maintained resources. | 
|  Amazon S3 | Can't access Amazon S3 buckets that have a name prefixed with: `ams-*`, `ams`, `ms-a`, or `mc-a`. | 
|  AWS Security Token Service | The only security token service API allowed is `DecodeAuthorizationMessage`. | 
|  Amazon SNS | Can't access SNS topics that have a name prefixed with: `AMS-`, `Energon-Topic`, or `MMS-Topic`. | 
|  AWS Systems Manager Manager (SSM) | Can't modify SSM parameters that are prefixed with `ams`, `mc`, or `svc`. Can't use the SSM API `SendCommand` against Amazon EC2 instances that have a tag prefixed with `ams` or `mc`. | 
|  AWS Tagging | You only have access to AWS Tagging API actions that are prefixed with `Get`. | 
|  AWS Lake Formation | The following AWS Lake Formation API actions are denied: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/managedservices/latest/userguide/developer-mode-change-management.html) | 
|  Amazon Elastic Inference | You can only call the Elastic Inference API action `elastic-inference:Connect`. This permission is included in the `customer_sagemaker_admin_policy` that is attached to the `customer_sagemaker_admin_role`. This action gives you access to the Elastic Inference accelerator. | 
|  AWS Shield | No access to any of this services APIs or console. | 
|  Amazon Simple Workflow Service | No access to any of this services APIs or console. | 

# Provisioning infrastructure in AMS Developer mode
<a name="developer-mode-provisioning"></a>

Users that don't have the Developer mode IAM role, `AWSManagedServicesDevelopmentRole`, in accounts where Developer mode is enabled, are required to follow the AMS Advanced change management process that leverages AMS Advanced AMIs. Users with correct role (**MALZ**: `AWSManagedServicesDevelopmentRole`, **SALZ**: `customer_developer_role`) can use the AMS Advanced change management system and AMS Advanced AMIs but are not required to. 

**Note**  
An AWS AMI, that has not been processed through AMS Advanced workload ingestion, or created in an AMS Advanced account, will not include AMS Advanced-required configurations.



# Detective controls in AMS Developer mode
<a name="developer-mode-detective-controls"></a>

This section has been redacted because it contains sensitive AMS security-related information. This information is available through the AMS console **Documentation**. To access AWS Artifact, you can contact your CSDM for instructions or go to [Getting Started with AWS Artifact](https://aws.amazon.com/artifact/getting-started).

# Logging, monitoring, and event management in AMS Developer mode
<a name="developer-mode-logging"></a>

Logging, monitoring, and event management aren't available for resources provisioned outside of the AMS Advanced change management process, or for resources provisioned through change management and then altered by an account using Developer mode permissions.

# Incident management in AMS Developer mode
<a name="developer-mode-incident-management"></a>

No change to incident response times. Incident resolution is a best effort for resources provisioned outside the change management process, or resources provisioned through change management and then altered by an account using Developer mode permissions.

**Note**  
AMS service level agreement (SLA) does not apply for resources created or updated outside of the AMS change management system (requests for change or RFCs), Developer mode included; therefore, resources updated or created in Developer mode are automatically degraded to a P3 and AMS support is best effort.

# Patch management in AMS Developer mode
<a name="developer-mode-patch-management"></a>

Patch management is not available for resources provisioned outside of the AMS Advanced change management process, or for resources provisioned through change management and then altered by an account using Developer mode permissions. Patching times:
+ For a critical security update: Within 10 business days of release by the vendor for resources provisioned through change management and then altered by an account using Developer mode permissions.
+ For an important update: Within 2 months of release by the vendor for resources provisioned through change management and then altered by an account using Developer mode permissions.

# Continuity management in AMS Developer mode
<a name="developer-mode-continuity"></a>

Continuity management is not available for resources provisioned outside of the AMS Advanced change management process, or for resources provisioned through change management and then altered by an account using Developer mode permissions.

Environment recovery initiation time can take up to 12 hours for resources provisioned outside of the AMS Advanced change management process, or for resources provisioned through change management and then altered by an account using Developer mode permissions.

# Security and access management in AMS Developer mode
<a name="developer-mode-security-and-access"></a>

Anti-malware protection is your responsibility for resources provisioned outside of the AMS Advanced change management process, or for resources provisioned through change management and then altered by an account using Developer mode permissions. Access to Amazon Elastic Compute Cloud (Amazon EC2) instances not provisioned through AMS Advanced change management might be controlled by key pairs instead of providing federated access.