AWS 使用CLI将IAM角色附加到现有的EC2实例中

来源:互联网 发布:蓝色大门 知乎 编辑:程序博客网 时间:2024/05/04 04:13

简介


  AWS IAM(身份和访问管理服务)中的角色使您的应用程序在Amazon EC2上能够使用临时的安全凭证自动实现AWS服务的创建,发布和内容修改。使用这样的临时凭证是IAM的最佳做法,因为您不再需要在实例上维护一个或多个长期密钥。对EC2使用IAM角色也无需再使用必须手动或以编程方式管理的长期AWS访问密钥。

  例如,应用程序必须通过 AWS 证书签署 API 请求。因此,如果您是应用程序开发人员,您需要一个策略来为 EC2 实例上运行的应用程序管理证书。您可以安全地将您的 AWS 证书分配至实例,从而允许这些实例上运行的应用程序使用您的证书签署请求,并保护其免受其他用户的影响。但是,要将凭证安全地分配至每项实例有一定难度,尤其是 AWS 以您的名义创建的实例,例如竞价型实例或 Auto Scaling 组中的实例。当您更换 AWS 证书时,您还必须能够更新每项实例上的证书。 IAM 角色能够委托授权以发出 API 请求,而不用创建并分配您的 AWS 证书。详细解决方案,请查阅文档适用于 Amazon EC2 的 IAM 角色。

  最初,IAM角色只能在实例创建设置时添加,这导致了过去创建的实例和忘记添加IAM角色的实例无法使用IAM角色操作实例,从而被迫重新部署实例及应用程序。从现在开始,您可以通过将IAM角色附加到现有的尚未被角色附加的EC2实例,来使用AWS提供的临时安全证书操作EC2实例,您还可以随时替换附加到现有EC2实例的IAM角色。


解决方案


  1. 创建IAM角色

  2. 将IAM角色附加给现有EC2实例(最初没有IAM角色附加)

  3. 更换附加到EC2的IAM角色



  本文假设您已设置AWS命令行界面(CLI),具有创建IAM角色的权限,并具有调用EC2 API的权限。

  操作步骤中所有出现的占位符{Some Words},都应该替换为实际资源名称。


操作步骤


  开始操作之前,请确保您的CLI版本大于等于1.11.48。如果您对当前自己的CLI版本有疑问,可以在命令行中执行以下命令进行版本查询:

$aws --version

命令行版本


一、创建IAM角色

  在从AWS CLI创建IAM角色之前,必须先创建角色信任策略。信任策略允许AWS服务(如EC2)代表您的应用程序承担IAM角色。

  要创建信任策略,请复制以下策略,并将其粘贴到使用名称{YourNewRole}-Trust-Policy.json保存的文本文件中,注意后缀名为.json:

  • AWS中国区
{  "Version": "2012-10-17",  "Statement": [    {      "Effect": "Allow",      "Principal": {        "Service": "ec2.amazonaws.com.cn"      },      "Action": "sts:AssumeRole"    }  ]}
  • AWS全球
{  "Version": "2012-10-17",  "Statement": [    {      "Effect": "Allow",      "Principal": {        "Service": "ec2.amazonaws.com"      },      "Action": "sts:AssumeRole"    }  ]}



  现在您已成功创建信任策略,接下来创建IAM角色{YourNewRole}:

  • 基于信任策略创建IAM角色{ourNewRole},打开命令行并执行以下命令:
$aws iam create-role --role-name {YourNewRole} --assume-role–policy-document file://{FilePath}/{YourNewRole}-Trust-Policy.json

创建IAM角色

  • 给予此IAM角色访问帐户中资源的权限。在本示例中,我假设您的应用程序需要只读访问您帐户中的所有Amazon S3存储桶和存储桶中的对象。因此,您将使用AmazonS3ReadOnlyAccess AWS托管策略。有关AWS托管策略的详细信息,请参阅使用托管策略。在命令行中执行以下命令:
$aws iam attach-role-policy --role-name {YourNewRole} --policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess

赋予权限

  • 创建IAM实例配置文件{YourNewRole-Instance-Profile}。实例配置文件允许EC2将IAM角色{YourNewRole}传递给EC2实例。要了解更多信息,请参阅使用实例配置文件。在命令行中执行以下命令:
