

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Amazon Detective 如何搭配 IAM 運作
<a name="security_iam_service-with-iam"></a>

根據預設，使用者和角色不具備建立或修改 Amazon Detective 資源的許可。他們也無法使用 AWS 管理主控台 AWS CLI或 AWS API 執行任務。Detective 管理員必須具有 AWS Identity and Access Management (IAM) 政策，授予 IAM 使用者和角色許可，以對他們所需的指定資源執行特定 API 操作。管理員接著必須將這些政策連接至需要此類許可的主體。

Detective 使用 IAM 身分型政策，為以下類型的使用者和動作授予許可：
+ **管理員帳戶**：管理員帳戶是行為圖表的擁有者，可使用其帳戶中的資料。管理員帳戶可以邀請成員帳戶將其資料提供至行為圖表。管理員帳戶也可以使用行為圖表來分類和調查與這些帳戶相關聯的問題清單和資源。

  您可以設定政策以允許管理員帳戶以外的使用者執行不同類型的工作。例如，來自管理員帳戶的使用者可能只有管理成員帳戶的許可。其他使用者可能只有使用行為圖表進行調查的許可。
+ **成員帳戶**：成員帳戶是受邀為行為圖表提供資料的帳戶。成員帳戶會回應邀請。接受邀請後，成員帳戶可以從行為圖表中移除其帳戶。

若要全面了解 Detective 和其他 AWS 服務 如何使用 IAM，請參閱《*IAM 使用者指南*》中的[在 JSON 標籤上建立政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-json-editor)。

## Detective 身分型政策
<a name="security_iam_service-with-iam-id-based-policies"></a>

使用 IAM 身分型政策，您可以指定允許或拒絕的動作和資源，以及在何種條件下允許或拒絕動作。Detective 支援特定動作、資源和條件金鑰。

