创建用于 SAML 2.0 联合身份验证的角色(控制台)
您可以使用 SAML 2.0 联合身份验证而不必在 Amazon 账户中创建 IAM 用户。利用身份提供程序 (IdP),您可以管理 Amazon 外部的用户身份,并向这些外部用户身份授予访问您账户中的 Amazon 资源的权限。有关联合和身份提供程序的更多信息,请参阅身份提供程序和联合身份验证。
创建用于 SAML 的角色的先决条件
您必须先完成以下先决条件步骤,然后才能创建用于 SAML 2.0 联合身份验证的角色。
准备创建用于 SAML 2.0 联合的角色
-
在创建用于 SAML 联合的角色之前,必须在 IAM 中创建 SAML 提供商。有关更多信息,请参阅创建 IAM SAML 身份提供程序。
-
为已进行 SAML 2.0 身份验证的用户要担任的角色准备策略。正如任何角色一样,用于 SAML 联合的角色包含两个策略。一个是指定谁可以代入角色的角色信任策略。另一个是指定允许或拒绝联合身份用户访问的 Amazon 操作和资源的 IAM 权限策略。
在为角色创建信任策略时,必须使用三个值来确保只有您的应用程序可以代入此角色:
-
对于
Action元素,使用sts:AssumeRoleWithSAML操作。 -
对于
Principal元素,使用字符串{"Federated":。将ARNofIdentityProvider}替换为您在步骤 1 中创建的 SAML 身份提供程序的 ARN。ARNofIdentityProvider -
对于
Condition元素,使用StringEquals条件测试 SAML 响应中的saml:aud属性是否匹配 Amazon 的 SAML 联合终端节点。
以下示例信任策略是为 SAML 联合身份用户设计的:
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRoleWithSAML", "Principal": {"Federated": "arn:aws:iam::account-id:saml-provider/PROVIDER-NAME"}, "Condition": {"StringEquals": {"SAML:aud": "https://signin.aws.amazon.com/saml"}} } }将主体 ARN 替换为您在 IAM 中创建的 SAML 提供商的实际 ARN。它会具备您自己的账户 ID 和提供商名称。
-
创建用于 SAML 的角色
在完成先决条件步骤后,您可以创建用于基于 SAML 的联合身份验证的角色。
要创建用于基于 SAML 的联合的角色,请执行以下操作
登录 Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/
。 -
在 IAM 控制台的导航窗格中,依次选择 Roles (角色) 和 Create role (创建角色)。
-
选择 SAML 2.0 federation 角色类型。
-
对于 Select a SAML provider(选择 SAML 提供商),请为您的角色选择提供商。
-
选择 SAML 2.0 访问级别方法。
-
选择 Allow programmatic access only (只允许编程访问) 以创建可从 Amazon API 或 Amazon CLI 以编程方式担任的角色。
-
选择允许编程访问和 Amazon Web Services Management Console 访问以创建可以编程方式和从 Amazon Web Services Management Console 中担任的角色。
通过这两种方法创建的角色类似,但也可从控制台担任的角色包括包含带特定条件的信任策略。该条件显式确保将 SAML 受众(
SAML:aud属性)设置为 SAML 的 Amazon 登录终端节点 (https://signin.aws.amazon.com/saml)。 -
-
如果创建用于编程访问的角色,请从属性列表中选择一个属性。然后在 Value(值)框中,键入一个将包含在角色中的值。这样可仅限来自其 SAML 身份验证响应 (断言) 包括您指定的属性的身份提供程序的用户可访问该角色。必须指定至少一个属性,以确保您的角色限于您所在组织中的一部分用户。
如果要创建用于编程访问和控制台访问的角色,则将自动添加
SAML:aud属性,并将其设置为 Amazon SAML 终端节点的 URL (https://signin.aws.amazon.com/saml)。 -
要将更多与属性相关的条件添加到信任策略,请选择 Condition (optional) [条件(可选)],选择其他条件,然后指定值。
注意 列表包括最常用的 SAML 属性。IAM 支持其他可用于创建条件的属性。有关支持的属性的列表,请参阅 SAML 联合身份验证的可用键。如果需要不在列表中的支持的 SAML 属性的条件,可以手动添加此条件。为此,请在创建角色后编辑信任策略。
-
检查 SAML 2.0 信任信息,然后选择 Next(下一步)。
-
IAM 包括您的账户中的 Amazon 托管策略和客户托管策略的列表。选择要用于权限策略的策略,或者选择 Create policy(创建策略)以打开新的浏览器选项卡并从头开始创建新策略。有关更多信息,请参阅创建 IAM 策略。在您创建策略后,关闭该选项卡并返回到您的原始选项卡。选中您希望 Web 身份用户具有的权限策略旁边的复选框。如果您愿意,此时可以不选择任何策略,稍后将策略附加到角色。默认情况下,角色没有权限。
-
(可选)设置权限边界。这是一项高级功能。
打开 Permissions boundary(权限边界)部分,然后选择 Use a permissions boundary to control the maximum role permissions(使用权限边界控制最大角色权限)。选择要用于权限边界的策略。
-
选择 Next (下一步)。
-
请选择 Next: Review(下一步:审核)。
-
对于 Role name(角色名称),输入一个角色名称。角色名称在您的 Amazon 账户内必须是唯一的。名称不区分大小写。例如,您无法同时创建名为
PRODROLE和prodrole的角色。由于其他 Amazon 资源可能引用该角色,角色创建完毕后无法编辑角色名称。 -
(可选)对于 Description(描述),输入新角色的描述。
-
在 Step 1: Select trusted entities(步骤 1:选择可信实体)或 Step 2: Add permissions(步骤 2:添加权限)部分中的 Edit(编辑),以编辑角色的用户案例和权限。
-
(可选)通过以键值对的形式附加标签来向角色添加元数据。有关在 IAM 中使用标签的更多信息,请参阅 标记 IAM 资源。
-
检查角色,然后选择 Create role。
创建角色后,通过使用有关 Amazon 的信息来配置您的身份提供程序软件,以完成 SAML 信任。此类信息包括您希望联合身份用户使用的角色。这称为在 IdP 和 Amazon 之间配置信赖方信任。有关更多信息,请参阅配置具有信赖方信任的 SAML 2.0 IdP 并添加陈述。