Secure Access Control for AWS Instances: Best Practices for DevOps Engineers

Preventing Unauthorized Access to Production Instances in AWS VPC

Prev Question Next Question

Question

You have instances running on your VPC.

You have test, production and development based instances running in the VPC.

You want to ensure that people who are responsible for the development instances don't have the access to work on the production instances to ensure better security.

Using policies, which of the following would be the best way to accomplish this? Choose the correct answer from the options given below.

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B. C. D.

Answer - D.

You can easily add tags which define which instances are production and which are development instances and then ensure these tags are used when controlling access via an IAM policy.

For more information on tagging your resources, please refer to the below link:

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html

The best way to ensure that people responsible for development instances do not have access to production instances is to use an IAM policy with a condition that allows access to only specific instances.

Option A, Launching test and production instances in separate VPCs and using VPC peering, is a good approach for network isolation and security, but it doesn't address the issue of controlling access to the instances.

Option C, launching test and production instances in different Availability Zones and using Multi-Factor Authentication (MFA), is a good approach for improving availability and adding an extra layer of security for accessing instances, but again, it doesn't address the issue of controlling access to specific instances.

Option D, defining tags on test and production servers and adding a condition to the IAM policy, is a possible solution but it requires strict tag management and monitoring. There is a risk of accidentally mis-tagging instances and providing inappropriate access.

Therefore, option B, creating an IAM policy with a condition which allows access to only instances that are used for production or development, is the best way to accomplish the objective. This can be achieved by using a combination of IAM policies and instance tags. The IAM policy can have a condition that allows access only to instances with a specific tag, such as "Environment=Production". The development instances can be tagged as "Environment=Development". This approach ensures that only users with appropriate permissions can access the production instances, while developers can work on development instances without having access to production instances.