

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

# 资源浏览器的工作原理 IAM
<a name="security_iam_service-with-iam"></a>

在使用管理IAM访问权限之前 AWS 资源探索器，您应该了解资源管理器中可以使用哪些IAM功能。要全面了解资源管理器和其他资源管理器是如何 AWS 服务 使用的 IAM [AWS 服务 ，请参阅*《IAM用户指南*》IAM中的使用](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)方法。

**Topics**
+ [资源管理器基于身份的器策略](#security_iam_service-with-iam-id-based-policies)
+ [根据资源管理器标签进行授权](#security_iam_service-with-iam-tags)
+ [资源浏览器IAM角色](#security_iam_service-with-iam-roles)

与其他资源管理器一样 AWS 服务，资源管理器需要权限才能使用其操作与您的资源进行交互。要进行搜索，用户必须有权检索视图的详细信息，并且还有权使用视图进行搜索。要创建索引或视图，或者修改它们或任何其他资源管理器设置，您必须具有其他权限。

分配IAM基于身份的策略，将这些权限授予相应的IAM委托人。资源管理器提供了[多个托管策略](security_iam_awsmanpol.md)，用于预定义常用权限集。您可以将它们分配给您的IAM委托人。

## 资源管理器基于身份的器策略
<a name="security_iam_service-with-iam-id-based-policies"></a>

使用IAM基于身份的策略，您可以指定针对特定资源的允许或拒绝的操作，以及允许或拒绝这些操作的条件。资源管理器支持特定的操作、资源和条件键。要了解您在JSON策略中使用的所有元素，请参阅*IAM用户指南*中的[IAMJSON策略元素参考](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)。

### 操作
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

管理员可以使用 AWS JSON策略来指定谁有权访问什么。也就是说，哪个**主体** 可以对什么**资源**执行**操作**，以及在什么**条件**下执行。

JSON策略`Action`元素描述了可用于在策略中允许或拒绝访问的操作。策略操作通常与关联的 AWS API操作同名。也有一些例外，例如没有匹配*API操作的仅限权限*的操作。还有一些操作需要在策略中执行多个操作。这些附加操作称为*相关操作*。

在策略中包含操作以授予执行关联操作的权限。

资源管理器中的策略操作在操作前使用 `resource-explorer-2` 前缀。例如，要向某人授予使用视图进行搜索的权限，请使用资源浏览器`Search`API操作，将该`resource-explorer-2:Search`操作包含在分配给该委托人的策略中。策略语句必须包含 `Action` 或 `NotAction` 元素。资源管理器定义了一组自己的操作，以描述您可以使用该服务执行的任务。这些操作与资源浏览器的API操作一致。

要在单个语句中指定多项操作，请使用逗号将它们隔开，如下例所示。

```
"Action": [
      "resource-explorer-2:action1",
      "resource-explorer-2:action2"
]
```

您可以使用通配符（`*`）指定多个操作。例如，要指定以单词 `Describe` 开头的所有操作，请包括以下操作。

```
"Action": "resource-explorer-2:Describe*"
```

要查看资源管理器操作的列表，请参阅《AWS 服务授权参考》**中的 [AWS 资源探索器定义的操作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsresourceexplorer.html#awsresourceexplorer-actions-as-permissions)。

### 资源
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

管理员可以使用 AWS JSON策略来指定谁有权访问什么。也就是说，哪个**主体** 可以对什么**资源**执行**操作**，以及在什么**条件**下执行。

`Resource`JSON策略元素指定要应用操作的一个或多个对象。语句必须包含 `Resource` 或 `NotResource` 元素。最佳做法是，使用资源的 [Amazon 资源名称 (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) 指定资源。对于支持特定资源类型（称为*资源级权限*）的操作，您可以执行此操作。

对于不支持资源级权限的操作（如列出操作），请使用通配符 (\*) 指示语句应用于所有资源。

```
"Resource": "*"
```

#### 查看
<a name="resource-type-view"></a>

资源管理器的主要资源类型是*视图*。

资源浏览器视图资源的ARN格式如下。

```
arn:${Partition}:resource-explorer-2:${Region}:${Account}:view/${ViewName}/${unique-id}
```

资源浏览器ARN格式如以下示例所示。

```
arn:aws:resource-explorer-2:us-east-1:123456789012:view/My-Search-View/1a2b3c4d-5d6e-7f8a-9b0c-abcd11111111
```

**注意**  
视图ARN的末尾包含一个唯一标识符，以确保每个视图都是唯一的。这有助于确保授予对已删除的旧视图的访问权限的IAM策略不会被意外授予对恰好与旧视图同名的新视图的访问权限。每个新视图最后都会收到一个新的、唯一的 ID，以确保它永远不会ARNs被重复使用。

有关格式的更多信息ARNs，请参阅 [Amazon 资源名称 (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)。

您可以使用分配给IAM委托人的IAM基于身份的策略，并将视图指定为。`Resource`这样做可以让您通过一个视图向一组主体授予搜索权限，并通过完全不同的视图向另一组主体授予访问权限。

例如，要向IAM策略声明`ProductionResourcesView`中命名的单个视图授予权限，请先获取该视图的 [Amazon 资源名称 (ARN)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)。**[您可以使用控制台中的 “视图” 页面查看视图的详细信息，也可以调用该`[ListViews](https://docs.aws.amazon.com/resource-explorer/latest/apireference/API_ListViews.html)`操作来检索所需的完整ARN视图。](https://console.aws.amazon.com/resource-explorer/home#/views)**然后，将其包含在策略声明中，如以下示例所示，以授予仅修改一个视图定义的权限。

```
"Effect": "Allow",
"Action": "UpdateView",
"Resource": "arn:aws:resource-explorer-2:us-east-1:123456789012:view/ProductionResourcesView/{{<unique-id>}}"
```

要允许对属于特定账户***的所有***视图执行操作，请在的相关部分使用通配符 (`*`)。ARN以下示例向指定 AWS 区域 和账户中的所有视图授予搜索权限。

```
"Effect": "Allow",
"Action": "Search",
"Resource": "arn:aws:resource-explorer-2:us-east-1:123456789012:view/*"
```

某些资源管理器操作（例如 `CreateView`）不是针对特定资源执行的，因为如以下示例所示，该资源尚不存在。在这种情况下，必须对整个资源ARN使用通配符 (`*`)。

```
"Effect": "Allow",
"Action": "resource-explorer-2:CreateView"
"Resource": "*"
```

 如果指定以通配符结尾的路径，则可以将 `CreateView` 操作限制为仅使用已批准的路径创建视图。以下策略示例展示了如何允许主体仅在路径 `view/ProductionViews/` 中创建视图。

```
"Effect": "Allow",
"Action": "resource-explorer-2:CreateView"
"Resource": "arn:aws:resource-explorer-2:us-east-1:123456789012:view/{{ProductionViews/}}*""
```

#### 索引
<a name="resource-type-index"></a>

您可以用来控制对资源管理器功能的访问权限的另一种资源类型是索引。

与索引交互的主要方式是通过在该区域中创建索引在 AWS 区域 中开启资源管理器。之后，您可以通过与视图交互来完成几乎所有其他操作。

您可以用索引执行的一项操作是控制谁可以在每个区域中***创建***视图。

**注意**  
创建视图后，仅针对视图而不是索引IAM授权所有其他视图操作。ARN

该索引有一个[ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)可以在权限策略中引用的索引。资源浏览器索引ARN采用以下格式。

```
arn:${Partition}:resource-explorer-2:${Region}:${Account}:index/${unique-id}
```

参见以下资源浏览器索引示例ARN。

```
arn:aws:resource-explorer-2:us-east-1:123456789012:index/1a2b3c4d-5d6e-7f8a-9b0c-abcd22222222
```

某些资源管理器操作会针对多种资源类型检查身份验证。例如，该[CreateView](https://docs.aws.amazon.com/resource-explorer/latest/apireference/API_CreateView.html)操作同时对索引和视图进行授权，就像资源管理器创建后一样。ARN ARN要授予管理员管理资源管理器服务的权限，您可以使用 `"Resource": "*"` 授权对任何资源、索引或视图执行操作。

或者，您可以将主体限制为只能使用指定的资源管理器资源。例如，要将操作限制为仅限于指定区域中的资源浏览器资源，您可以添加一个既匹配索引又匹配视图，但仅调出单个区域的ARN模板。在以下示例中，仅ARN匹配指定账户`us-west-2`所在区域中的索引或视图。在的第三个字段中指定 RegionARN，但在最后一个字段中使用通配符 (\*) 来匹配任何资源类型。

```
"Resource": "arn:aws:resource-explorer-2:us-west-2:123456789012:*
```

有关更多信息，请参阅《AWS 服务授权参考》**中的 [AWS 资源探索器定义的资源](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsresourceexplorer.html#awsresourceexplorer-resources-for-iam-policies)。要了解您可以使用哪些操作来指定每ARN种资源，请参阅[由定义的操作 AWS 资源探索器](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsresourceexplorer.html#awsresourceexplorer-actions-as-permissions)。

### 条件键
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

资源管理器不提供任何特定于服务的条件键，但支持使用某些全局条件键。要查看所有 AWS 全局条件键，请参阅《*IAM用户指南》*中的[AWS 全局条件上下文密钥](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)。

管理员可以使用 AWS JSON策略来指定谁有权访问什么。也就是说，哪个**主体**可以对什么**资源**执行**操作**，以及在什么**条件**下执行。

在 `Condition` 元素（或 `Condition` *块*）中，可以指定语句生效的条件。`Condition` 元素是可选的。您可以创建使用[条件运算符](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)（例如，等于或小于）的条件表达式，以使策略中的条件与请求中的值相匹配。

如果您在一个语句中指定多个 `Condition` 元素，或在单个 `Condition` 元素中指定多个键，则 AWS 使用逻辑 `AND` 运算评估它们。如果您为单个条件键指定多个值，则使用逻辑`OR`运算来 AWS 评估条件。在授予语句的权限之前必须满足所有的条件。

 在指定条件时，您也可以使用占位符变量。例如，只有在资源上标有IAM用户的用户名时，您才能向IAM用户授予访问该资源的权限。有关更多信息，请参阅《*IAM用户指南》*中的[IAM策略元素：变量和标签](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html)。

AWS 支持全局条件密钥和特定于服务的条件密钥。要查看所有 AWS 全局条件键，请参阅《*IAM用户指南》*中的[AWS 全局条件上下文密钥](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)。

要查看可在资源管理器中使用的条件键的列表，请参阅《AWS 服务授权参考》**中 [AWS 资源探索器的条件键](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsresourceexplorer.html#awsresourceexplorer-policy-keys)。要了解您可以对哪些操作和资源使用条件键，请参阅 [AWS 资源探索器定义的操作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsresourceexplorer.html#awsresourceexplorer-actions-as-permissions)。

### 示例
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>

要查看资源管理器基于身份的策略示例，请参阅 [AWS 资源探索器 基于身份的策略示例](security_iam_id-based-policy-examples.md)。

## 根据资源管理器标签进行授权
<a name="security_iam_service-with-iam-tags"></a>

您可以将标签附加到资源管理器视图中，或将请求中的标签传递到资源管理器。要基于标签控制访问，您需要使用 `resource-explorer-2:ResourceTag/{{key-name}}`、`aws:RequestTag/{{key-name}}` 或 `aws:TagKeys` 条件键在策略的[条件元素](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)中提供标签信息。有关标记资源管理器资源的更多信息，请参阅 [向视图添加标签](manage-views-tag.md)。有关在资源管理器中使用基于标签的授权，请参阅 [使用基于标签的授权来控制对视图的访问权限](manage-views-grant-access.md#manage-views-grant-access-abac)。

## 资源浏览器IAM角色
<a name="security_iam_service-with-iam-roles"></a>

[IAM角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)是您内部具有特定权限 AWS 账户 的委托人。

### 将临时凭证用于资源管理器
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

您可以使用临时证书通过联合身份登录、代入IAM角色或代入跨账户角色。您可以通过调用 AWS Security Token Service (AWS STS) API 操作（例如[AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)或）来获取临时安全证书[GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html)。

资源管理器支持使用临时凭证。

### 服务相关角色
<a name="security_iam_service-with-iam-roles-service-linked"></a>

[服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) AWS 服务 允许访问其他服务中的资源以代表您完成操作。服务相关角色显示在您的IAM账户中，并归服务所有。IAM管理员可以查看但不能编辑服务相关角色的权限。

资源管理器使用服务相关角色来执行其工作。有关资源管理器服务相关角色的详细信息，请参阅 [为资源管理器使用服务相关角色](security_iam_service-linked-roles.md)。