本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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
操作的权限。策略声明必须包含Action
或NotAction
元素。 CodeDeploy 定义了它自己的一组操作,这些操作描述了您可以使用此服务执行的任务。
要在单个语句中指定多项操作,请使用逗号将它们隔开,如下所示:
"Action": [ "codedeploy:action1", "codedeploy:action2"
您也可以使用通配符(*)指定多个操作。例如,包括以下操作可以指定以单词 Describe
开头的所有操作:
"Action": "ec2:Describe*"
有关 CodeDeploy 操作列表,请参阅《IAM用户指南》 AWS CodeDeploy中定义的操作。
有关列出所有 CodeDeploy API操作及其适用的资源的表格,请参阅CodeDeploy 权限参考。
资源
管理员可以使用 AWS JSON策略来指定谁有权访问什么。也就是说,哪个主体 可以对什么资源执行操作,以及在什么条件下执行。
Resource
JSON策略元素指定要应用操作的一个或多个对象。语句必须包含 Resource
或 NotResource
元素。最佳做法是,使用资源的 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格式 |
---|---|
部署组 |
|
应用程序 |
|
部署配置 |
|
实例 |
|
所有 CodeDeploy 资源 |
|
指定区域中指定账户拥有的所有 CodeDeploy 资源 |
|
注意
中的大多数服务都 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实例的角色非常重要。