CodeDeploy 权限参考 - AWS CodeDeploy

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

CodeDeploy 权限参考

在设置访问权限以及编写可附加到 IAM 身份的权限策略(基于身份的策略)时,请使用下表。该表列出了每个 CodeDeploy API 操作、您可以授予执行该操作的权限的操作,以及用于授予权限的资源 ARN 的格式。请在策略的 Action 字段中指定这些操作。您可以在策略的 Resource 字段中指定带或不带通配符(*)的 ARN 作为资源值。

您可以在 CodeDeploy 策略中使用 AWS-wide 条件键来表达条件。有关 AWS范围密钥的完整列表,请参阅 IAM 用户指南中的可用密钥

要指定操作,请在 API 操作名称之前使用 codedeploy: 前缀(例如,codedeploy:GetApplicationcodedeploy:CreateApplication)。要在单个语句中指定多项操作,请使用逗号将它们隔开(例如,"Action": ["codedeploy:action1", "codedeploy:action2"])。

使用通配符

您可以在 ARN 使用通配符(*)以指定多个操作或资源。例如,codedeploy:*指定所有 CodeDeploy 动作并codedeploy:Get*指定以单词开头的所有 CodeDeploy 动作Get。以下示例授予对名称以 West 开头且与名称以 Test 开头的应用程序关联的所有部署组的访问权限。

arn:aws:codedeploy:us-west-2:444455556666:deploymentgroup:Test*/West*

您可以将通配符与表中列出的以下资源一起使用:

  • application-name

  • deployment-group-name

  • deployment-configuration-name

  • instance-ID

通配符无法与 regionaccount-id 一起使用。有关通配符的更多信息,请参阅 IAM 用户指南中的 IAM 标识符

注意

在每个操作的 ARN 中,资源后跟一个冒号(:)。您还可以让资源后跟正斜杠(/)。有关更多信息,请参阅 ARN CodeDeploy 示例

使用滚动条查看表的其余部分。

CodeDeploy API 操作和操作所需的权限
CodeDeploy API 操作 所需权限(API 操作) 资源

AddTagsToOnPremisesInstances

codedeploy:AddTagsToOnPremisesInstances

向一个或多个本地实例添加标签所必需的。

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

BatchGetApplicationRevisions

codedeploy:BatchGetApplicationRevisions

获取有关与 用户关联的多个应用程序版本的信息所必需的。

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

BatchGetApplications

codedeploy:BatchGetApplications

获取有关与 用户关联的多个应用程序的信息所必需的。

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

BatchGetDeploymentGroups

codedeploy:BatchGetDeploymentGroups

获取有关与 用户关联的多个部署组的信息所必需的。

arn: aws: codedeploy:区域:账户 ID:部署组:应用程序名称/ deployment-group-name

BatchGetDeploymentInstances codedeploy:BatchGetDeploymentInstances

获取有关部署组中的一个或多个实例的信息所必需的。

arn: aws: codedeploy:区域:账户 ID:部署组:应用程序名称/ deployment-group-name

BatchGetDeployments

codedeploy:BatchGetDeployments

获取有关与 用户关联的多个部署的信息所必需的。

arn: aws: codedeploy:区域:账户 ID:部署组:应用程序名称/ deployment-group-name

BatchGetOnPremisesInstances

codedeploy:BatchGetOnPremisesInstances

获取有关一个或多个本地实例的信息所必需的。

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

ContinueDeployment

codedeploy:ContinueDeployment

在蓝绿部署期间,对于开始将替换环境中的实例注册到 Elastic Load Balancing 负载均衡器的过程是必需的。

arn: aws: codedeploy:区域:账户 ID:部署组:应用程序名称/ deployment-group-name

CreateApplication

codedeploy:CreateApplication

创建与 用户关联的应用程序所必需的。

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

CreateDeployment¹

codedeploy:CreateDeployment

为与 用户关联的应用程序创建部署所必需的。

arn: aws: codedeploy:区域:账户 ID:部署组:应用程序名称/ deployment-group-name

CreateDeploymentConfig

codedeploy:CreateDeploymentConfig

创建与 用户关联的自定义部署配置所必需的。

arn: aws: codedeploy:区域:账户 ID:部署配置:deployment-configuration-name

CreateDeploymentGroup

codedeploy:CreateDeploymentGroup

为与 用户关联的应用程序创建部署组所必需的。

arn: aws: codedeploy:区域:账户 ID:部署组:应用程序名称/ deployment-group-name

DeleteApplication

codedeploy:DeleteApplication

删除与 用户关联的应用程序所必需的。

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

DeleteDeploymentConfig

codedeploy:DeleteDeploymentConfig

删除与 用户关联的自定义部署配置所必需的。

arn: aws: codedeploy:区域:账户 ID:部署配置:deployment-configuration-name

DeleteDeploymentGroup

codedeploy:DeleteDeploymentGroup

为与 用户关联的应用程序删除部署组所必需的。

arn: aws: codedeploy:区域:账户 ID:部署组:应用程序名称/ deployment-group-name

DeregisterOnPremisesInstance

codedeploy:DeregisterOnPremisesInstance

取消注册本地实例所必需的。

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

GetApplication

codedeploy:GetApplication

获取有关与 用户关联的单个应用程序的信息所必需的。

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

GetApplicationRevision

codedeploy:GetApplicationRevision

