Which solution will meet these requirements?
Share the IAM user credentials for each development team member with the rest of the team to simplify access management and to streamline development workflows.
Define IAM roles that have fine-grained permissions based on the principle of least privilege. Assign an IAM role to each developer.
Create IAM access keys to grant programmatic access to AWS resources. Allow only developers to interact with AWS resources through API calls by using the access keys.
Create an AWS Cognito user pool. Grant developers access to AWS resources by using the user pool.
Explanations:
Sharing IAM user credentials undermines security by increasing the risk of unauthorized access. Each user should have unique credentials for accountability and traceability.
Defining IAM roles with fine-grained permissions based on the principle of least privilege ensures that developers have only the access necessary to perform their tasks, minimizing security risks.
While IAM access keys allow programmatic access, they can lead to security issues if not managed properly, such as accidental exposure or misuse. IAM roles are preferred for improved security.
AWS Cognito is primarily used for user authentication and federated identities, not for managing permissions for access to AWS resources directly. IAM roles are better suited for fine-grained access control.