📅  最后修改于: 2023-12-03 15:13:34.746000             🧑  作者: Mango
AWS Identity and Access Management(IAM)是AWS中一种身份验证和授权的服务。IAM角色是AWS中一种授权机制,它允许在不暴露可登录AWS账户的访问密钥的情况下,为AWS资源分配权限。IAM角色旨在为实例、Lambda函数、Amazon ECS任务等服务分配临时的安全凭证。
您可以按照以下步骤创建IAM角色:
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角色有以下使用限制:
在使用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支持的许多服务与其他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