获取有关与 用户关联的应用程序的单个应用程序修订的信息所必需的。

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

GetDeployment

codedeploy:GetDeployment

获取针对与 用户关联的应用程序的部署组的单个部署的信息所必需的。

arn: aws: codedeploy:区域:账户 ID:部署组:应用程序名称/ deployment-group-name

GetDeploymentConfig

codedeploy:GetDeploymentConfig

获取有关与 用户关联的单个部署配置的信息所必需的。

arn: aws: codedeploy:区域:账户 ID:部署配置:deployment-configuration-name

GetDeploymentGroup

codedeploy:GetDeploymentGroup

获取有关与 用户关联的应用程序的单个部署组的信息所必需的。

arn: aws: codedeploy:区域:账户 ID:部署组:应用程序名称/ deployment-group-name

GetDeploymentInstance

codedeploy:GetDeploymentInstance

获取有关部署中与 用户关联的单个实例的信息所必需的。

arn: aws: codedeploy:区域:账户 ID:部署组:应用程序名称/ deployment-group-name

GetDeploymentTarget

codedeploy:GetDeploymentTarget

获取有关部署中与 用户关联的目标的信息所必需的。

arn: aws: codedeploy:区域:账户 ID:部署组:应用程序名称/ deployment-group-name

GetOnPremisesInstance

codedeploy:GetOnPremisesInstance

获取有关单个本地实例的信息所必需的。

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

ListApplicationRevisions

codedeploy:ListApplicationRevisions

获取有关与 用户关联的应用程序的所有应用程序修订的信息所必需的。

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

ListApplications

codedeploy:ListApplications

获取有关与 用户关联的所有应用程序的信息所必需的。

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

ListDeploymentConfigs

codedeploy:ListDeploymentConfigs

获取有关与 用户关联的所有部署配置的信息所必需的。

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

ListDeploymentGroups

codedeploy:ListDeploymentGroups

获取有关与 用户关联的应用程序的所有部署组的信息所必需的。

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

ListDeploymentInstances

codedeploy:ListDeploymentInstances

需要获取有关部署中与用户或 AWS 账户关联的所有实例的信息。

arn: aws: codedeploy:区域:账户 ID:部署组:应用程序名称/ deployment-group-name

ListDeployments

codedeploy:ListDeployments

获取有关针对与用户关联的部署组的所有部署的信息所必需的,或获取与用户的所有部署所必需的。

arn: aws: codedeploy:区域:账户 ID:部署组:应用程序名称/ deployment-group-name

ListDeploymentTargets

codedeploy:ListDeploymentTargets

获取有关部署中与用户关联的所有目标的信息所必需的。

arn: aws: codedeploy:区域:账户 ID:部署组:应用程序名称/ deployment-group-name

ListGitHubAccountTokenNames

codedeploy:ListGitHubAccountTokenNames

需要获取已存储的 GitHub 账户连接的名称列表。

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

ListOnPremisesInstances

codedeploy:ListOnPremisesInstances

获取一个或更多本地实例名称的列表所必需的。

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

PutLifecycleEventHookExecutionStatus

codedeploy:PutLifecycleEventHookExecutionStatus

对于提供生命周期挂钩事件的执行状态通知是必需的。

arn: aws: codedeploy:区域:账户 ID:部署组:应用程序名称/ deployment-group-name

RegisterApplicationRevision

codedeploy:RegisterApplicationRevision

注册有关与 用户关联的应用程序的一个应用程序修订的信息所必需的。

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

RegisterOnPremisesInstance

codedeploy:RegisterOnPremisesInstance

向 CodeDeploy 注册本地实例所必需的。

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

RemoveTagsFromOnPremisesInstances

codedeploy:RemoveTagsFromOnPremisesInstances

从一个或多个本地实例中删除标签所必需的。

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

SkipWaitTimeForInstanceTermination

codedeploy:SkipWaitTimeForInstanceTermination

在蓝/绿部署中,对于覆盖某个指定等待时间并立即开始终止原始环境中的实例是必需的。

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

StopDeployment

codedeploy:StopDeployment

停止正在进行的部署到与 用户关联的应用程序的部署组所必需的。

arn: aws: codedeploy:区域:账户 ID:部署组:应用程序名称/ deployment-group-name

UpdateApplication³

codedeploy:UpdateApplication

更改有关与 用户关联的应用程序的信息所必需的。

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

UpdateDeploymentGroup³

codedeploy:UpdateDeploymentGroup

更改有关与 用户关联的应用程序的单个部署组的信息所必需的。

arn: aws: codedeploy:区域:账户 ID:部署组:应用程序名称/ deployment-group-name

¹ 当您指定 GetDeploymentConfig 权限时,还必须为部署配置指定 GetApplicationRevision 权限,并且为应用程序修订指定 CreateDeploymentRegisterApplicationRevision 权限。此外,如果您在 CreateDeployment API 调用中包含 overrideAlarmConfiguration 参数,则必须指定 UpdateDeploymentGroup 权限。

² 在提供特定部署组时对 ListDeployments 有效,但在列出所有与用户关联的部署时无效。

³ 对于 UpdateApplication,您必须同时对旧应用程序名称和新应用程序名称具有 UpdateApplication 权限。对于涉及更改部署组名称的 UpdateDeploymentGroup 操作,您必须同时具有对旧的和新的部署组名称的 UpdateDeploymentGroup 权限。