AWS CodeStar 如何使用 IAM - AWS CodeStar

2024 年 7 月 31 日,亚马逊 Web Services (AWS) 将停止支持创建和查看 AWS CodeStar 项目。2024 年 7 月 31 日之后,您将无法再访问 AWS CodeStar 控制台或创建新项目。但是,由 AWS CodeStar创建的 AWS 资源(包括您的源存储库、管道和构建)将不受此更改的影响,并将继续运行。 AWS CodeStar 此次停用不会影响连接和 AWS CodeStar 通知。

 

如果您想跟踪工作、开发代码以及构建、测试和部署应用程序,Amazon CodeCatalyst 提供了简化的入门流程和其他功能来管理您的软件项目。详细了解 Amazon 的功能定价 CodeCatalyst。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWS CodeStar 如何使用 IAM

在使用管理IAM访问权限之前 AWS CodeStar,您应该了解哪些IAM功能可供使用AWS CodeStar。要全面了解如何使用AWS CodeStar 和其他 AWS 服务IAM,请参阅《IAM用户指南》IAM中的 “与之配合使用的AWS 服务”。

AWS CodeStar基于身份的策略

使用IAM基于身份的策略,您可以指定允许或拒绝的操作和资源,以及允许或拒绝操作的条件。 AWS CodeStar 代表您创建了多个基于身份的策略,这些策略 AWS CodeStar 允许在项目范围内创建和管理资源。 AWS CodeStar AWS CodeStar 支持特定的操作、资源和条件键。要了解您在JSON策略中使用的所有元素,请参阅IAM用户指南中的IAMJSON策略元素参考

操作

管理员可以使用 AWS JSON策略来指定谁有权访问什么。也就是说,哪个主体 可以对什么资源执行操作,以及在什么条件下执行。

JSON策略Action元素描述了可用于在策略中允许或拒绝访问的操作。策略操作通常与关联的 AWS API操作同名。也有一些例外,例如没有匹配API操作的仅限权限的操作。还有一些操作需要在策略中执行多个操作。这些附加操作称为相关操作

在策略中包含操作以授予执行关联操作的权限。

正在执行的策略操作在操作前AWS CodeStar 使用以下前缀:codestar:. 例如,要允许指定IAM用户编辑项目的属性,例如其项目描述,您可以使用以下策略声明: AWS CodeStar

{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "codestar:UpdateProject" ], "Resource" : "arn:aws:codestar:us-east-2:project/my-first-projec" } ] }

策略语句必须包含 ActionNotAction 元素。AWS CodeStar 定义了自己的一组操作,这些操作描述了您可以使用此服务执行的任务。

要在单个语句中指定多项操作,请使用逗号将它们隔开,如下所示:

