📜  AWS | IAM角色(1)

📅  最后修改于: 2023-12-03 15:13:34.746000             🧑  作者: Mango

AWS | IAM角色

什么是AWS IAM角色?

AWS Identity and Access Management(IAM)是AWS中一种身份验证和授权的服务。IAM角色是AWS中一种授权机制,它允许在不暴露可登录AWS账户的访问密钥的情况下,为AWS资源分配权限。IAM角色旨在为实例、Lambda函数、Amazon ECS任务等服务分配临时的安全凭证。

IAM角色的优势
  • 安全:IAM角色可以授权不同的IAM用户、服务和资源访问AWS资源。AWS IAM角色保证了资源的安全性。
  • 灵活:IAM角色可以灵活地管理不同的IAM用户、服务和资源,具有更好的扩展性和可维护性。
  • 节省时间和成本:IAM角色允许编排和管理AWS资源的权限,并降低了管理这些权限的成本和工作量。
如何创建IAM角色?
IAM角色创建步骤

您可以按照以下步骤创建IAM角色:

  1. 登录AWS Console。
  2. 转到AWS IAM控制台。
  3. 点击“Roles”。
  4. 点击“Create role”。
  5. 选择您要为其创建IAM角色的AWS资源,例如EC2或Lambda。
  6. 选择允许您分配到AWS资源的经过身份验证的AWS服务或实体。
  7. 配置IAM角色权限。
  8. 设置IAM角色名称。
  9. 点击“Create role”。
例子
1. 登录AWS Console。
2. 转到AWS IAM控制台。
3. 点击“Roles”。
4. 点击“Create role”。
5. 选择您要为其创建IAM角色的AWS资源,例如EC2或Lambda。

![Select Role Type](https://i.imgur.com/e1Q6UzB.png)

6. 选择允许您分配到AWS资源的经过身份验证的AWS服务或实体。

![Choose Role](https://i.imgur.com/fjMQ7V2.png)

7. 配置IAM角色权限。

![Add Permissions](https://i.imgur.com/vi2anm0.png)

8. 设置IAM角色名称。

![Set Role Name](https://i.imgur.com/9fGO1Py.png)

9. 点击“Create role”。

![Create Role](https://i.imgur.com/amnJwr8.png)
如何使用IAM角色?
IAM角色的使用限制

IAM角色有以下使用限制:

  1. 仅限于在AWS Resource上下文中使用
  2. IAM角色不能直接授权IAM用户,他们必须附加到EC2实例、Lambda函数、Amazon ECS任务等AWS资源。
  3. IAM角色的使用权限只限于分配给它们的AWS资源。
如何通过AWS SDK使用IAM角色?

在使用AWS SDK的应用程序中,IAM角色可以通过整合AWS SDK和AWS临时凭证服务实现。AWS临时凭证服务允许角色在向AWS服务发出请求时使用IAM角色授权而避免使用静态凭证。

Examples:

# Python example of using IAM Roles
import boto3
session = boto3.Session()
sts = session.client('sts')
response = sts.assume_role(
    RoleArn='arn:aws:iam::012345678901:role/WebDMZRole',
    RoleSessionName='AssumeRoleSession1'
)

# Java example of using IAM Roles
AssumeRoleRequest request = new AssumeRoleRequest()
  .withRoleArn("arn:aws:iam::012345678901:role/WebDMZRole")
  .withRoleSessionName("AssumeRoleSession1");
AWSSecurityTokenService sts = AWSSecurityTokenServiceClientBuilder.standard().build();
AssumeRoleResult response = sts.assumeRole(request);

如何使用IAM角色与其他AWS服务交互?

IAM角色可以使用受AWS支持的许多服务与其他AWS服务交互。AWS临时凭证服务将IAM角色授权分配给一个AWS资源,并允许该角色在请求时使用授权。

Examples:

# Using an IAM Role with Amazon EC2
aws ec2 run-instances --image-id ami-0b5d8ee8edb48150f --count 1 --instance-type t2.micro --iam-instance-profile Name=MyRole

# Using an IAM Role with Amazon S3
aws s3 ls s3://examplebucket --profile MyRole