要将我的ec2-instance连接到S3或RDS,我通常需要给ec2实例一个具有适当权限的角色,对吗?
如果我在一个SecurityGroup中安装了ec2-instance,在另一个安全组中安装了s3 / RD3,那么不仅仅给出了S3 / RDS角色和ec2的权限了吗?
尝试了解何时应使用角色与安全组,以允许各种AWS资源相互通信。
答案 0 :(得分:3)
请注意EC2和RDS(以及Redshift和Elasticache ...)是VPC中存在的服务器,并通过与这些服务器建立直接网络连接来与这些资源进行交互。因此,您可以使用安全组保护对这些网络的访问。
请注意,您无法了解S3(或DynamoDB或SQS或SNS ...)资源所在的服务器,这些资源未在您的VPC中运行,以及您是否仅通过AWS API与这些资源进行交互。因此,您可以通过AWS身份和访问管理(IAM)保护对这些访问的AWS API。
答案 1 :(得分:3)
角色和安全组有两个不同的用途。
<强>角色强>
角色用于为EC2实例授予执行某些AWS API调用的权限。
它不参与网络安全。
安全组
安全组在网络安全方面发挥作用,他们不参与EC2访问API的权限。
<强> Conslusion 强>
当您需要赋予实例权限以执行API函数(例如访问S3或控制RDS实例(不查询数据))时,请使用EC2角色。
当您需要授予实例访问网络资源的权限时,例如在查询RDS实例中的数据时,请使用安全组。