$aws iam create-instance-profile --instance-profile-name {YourNewRole-Instance-Profile}$aws iam add-role-to-instance-profile --role-name {YourNewRole} --instance-profile-name {YourNewRole-Instance-Profile}

  至此,您已成功创建IAM角色{YourNewRole}。


二、将IAM角色附加给现有EC2实例(最初没有IAM角色附加)

  您现在可以将IAM角色{YourNewRole}附加到EC2实例{YourInstanceId}:

  • 获取现有EC2实例详细信息(记录InstanceId)。在命令行中执行以下命令:
$aws ec2 describe-instances


  • 将新创建的IAM角色{YourNewRole}的实例配置文件{YourNewRole-Instance-Profile} 附加到您的EC2实例{YourInstanceId}。在命令行中执行以下命令:
$aws ec2 associate-iam-instance-profile --instance-id {YourInstanceId} --iam-instance-profile Name={YourNewRole-Instance-Profile}

附加实例

  • 验证IAM角色是否已附加到实例。在命令行中执行以下命令:
$aws ec2 describe-iam-instance-profile-associations

验证附加

  • 打开AWS EC2控制台,查看实例的描述信息:
    控制台验证

  • 进入EC2实例内,查看实例IAM角色具体信息:

$curl http://169.254.169.254/latest/meta-data/iam/security-credentials/{YourNewRole}

实例验证

  至此,您可以使用IAM角色访问AWS资源来更新应用程序,并把实例中的长期密钥删除。


三、更换附加到EC2的IAM角色

  如果角色的使用需求发生改变,并且您希望通过修改IAM角色来授予EC2实例权限,则可以更换换附加到EC2的IAM角色。但是,这也将修改使用此IAM角色的其他EC2实例的权限。

  将当前附加的IAM角色{YourNewRole}更换为另一个IAM角色,而不终止您的EC2实例:

  • 获取现有EC2实例IAM附加信息(记录AssociationId)。在命令行中执行以下命令:
$aws ec2 describe-iam-instance-profile-associations


  • 更换IAM角色。在命令行中执行以下命令:
$aws ec2 replace-iam-instance-profile-association --association-id {YourCurrentAssociationId} --iam-instance-profile Name={YourReplacementRole-Instance-Profile}

修改IAM角色


  根据AssociationId的值看出,IAM角色的更改已生效。打开AWS EC2控制台,查看实例的描述信息:
控制台验证


  而在上述所有操作的过程中,均未影响EC2的运行状态


更多信息


  文中的操作步骤已于2017年2月17日验证通过,AWS CLI版本1.11.48,在AWS全球和AWS中国区均能正常使用。

New! Attach an AWS IAM Role to an Existing Amazon EC2 Instance by Using the AWS CLI

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 孔雀鱼生不出来怎么办 孔雀鱼苗针尾怎么办 孔雀鱼水温30度怎么办 开车给豪车撞了怎么办 喝酒开车撞伤人怎么办 被车撞伤了怎么办 开车撞人骨折了怎么办 开车撞人后住院怎么办 骑车撞到小孩怎么办 开庭不通知家属怎么办 撞人后对方起诉怎么办 驾驶证被别人盗用怎么办 驾照分数扣完了怎么办 驾照分被盗扣怎么办 驾驶证分数不够扣怎么办 驾驶证分数扣完了怎么办 驾驶证分被骗了怎么办 自驾游穷游睡车上洗衣服怎么办 考生密码忘了怎么办 中国公民在菲律宾遇害怎么办 鞋有胶皮味怎么办 pvc下水管渗漏水怎么办 5s主板漏电怎么办 飞机转机延误了怎么办 家里有小丑雕像怎么办 巴黎被抢了怎么办 博彩公司压护照怎么办 跑马拉松手机怎么办 高跟鞋绒面掉皮怎么办 白裤子透短裤怎么办 崖柏珠子脏了怎么办 唱歌总是气息不足怎么办 幻影wifi闪退怎么办 镇魔曲转职后装备怎么办 起诉离婚对方不同意怎么办 后宫无人岛掉血了怎么办 老公不同意离婚该怎么办 爸妈闹离婚我该怎么办 爸妈闹离婚了我怎么办 苹果迅雷链接打不开怎么办 眼睛有灼烧感怎么办