

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

# 基本原理
<a name="swf-dev-iam.basic"></a>

Amazon SWF 访问控制主要基于两种类型的权限：
+ 资源权限：用户可以访问何种 Amazon SWF 资源。

  您可以只针对域授予资源权限。
+ API 权限：用户可以调用何种 Amazon SWF 操作。

最简单的方法是授予完全账户访问权限（在任何域中调用任何 Amazon SWF 操作）或者完全拒绝访问。但是，IAM 支持更精细的访问控制方法，这种方法通常更有用。例如，您可以：
+ 允许用户不受限制地调用任何 Amazon SWF 操作，但只能在指定域中调用。您可以使用这样一个策略允许开发中的工作流应用程序使用任何操作，但只能是“沙盒”域。
+ 允许用户访问任何域，但限制其使用 API 的方法。您可以使用这样一个策略允许“审核员”应用程序在任何域中调用 API，但只允许读取访问。
+ 允许用户在特定域中只调用一组有限的操作。您可以使用这样一个策略允许工作流启动程序只在特定域中调用 `StartWorkflowExecution` 操作。

Amazon SWF 访问控制基于以下原则：
+ 访问控制决策仅基于 IAM 策略；所有策略审计和操作均通过 IAM 完成。
+ 访问控制模型使用 deny-by-default策略；任何未明确允许的访问都将被拒绝。
+ 您可以通过向工作流的操作者附加适当的 IAM 策略来控制对 Amazon SWF 资源的访问。
+ 资源权限只能针对域授予。
+ 您可以通过将条件应用到一个或多个参数上来进一步限制某些操作的使用。
+ 如果您授予使用权限 [RespondDecisionTaskCompleted](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondDecisionTaskCompleted.html)，则可以对该操作中包含的决策列表表示权限。

  每个决策都由一个或多个参数，就像常规 API 调用那样。为了使策略可读性强一点，您可以授予决策权限，就像它们是实际的 API 调用那样，还包括将条件应用于一些参数。这些类型的权限被称为 *伪 API* 权限。

有关能用条件进行限制的常规和伪 API 参数的摘要，请参阅 [API 摘要](swf-dev-iam.api.md)。