AWS CodeDeploy 如何使用 IAM - AWS CodeDeploy

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

AWS CodeDeploy 如何使用 IAM

在使用管理IAM访问权限之前 CodeDeploy,您应该了解哪些IAM功能可供使用 CodeDeploy。有关更多信息,请参阅《IAM用户指南》IAM中与之配合使用的AWS 服务

CodeDeploy 基于身份的策略

使用IAM基于身份的策略,您可以指定允许或拒绝的操作和资源,以及允许或拒绝操作的条件。 CodeDeploy 支持操作、资源和条件键。有关您在JSON策略中使用的元素的信息,请参阅《IAM用户指南》中的IAMJSON策略元素参考

操作

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

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

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

正在执行的策略操作在操作之前 CodeDeploy 使用codedeploy:前缀。例如,codedeploy:GetApplication 权限授予用户执行 GetApplication 操作的权限。策略声明必须包含ActionNotAction元素。 CodeDeploy 定义了它自己的一组操作,这些操作描述了您可以使用此服务执行的任务。

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

"Action": [ "codedeploy:action1", "codedeploy:action2"

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

"Action": "ec2:Describe*"

有关 CodeDeploy 操作列表,请参阅《IAM用户指南》 AWS CodeDeploy中定义的操作

有关列出所有 CodeDeploy API操作及其适用的资源的表格,请参阅CodeDeploy 权限参考

资源

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

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

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

"Resource": "*"

例如,您可以指定一个部署组 (myDeploymentGroup) 在你的陈述中使用它ARN如下:

"Resource": "arn:aws:codedeploy:us-west-2:123456789012:deploymentgroup:myApplication/myDeploymentGroup"

您还可以使用通配符(*)指定属于某个账户的所有部署组,如下所示:

"Resource": "arn:aws:codedeploy:us-west-2:123456789012:deploymentgroup:*"

要指定所有资源,或者如果某个API操作不支持ARNs,请在Resource元素中使用通配符 (*),如下所示:

"Resource": "*"

有些 CodeDeploy API操作接受多个资源(例如,BatchGetDeploymentGroups)。要在单个语句中指定多个资源,请ARNs用逗号分隔它们,如下所示:

"Resource": ["arn1", "arn2"]

CodeDeploy 提供了一组使用 CodeDeploy资源的操作。有关可用操作的列表,请参阅 CodeDeploy 权限参考

有关 CodeDeploy 资源类型及其类型的列表ARNs,请参阅《IAM用户指南》 AWS CodeDeploy中的由定义的资源。有关可在哪些操作中指定每ARN种资源的信息,请参阅由定义的操作 AWS CodeDeploy

CodeDeploy 资源和运营

在中 CodeDeploy,主要资源是部署组。在策略中,您可以使用 Amazon 资源名称 (ARN) 来标识该政策适用的资源。 CodeDeploy 支持可用于部署组的其他资源,包括应用程序、部署配置和实例。这些资源称作子资源。这些资源和子资源具有与之ARNs关联的独特性。有关更多信息,请参阅中的 Amazon 资源名称 (ARNs) Amazon Web Services 一般参考

资源类型 ARN格式
部署组

arn:aws:codedeploy:region:account-id:deploymentgroup:application-name/deployment-group-name

应用程序

arn:aws:codedeploy:region:account-id:application:application-name

部署配置

arn:aws:codedeploy:region:account-id:deploymentconfig:deployment-configuration-name

实例

arn:aws:codedeploy:region:account-id:instance/instance-ID

所有 CodeDeploy 资源

arn:aws:codedeploy:*

指定区域中指定账户拥有的所有 CodeDeploy 资源

arn:aws:codedeploy:region:account-id:*

注意

中的大多数服务都 AWS 将冒号 (:) 或正斜杠 (/) 视为中的ARNs相同字符。但是,在资源模式和规则中 CodeDeploy 使用精确匹配。创建事件模式时,请务必使用正确的ARN字符,使其与资源中的ARN语法相匹配。

条件键

CodeDeploy 不提供任何特定于服务的条件密钥,但它确实支持使用某些全局条件密钥。有关更多信息,请参阅《IAM用户指南》中的AWS 全局条件上下文密钥

示例

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

CodeDeploy 基于资源的政策

CodeDeploy 不支持基于资源的策略。要查看详细的基于资源的策略页面的示例,请参阅使用基于资源的策略。 AWS Lambda

基于 CodeDeploy 标签的授权

CodeDeploy 不支持标记资源或基于标签控制访问权限。

CodeDeploy IAM角色

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

将临时凭证与 CodeDeploy

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

CodeDeploy 支持使用临时证书。

服务相关角色

CodeDeploy 不支持服务相关角色。

服务角色

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

CodeDeploy 支持服务角色。

在中选择IAM角色 CodeDeploy

在中创建部署组资源时 CodeDeploy,必须选择一个角色 CodeDeploy 才能代表您访问 Amaz EC2 on。如果您之前创建过服务角色或服务相关角色,则会 CodeDeploy为您提供可供选择的角色列表。选择允许访问启动和停止EC2实例的角色非常重要。