我尝试通过 fargate 的任务角色访问 aws 服务 rds 和 elasticache redis。
我把服务的完全访问权限连接到任务角色,但是没有连接,于是我通过安全组设置允许了子网,然后就可以连接了。
是不是要设置原有的角色和安全组才可以访问?
还是我没有正确设置角色?
答案1
任务角色中的权限允许访问 AWS API,这将使您的任务能够执行诸如创建新的 RDS 或 ElastiCache 服务器之类的操作。这些 IAM 权限不授予它访问 RDS 或 ElastiCache 服务器的权限,并且添加这些权限肯定不会在网络级别执行任何操作以打开数据库服务器防火墙中的端口。
要连接到您的 RDS 服务器,您需要在该数据库服务器的网络端口上与数据库驱动程序(PostgreSQL、MySQL 或您选择的任何 RDBMS)建立网络连接。同样,要连接到您的 ElastiCache 服务器,您必须使用 Redis 客户端在 Redis 正在监听的端口上建立连接。建立与数据库的连接根本不需要使用任务 IAM 角色,因为它们不使用 AWS API 执行任何操作,而是建立直接数据库网络连接。