Search for Well Architected Advice
Define access requirements
Managing permissions effectively is vital for maintaining security in your AWS environment. Clearly defining access requirements ensures that only authorized users and machines can interact with resources, reducing the risk of unauthorized access and potential data breaches.
Best Practices
Principle of Least Privilege
- Grant permissions based on the minimum required for users and machines to perform their functions. This reduces the risk of abuse or accidental exposure of sensitive resources.
- Regularly review and adjust permissions as roles change or become obsolete to ensure that unnecessary access is removed.
- Use IAM policies that explicitly deny permissions that are not allowed, which helps in tightening security further.
Role-Based Access Control (RBAC)
- Define roles for different job functions or application components and assign permissions to these roles instead of individual identities. This simplifies management of permissions.
- Ensure roles are properly documented and regularly reviewed to verify that they align with the current access requirements of your organization.
- Utilize AWS IAM roles for machines and services to abstract permissions from users and prevent misuse.
Identity Management Best Practices
- Implement strong identity verification methods like multi-factor authentication (MFA) for users accessing sensitive resources.
- Use AWS Single Sign-On (SSO) where applicable to centralize access management and reduce credential sprawl.
- Deploy identity federation to integrate external identity providers, allowing existing credentials to be used without creating new ones.
Audit and Monitor Access
- Enable AWS CloudTrail to log all IAM and resource access, which assists in monitoring for unauthorized access attempts and understanding activity patterns.
- Utilize AWS Config to track changes to permissions over time and ensure compliance with your defined access requirements.
- Regularly conduct access reviews and audit logs to identify anomalous behavior or permissions that may no longer be necessary.
Questions to ask your team
- Have you documented the access requirements for all components of your workload?
- Do you regularly review and update these access requirements based on changes in your workload or organization?
- Are you using least privilege principles to grant access to resources?
- Have you defined user roles and responsibilities clearly for both human and machine identities?
- Is there a process in place to audit access permissions and ensure compliance with your defined access requirements?
- How do you handle access requests and approvals?
- Are you leveraging AWS services such as IAM or AWS SSO to manage identities and permissions?
- Have you implemented multi-factor authentication (MFA) for sensitive access points?
Who should be doing this?
Security Architect
- Define and document access requirements for all workload components.
- Identify the appropriate identity types (e.g., IAM users, roles, federated identities).
- Establish methods for authentication and authorization.
DevOps Engineer
- Implement access controls based on defined requirements.
- Maintain and update permission sets as workload components evolve.
- Ensure proper logging and monitoring of access to resources.
Compliance Officer
- Review and validate access requirements to ensure compliance with regulations.
- Coordinate audits for access control policies.
- Provide recommendations for improvement based on compliance findings.
Identity and Access Management (IAM) Specialist
- Configure IAM policies and roles according to access requirements.
- Monitor and manage IAM resources and user permissions.
- Provide guidance and training on identity management best practices.
What evidence shows this is happening in your organization?
- Access Management Policy Template: A template for creating an access management policy that outlines who has access to specific resources and under what conditions. This document should define roles, responsibilities, and the process for granting and revoking access.
- Role-Based Access Control (RBAC) Matrix: A matrix that defines roles within the organization and maps these roles to specific permissions required for accessing AWS resources. This helps in visualizing and managing who can access what.
- Access Control Checklist: A checklist to ensure that all access control measures are implemented and verified. It includes steps for defining access requirements, reviewing permissions, and ensuring compliance with security policies.
- Identity and Access Management (IAM) Strategy Guide: A guide that provides best practices for implementing IAM in AWS, including detailed instructions on defining access requirements, choosing authentication methods, and regularly reviewing permissions.
- Authentication & Authorization Diagram: A diagram illustrating the authentication and authorization flow for users and machines accessing AWS resources. This visual aid helps in understanding the security posture of the workload.
Cloud Services
AWS
- AWS Identity and Access Management (IAM): IAM allows you to manage permissions for people and AWS services, enabling precise access control to your AWS resources.
- AWS Organizations: Helps you manage multiple AWS accounts and apply policies across those accounts, ensuring proper access management.
- AWS Single Sign-On (SSO): AWS SSO simplifies access management by allowing users to log in to multiple accounts and business applications from a single portal.
- AWS Resource Access Manager (RAM): Enables you to share AWS resources across accounts securely, defining who can access what resources.
Azure
- Azure Active Directory (AD): Azure AD is a cloud-based identity and access management service that helps manage permissions and access to applications.
- Azure Role-Based Access Control (RBAC): Azure RBAC allows you to assign roles to users, groups, and applications, providing fine-grained access to resources.
- Azure Policy: Azure Policy helps enforce organizational rules and ensure compliance by defining policies for resource access.
Google Cloud Platform
- Identity and Access Management (IAM): GCP IAM allows you to control who (identity) has what access (roles) to which resources, helping manage permissions effectively.
- Cloud Identity: Cloud Identity is an identity as a service (IDaaS) solution for managing user identities and access to GCP resources.
- Resource Manager: This service helps you manage hierarchy and permissions for GCP resources, ensuring proper access for users and services.
Question: How do you manage permissions for people and machines?
Pillar: Security (Code: SEC)