

# IAM JSON 策略元素：Action
<a name="reference_policies_elements_action"></a>

`Action` 元素描述将允许或拒绝的特定操作。声明必须包含 `Action` 或 `NotAction` 元素。每款 Amazon 服务各自拥有一套描述任务的操作，您可使用相应服务来执行所描述的任务。例如，Amazon S3 的操作列表可以在 *Amazon Simple Storage Service 用户指南*中的[在策略中指定权限](https://docs.amazonaws.cn/AmazonS3/latest/userguide/using-with-s3-actions.html)找到，Amazon EC2 操作列表可以在[Amazon EC2 API 参考](https://docs.amazonaws.cn/AWSEC2/latest/APIReference/query-apis.html)中找到，而适用于 Amazon Identity and Access Management 的操作列表可以在 [IAM API 参考](https://docs.amazonaws.cn/IAM/latest/APIReference/API_Operations.html)中找到。要查找其他服务的操作列表，请参阅 API 参考[文档](https://www.amazonaws.cn/documentation)了解相关服务。

此外，Amazon 以 JSON 格式提供服务参考信息，以简化策略管理工作流程的自动化。借助服务参考信息，您可以从机器可读文件中跨 Amazon Web Services 服务访问可用操作、资源和条件键。有关更多信息，请参阅《服务授权参考》中的[用于编程访问的简化 Amazon Web Services 服务信息](https://docs.amazonaws.cn/service-authorization/latest/reference/service-reference.html)。

通过将服务命名空间用作操作前缀（`iam`、`ec2`、`sqs`、`sns`、`s3` 等）并后跟允许或拒绝的操作名称来指定值。该名称必须与产品支持的操作相匹配。前缀和操作名称不区分大小写。例如，`iam:ListAccessKeys` 与 `IAM:listaccesskeys` 相同。以下示例显示用于不同服务的 `Action` 元素。

**Amazon SQS 操作**

```
"Action": "sqs:SendMessage"
```

**Amazon EC2 操作**

```
"Action": "ec2:StartInstances"
```

**IAM 操作**

```
"Action": "iam:ChangePassword"
```

**Amazon S3 操作**

```
"Action": "s3:GetObject"
```

您可以为 `Action` 元素指定多个值。

```
"Action": [ "sqs:SendMessage", "sqs:ReceiveMessage", "ec2:StartInstances", "iam:ChangePassword", "s3:GetObject" ]
```

可以使用多字符匹配通配符 (`*`) 和单字符匹配通配符 (`?`)，来授予对特定 Amazon 产品所提供所有操作的访问权限。例如，以下 `Action` 元素适用于所有 S3 操作。

```
"Action": "s3:*"
```

还可以将通配符（`*` 或 `?`）作为操作名称的一部分使用。例如，下列 `Action` 元素适用于所有包含字符串 `AccessKey` 的 IAM 操作，包括 `CreateAccessKey`、`DeleteAccessKey`、`ListAccessKeys` 及 `UpdateAccessKey`。

```
"Action": "iam:*AccessKey*"
```

某些产品允许您限制可用的操作。例如，Amazon SQS 允许您只提供所有可能的 Amazon SQS 操作的一部分。在这种情况下，`*` 通配符不允许完全控制队列；而是仅允许控制您已共享的操作子集。有关更多信息，请参阅 *Amazon Simple Storage Service 开发人员指南*中的[了解权限](https://docs.amazonaws.cn/AWSSimpleQueueService/latest/SQSDeveloperGuide/acp-overview.html#PermissionTypes)。