若要了解您在 JSON 政策中使用的所有元素，請參閱 *IAM 使用者指南*中的 [JSON 政策元素參考](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` 元素描述您可以用來允許或拒絕政策中存取的動作。政策會使用動作來授予執行相關聯動作的許可。

政策陳述式必須包含 `Action` 或 `NotAction` 元素。`Action` 元素會列出政策允許的動作。`NotAction` 元素會列出不允許的動作。

針對 Detective 定義的動作反映了您可以使用 Detective 執行的工作。Detective 中的政策動作具有以下前綴：`detective:`。

例如，若要授予使用 `CreateMembers` API 操作邀請成員帳戶加入行為圖表的許可，您應在其政策中加入 `detective:CreateMembers` 動作。

若要在單一陳述式中指定多個動作，請用逗號分隔。例如，對於成員帳戶，政策包括與管理邀請相關的一組動作：

```
"Action": [
      "detective:ListInvitations",
      "detective:AcceptInvitation",
      "detective:RejectInvitation",
      "detective:DisassociateMembership
]
```

您可以使用萬用字元 (\*) 來指定多個動作。例如，若要管理其行為圖表中使用的資料，Detective 中的管理員帳戶必須能夠執行以下工作：
+ 檢視他們的成員帳戶清單 (`ListMembers`)。
+ 取得已選取成員帳戶的資訊 (`GetMembers`)。
+ 邀請成員帳戶至其行為圖表 (`CreateMembers`)。
+ 從成員的行為圖表 (`DeleteMembers`) 中移除成員。

您可以向以文字 `Members` 結尾的所有動作授予存取，而無需個別列出此類動作。該政策可能包括以下動作：

```
"Action": "detective:*Members"
```



若要查看 Detective 動作的清單，請參閱《服務授權參考**》中的[由 Amazon Detective 定義的動作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazondetective.html#amazondetective-actions-as-permissions)。

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

管理員可以使用 AWS JSON 政策來指定誰可以存取內容。也就是說，哪個**主體**在什麼**條件**下可以對什麼**資源**執行哪些**動作**。

`Resource` JSON 政策元素可指定要套用動作的物件。最佳實務是使用其 [Amazon Resource Name (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) 來指定資源。若動作不支援資源層級許可，使用萬用字元 (\*) 表示該陳述式適用於所有資源。

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



如需 ARNs 格式的詳細資訊，請參閱 [Amazon Resource Name (ARNs AWS 和服務命名空間](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)。

針對 Detective，唯一的資源類型是行為圖表。Detective 中的行為圖表資源具有以下 ARN：

```
arn:aws:detective:${Region}:${AccountId}:graph:${GraphId}
```

例如，行為圖表具有以下值：
+ 行為圖表的區域是 `us-east-1`。
+ 管理員帳戶 ID 的帳戶 ID 為 `111122223333`。
+ 行為圖表的圖表 ID 是 `027c7c4610ea4aacaf0b883093cab899`。

若要在 `Resource` 陳述式中識別此行為圖表，您可以使用以下 ARN：

```
"Resource": "arn:aws:detective:us-east-1:111122223333:graph:027c7c4610ea4aacaf0b883093cab899"
```

若要在 `Resource` 陳述式中指定多項資源，請使用逗號進行分隔。

```
"Resource": [
      "resource1",
      "resource2"
]
```

例如，同一個 AWS 帳戶可能會受邀成為多個行為圖表中的成員帳戶。在該成員帳戶的政策中，`Resource` 陳述式將列出帳戶被邀請使用的行為圖表。

```
"Resource": [
      "arn:aws:detective:us-east-1:111122223333:graph:027c7c4610ea4aacaf0b883093cab899",
      "arn:aws:detective:us-east-1:444455556666:graph:056d2a9521xi2bbluw1d164680eby416"
]
```

建立行為圖表、列出行為圖表和列出行為圖表邀請等部分 Detective 動作不會在特定行為圖表上執行。對於此類動作，`Resource` 陳述式必須使用萬用字元 (\*)。

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

針對管理員帳戶動作，Detective 一律會驗證提出要求的使用者是否屬於受影響行為圖表的管理員帳戶。對於成員帳戶動作，Detective 始終會驗證發出請求的使用者是否屬於該成員帳戶。即使 IAM 政策向行為圖表授予存取權，但如果使用者不屬於正確的帳戶，使用者也無法執行動作。

針對在特定行為圖表上執行的所有動作，IAM 政策應包含圖表 ARN。圖表 ARN 可以在以後新增。例如，當帳戶首次啟用 Detective 時，初始 IAM 政策會使用圖表 ARN 的萬用字元，向所有 Detective 動作提供存取。透過此舉，使用者可以立即開始管理其行為圖表中的成員帳戶並進行調查。建立行為圖表之後，您可以更新政策以新增圖表 ARN。

### 條件索引鍵
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

管理員可以使用 AWS JSON 政策來指定誰可以存取內容。也就是說，哪個**主體**在什麼**條件**下可以對什麼**資源**執行哪些**動作**。

`Condition` 元素會根據定義的條件，指定陳述式的執行時機。您可以建立使用[條件運算子](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)的條件運算式 (例如等於或小於)，來比對政策中的條件和請求中的值。若要查看所有 AWS 全域條件索引鍵，請參閱《*IAM 使用者指南*》中的[AWS 全域條件內容索引鍵](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)。

Detective 不會定義自己的條件金鑰組。其會支援使用某些全域條件金鑰。若要查看所有 AWS 全域條件金鑰，請參閱《*IAM 使用者指南*》中的[AWS 全域條件內容金鑰](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)。



若要了解您可以搭配哪些動作和資源使用條件金鑰，請參閱 [Amazon Detective 定義的動作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazondetective.html#amazondetective-actions-as-permissions)。

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



若要檢視 Detective 身分型政策範例，請參閱 [Amazon Detective 身分型政策範例](security_iam_id-based-policy-examples.md)。

## Detective 資源型政策 (不支援)。
<a name="security_iam_service-with-iam-resource-based-policies"></a>

Detective 不支援資源型政策。

## 基於 Detective 行為圖表標籤的授權
<a name="security_iam_service-with-iam-tags"></a>

每個行為圖表都可以分配標籤值。您可以在條件陳述式中使用此類標籤值，來管理行為圖表的存取權。

標籤值的條件陳述式使用以下格式。

```
{"StringEquals"{"aws:ResourceTag/{{<tagName>}}": "{{<tagValue>}}"}}
```

例如，當 `Department` 標籤值為 `Finance` 時，使用以下程式碼來允許或拒絕動作。

```
{"StringEquals"{"aws:ResourceTag/Department": "Finance"}}
```

如需使用資源標籤值的政策範例，請參閱 [管理員帳戶：根據標籤值限制存取許可](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-graph-tags)。

## Detective IAM 角色
<a name="security_iam_service-with-iam-roles"></a>

[IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)是您 AWS 帳戶中具有特定許可的實體。

### 將臨時憑證與 Detective 搭配使用
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

您可以搭配聯合使用暫時憑證、擔任 IAM 角色，或是擔任跨帳戶角色。您可以透過呼叫 [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) 或 [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html) 等 AWS STS API 操作來取得臨時安全登入資料。

Detective 支援使用臨時憑證。

### 服務連結角色
<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 管理員可以檢視，但不能編輯服務連結角色的許可。

如需建立或管理 Detective 服務連結角色的詳細資訊，請參閱 [使用 Detective 的服務連結角色](using-service-linked-roles.md)。

### 服務角色 (不支援)
<a name="security_iam_service-with-iam-roles-service"></a>

此功能可讓服務代表您擔任[服務角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role)。此角色可讓服務存取其他服務中的資源，以代表您完成動作。服務角色會出現在您的 IAM 帳戶中，且由該帳戶所擁有。這表示 IAM 管理員可以變更此角色的許可。不過，這樣可能會破壞此服務的功能。

Detective 不支援服務角色。