"Action": [ "codestar:action1", "codestar:action2"

您也可以使用通配符 (*) 指定多个操作。例如,要指定以单词 List 开头的所有操作,包括以下操作:

"Action": "codestar:List*"

要查看AWS CodeStar 操作列表,请参阅《IAM用户指南》AWS CodeStar中的操作定义

资源

管理员可以使用 AWS JSON策略来指定谁有权访问什么。也就是说,哪个主体 可以对什么资源执行操作,以及在什么条件下执行。

ResourceJSON策略元素指定要应用操作的一个或多个对象。语句必须包含 ResourceNotResource 元素。最佳做法是,使用资源的 Amazon 资源名称 (ARN) 来指定资源。对于支持特定资源类型(称为资源级权限)的操作,您可以执行此操作。

对于不支持资源级权限的操作(如列出操作),请使用通配符 (*) 指示语句应用于所有资源。

"Resource": "*"

AWS CodeStar 项目资源具有以下内容ARN:

arn:aws:codestar:region:account:project/resource-specifier

有关格式的更多信息ARNs,请参阅 Amazon 资源名称 (ARNs) 和 AWS 服务命名空间

例如,以下内容指定了my-first-projec注册到该 AWS 地区 AWS 账户的名为111111111111的 AWS CodeStar 项目us-east-2

arn:aws:codestar:us-east-2:111111111111:project/my-first-projec

以下内容指定了以该 AWS 地区 AWS 账户111111111111my-proj注册的名称开头的任何 AWS CodeStar 项目us-east-2

arn:aws:codestar:us-east-2:111111111111:project/my-proj*

某些AWS CodeStar 操作(例如列出项目)无法对资源执行。在这些情况下,您必须使用通配符 (*)。

"LisProjects": "*"

要查看AWS CodeStar 资源类型及其列表ARNs,请参阅IAM用户指南AWS CodeStar中的由定义的资源。要了解您可以使用哪些操作来指定每ARN种资源,请参阅由定义的操作AWS CodeStar

条件键

AWS CodeStar 不提供任何特定于服务的条件密钥,但它确实支持使用某些全局条件密钥。要查看所有 AWS 全局条件键,请参阅《IAM用户指南》中的AWS 全局条件上下文密钥

示例

要查看AWS CodeStar 基于身份的策略的示例,请参阅。AWS CodeStar基于身份的策略示例

AWS CodeStar 基于资源的政策

AWS CodeStar 不支持基于资源的策略。

基于 AWS CodeStar 标签的授权

您可以将标签附加到AWS CodeStar 项目,也可以在请求中将标签传递给AWS CodeStar。要基于标签控制访问,您需要使用 codestar:ResourceTag/key-nameaws:RequestTag/key-nameaws:TagKeys 条件键在策略的条件元素中提供标签信息。有关为AWS CodeStar 资源添加标签的更多信息,请参阅在 AWS CodeStar 中使用项目标签

要查看基于身份的策略示例,该策略用于根据 AWS CodeStar 项目上的标签限制对该项目的访问权限,请参阅。基于标签查看 AWS CodeStar 项目

AWS CodeStar IAM角色

IAM角色是您 AWS 账户中具有特定权限的实体。

您可以 AWS CodeStar 以用户、联合IAM用户、root 用户或代入角色的身份使用。所有具有相应权限的用户类型都可以管理其 AWS 资源的项目权限,但可以自动为IAM用户 AWS CodeStar 管理项目权限。IAM策略角色根据项目角色向该用户授予权限和访问权限。您可以使用IAM控制台创建向IAM用户分配权限的其他策略 AWS CodeStar 和其他权限。

例如,您可能希望允许用户查看 AWS CodeStar 项目但不能执行更改。在这种情况下,您可以使用查看者角色将IAM用户添加到 AWS CodeStar 项目中。每个 AWS CodeStar 项目都有一组策略,可帮助您控制对项目的访问权限。此外,您还可以控制哪些用户有权访问 AWS CodeStar。

AWS CodeStar IAM用户和联合用户的访问处理方式不同。只有IAM用户可以添加到团队中。要向IAM用户授予项目权限,您需要将该用户添加到项目团队并为该用户分配一个角色。要向联合用户授予项目权限,您可以手动将 AWS CodeStar 项目角色的托管策略附加到联合用户的角色。

下表总结了可用于每种类型的访问的工具。

权限功能 IAM用户 联合用户 根用户
SSH亚马逊EC2和 Elastic Beanstalk 项目远程访问的密钥管理
AWS CodeCommit SSH访问
IAM用户权限由 AWS CodeStar
手动管理的项目权限
用户可作为团队成员添加到项目中

IAM用户访问权限 AWS CodeStar

当您将IAM用户添加到项目并为该用户选择角色时,会自动将相应的策略 AWS CodeStar 应用于该IAM用户。对于IAM用户,您无需直接在中附加或管理策略或权限IAM。有关向 AWS CodeStar 项目添加IAM用户的信息,请参阅向 AWS CodeStar 项目添加团队成员 。有关从 AWS CodeStar 项目中移除IAM用户的信息,请参阅从 AWS CodeStar 项目中删除团队成员

将内联策略附加到IAM用户

当您将用户添加到项目时, AWS CodeStar 会自动为该项目附加与该用户角色相匹配的托管策略。您不应手动将项目的 AWS CodeStar 托管策略附加到IAM用户。除外AWSCodeStarFullAccess,我们不建议您附加更改IAM用户在 AWS CodeStar 项目中的权限的策略。如果您决定创建和附加自己的策略,请参阅IAM用户指南中的添加和删除IAM身份权限

联合用户访问权限 AWS CodeStar

您可以使用企业IAM用户目录、Web 身份提供商或担任角色的 AWS Directory Service用户的用户身份,而不是创建IAM用户或使用根用户。他们被称为联合身份用户

通过手动将 AWS CodeStar 项目AWS CodeStar 级策略和权限中描述的托管策略附加到用户的角色,授予联合用户访问您的项目的权限。IAM在 AWS CodeStar 创建项目资源和IAM角色后,您可以附加所有者、贡献者或查看者政策。

先决条件:

  • 您必须已设置身份提供商。例如,您可以设置SAML身份提供商并通过该提供商设置 AWS 身份验证。有关设置身份提供商的更多信息,请参阅创建IAM身份提供商。有关SAML联合的更多信息,请参阅关于SAML基于 2.0 的联合。

  • 在通过身份提供商请求访问权限时,您必须已创建联合身份用户要代入的角色。必须将STS信任策略附加到允许联合用户担任该角色的角色。有关更多信息,请参阅用户指南中的联合IAM用户和角色

  • 您必须已创建 AWS CodeStar 项目并知道项目 ID。

有关针对身份提供商创建角色的更多信息,请参阅针对第三方身份提供商创建角色(联合身份验证)

将 AWSCodeStarFullAccess 托管策略附加到联合用户的角色

通过附加 AWSCodeStarFullAccess 托管策略来授予联合身份用户创建项目的权限。要执行这些步骤,您必须以 root 用户、账户中的管理员用户或具有关联AdministratorAccess托管策略或等效策略的IAM用户或联合用户身份登录控制台。

注意

在创建项目后,不会自动应用您的项目所有者权限。按照将项目的 AWS CodeStar 查看者/贡献者/所有者托管策略附加到联合用户的角色中所述,使用对您的账户具有管理权限的角色,附加所有者托管策略。

  1. 打开控制IAM台。在导航窗格中,选择策略

  2. 在搜索字段中输入 AWSCodeStarFullAccess。此时将显示该策略名称,并且策略类型为 AWS 托管。您可以展开该策略以查看策略声明中的权限。

  3. 选择策略旁边的圆圈,然后在策略操作下选择附加

  4. 摘要页面上,选择关联实体选项卡。选择 附加

  5. 附加策略页面上的搜索字段中,筛选联合身份用户的角色。选中角色名称旁边的框,然后选择附加策略附加的实体 选项卡将显示新附加的实体。

将项目的 AWS CodeStar 查看者/贡献者/所有者托管策略附加到联合用户的角色

授予联合身份用户对您的项目的访问权限,方法是将适当的所有者、贡献者或查看者托管策略附加到用户的角色。托管策略将授予适当级别的权限。与IAM用户不同,您必须手动为联合用户附加和分离托管策略。这等同于向中的团队成员分配项目权限 AWS CodeStar。要执行这些步骤,您必须以 root 用户、账户中的管理员用户或具有关联AdministratorAccess托管策略或等效策略的IAM用户或联合用户身份登录控制台。

先决条件:

  • 您必须已创建角色或具有联合身份用户代入的现有角色。

  • 您必须知道要授予的权限级别。附加到所有者、贡献者和查看者角色的托管策略提供对您的项目的基于角色的权限。

  • 您的 AWS CodeStar 项目必须已创建。在创建项目IAM之前,托管策略在中不可用。

  1. 打开控制IAM台。在导航窗格中,选择策略

  2. 在搜索字段中输入您的项目 ID。此时将显示与您的项目匹配的策略名称,并且策略类型为客户托管。您可以展开该策略以查看策略声明中的权限。

  3. 选择其中一个托管策略。选择策略旁边的圆圈,然后在策略操作下选择附加

  4. 摘要页面上,选择关联实体选项卡。选择 附加

  5. 附加策略页面上的搜索字段中,筛选联合身份用户的角色。选中角色名称旁边的框,然后选择附加策略附加的实体 选项卡将显示新附加的实体。

将 AWS CodeStar 托管策略与联合用户角色分离

在删除 AWS CodeStar 项目之前,必须手动分离附加到联合用户角色的所有托管策略。要执行这些步骤,您必须以 root 用户、账户中的管理员用户或具有关联AdministratorAccess托管策略或等效策略的IAM用户或联合用户身份登录控制台。

  1. 打开控制IAM台。在导航窗格中,选择策略

  2. 在搜索字段中输入您的项目 ID。

  3. 选择策略旁边的圆圈,然后在策略操作下选择附加

  4. 摘要页面上,选择关联实体选项卡。

  5. 在搜索字段中,筛选联合身份用户的角色。选择分离

将 AWS Cloud9 托管策略附加到联合用户的角色

如果您使用的是 AWS Cloud9 开发环境,请通过将AWSCloud9User托管策略附加到用户的角色来授予联合用户访问该环境的权限。与IAM用户不同,您必须手动为联合用户附加和分离托管策略。要执行这些步骤,您必须以 root 用户、账户中的管理员用户或具有关联AdministratorAccess托管策略或等效策略的IAM用户或联合用户身份登录控制台。

先决条件:

  • 您必须已创建角色或具有联合身份用户代入的现有角色。

  • 您必须知道要授予的权限级别:

    • AWSCloud9User 托管策略允许用户执行以下操作:

      • 创建自己的 AWS Cloud9 开发环境。

      • 获取有关环境的信息。

      • 更改环境的设置。

    • AWSCloud9Administrator 托管策略允许用户为自己或他人执行以下操作:

      • 创建环境。

      • 获取有关环境的信息。

      • 删除环境。

      • 更改环境的设置。

  1. 打开控制IAM台。在导航窗格中,选择策略

  2. 在搜索字段中输入策略名称。此时将显示此托管策略,并且策略类型为 AWS 托管。您可以展开该策略以查看策略声明中的权限。

  3. 选择其中一个托管策略。选择策略旁边的圆圈,然后在策略操作下选择附加

  4. 摘要页面上,选择关联实体选项卡。选择 附加

  5. 附加策略页面上的搜索字段中,筛选联合身份用户的角色。选中角色名称旁边的框,然后选择附加策略附加的实体 选项卡将显示新附加的实体。

将 AWS Cloud9 托管策略与联合用户角色分离

如果您使用的是 AWS Cloud9 开发环境,则可以通过分离授予访问权限的策略来移除联合用户对该环境的访问权限。要执行这些步骤,您必须以 root 用户、账户中的管理员用户或具有关联AdministratorAccess托管策略或等效策略的IAM用户或联合用户身份登录控制台。

  1. 打开控制IAM台。在导航窗格中,选择策略

  2. 在搜索字段中输入您的项目名称。

  3. 选择策略旁边的圆圈,然后在策略操作下选择附加

  4. 摘要页面上,选择关联实体选项卡。

  5. 在搜索字段中,筛选联合身份用户的角色。选择分离

将临时证书用于 AWS CodeStar

您可以使用临时证书通过联合身份登录、代入IAM角色或担任跨账户角色。您可以通过调用AssumeRole或之类的 AWS STS API操作来获取临时安全证书GetFederationToken

AWS CodeStar 支持使用临时证书,但 AWS CodeStar 团队成员功能不适用于联合访问权限。 AWS CodeStar 团队成员功能仅支持将IAM用户添加为团队成员。

服务相关角色

服务相关角色允许 AWS 服务访问其他服务中的资源以代表您完成操作。服务相关角色显示在您的IAM账户中,并归服务所有。 管理员可以查看,但不能编辑服务相关角色的权限。

AWS CodeStar 不支持服务相关角色。

服务角色

此功能允许服务代表您担任服务角色。此角色允许服务访问其他服务中的资源以代表您完成操作。服务角色显示在您的IAM账户中,并归该账户所有。这意味着管理员可以更改此角色的权限。但是,这样做可能会中断服务的功能。

AWS CodeStar 支持服务角色。 AWS CodeStar 在为您的项目创建和管理资源时使用服务角色。 aws-codestar-service-role有关更多信息,请参阅IAM用户指南中的角色术语和概念

重要

您必须以 管理员用户或根账户身份登录才能创建此服务角色。有关更多信息,请参阅《用户指南》中的 “仅限首次访问:您的根用户凭证” 和 “创建您的第一个管理员用户和群组” IAM。

此角色是在您首次在中创建项目时为您创建的 AWS CodeStar。服务角色代表您执行以下操作:

  • 创建您在创建项目时选择的资源。

  • 在 AWS CodeStar 项目仪表板中显示有关这些资源的信息。

此外,它还在您管理项目资源时代表您执行操作。有关此策略声明的示例,请参阅 AWSCodeStarServiceRole 政策

此外,还会根据项目类型 AWS CodeStar 创建多个特定于项目的服务角色。 AWS CloudFormation 并且会为每种项目类型创建工具链角色。

  • AWS CloudFormation 角色 AWS CodeStar 允许 AWS CloudFormation 访问您的 AWS CodeStar 项目创建和修改堆栈。

  • 工具链角色 AWS CodeStar 允许访问其他 AWS 服务,为您的 AWS CodeStar 项目创建和修改资源。