

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

# Step Functions 工作流程中版本与别名功能的授权
<a name="auth-version-alias"></a>

要使用版本或别名调用 Step Functions API 操作，您需要适当的权限。要授权某个版本或别名调用 API 操作，Step Functions 会使用状态机的 ARN，而不是使用版本 ARN 或别名 ARN。您也可以缩小特定版本或别名的权限范围。有关更多信息，请参阅[缩小权限范围](#auth-scope-permission-version-alias)。

您可以使用以下名为的状态机的 IAM 策略示例`myStateMachine`来调用 [CreateStateMachineAlias](https://docs.amazonaws.cn/step-functions/latest/apireference/API_CreateStateMachineAlias.html)API 操作来创建状态机别名。

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "states:CreateStateMachineAlias",
      "Resource": "arn:aws:states:us-east-1:123456789012:stateMachine:myStateMachine"
    }
  ]
}
```

在设置允许或拒绝访问使用状态机版本或别名的 API 操作权限时，请考虑以下几点：
+ 如果您使用[CreateStateMachine](https://docs.amazonaws.cn/step-functions/latest/apireference/API_CreateStateMachine.html)和 [UpdateStateMachine](https://docs.amazonaws.cn/step-functions/latest/apireference/API_UpdateStateMachine.html)API 操作的`publish`参数来发布新的状态机版本，则还需要具有 [PublishStateMachineVersion](https://docs.amazonaws.cn/step-functions/latest/apireference/API_PublishStateMachineVersion.html)API 操作的`ALLOW`权限。
+ [DeleteStateMachine](https://docs.amazonaws.cn/step-functions/latest/apireference/API_DeleteStateMachine.html)API 操作会删除与状态机关联的所有版本和别名。

## 缩小版本或别名的权限范围
<a name="auth-scope-permission-version-alias"></a>

您可以使用限定符进一步缩小版本或别名所需的授权权限范围。限定符指的是版本号或别名名称。您可以使用限定符来限定状态机。以下示例是使用名为 `PROD` 的别名作为限定符的状态机 ARN。

```
arn:aws:states:region:account-id:stateMachine:myStateMachine:PROD
```

有关合格和不合格的更多信息 ARNs，请参阅[将执行与版本或别名关联](execution-alias-version-associate.md)。

在 IAM 策略的 `Condition` 语句中，使用名为 `states:StateMachineQualifier` 的可选上下文密钥缩小权限范围。例如，以下 IAM 策略适用于名为的状态机，`myStateMachine`拒绝使用别名为 as `PROD` 或版本的 [DescribeStateMachine](https://docs.amazonaws.cn/step-functions/latest/apireference/API_DescribeStateMachine.html)API 操作调用 API 操作`1`。

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": "states:DescribeStateMachine",
      "Resource": "arn:aws:states:us-east-1:123456789012:stateMachine:myStateMachine",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "states:StateMachineQualifier": [
            "PROD",
            "1"
          ]
        }
      }
    }
  ]
}
```

以下列表说明了您可以使用 `StateMachineQualifier` 上下文密钥缩小权限范围的 API 操作。
+ [CreateStateMachineAlias](https://docs.amazonaws.cn/step-functions/latest/apireference/API_CreateStateMachineAlias.html)
+ [DeleteStateMachineAlias](https://docs.amazonaws.cn/step-functions/latest/apireference/API_DeleteStateMachineAlias.html)
+ [DeleteStateMachineVersion](https://docs.amazonaws.cn/step-functions/latest/apireference/API_DeleteStateMachineVersion.html)
+ [DescribeStateMachine](https://docs.amazonaws.cn/step-functions/latest/apireference/API_DescribeStateMachine.html)
+ [DescribeStateMachineAlias](https://docs.amazonaws.cn/step-functions/latest/apireference/API_DescribeStateMachineAlias.html)
+ [ListExecutions](https://docs.amazonaws.cn/step-functions/latest/apireference/API_ListExecutions.html)
+ [ListStateMachineAliases](https://docs.amazonaws.cn/step-functions/latest/apireference/API_ListStateMachineAliases.html)
+ [StartExecution](https://docs.amazonaws.cn/step-functions/latest/apireference/API_StartExecution.html)
+ [StartSyncExecution](https://docs.amazonaws.cn/step-functions/latest/apireference/API_StartSyncExecution.html)
+ [UpdateStateMachineAlias](https://docs.amazonaws.cn/step-functions/latest/apireference/API_UpdateStateMachineAlias.html)