

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

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

在您使用 IAM 管理對 Amazon Rekognition 的存取權之前，您應該瞭解哪些 IAM 功能可以與 Amazon Rekognition 搭配使用。若要全面了解 Amazon Rekognition 和其他 AWS 服務如何與 IAM 搭配使用，請參閱《IAM *使用者指南*》中的[AWS 與 IAM 搭配使用的 服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)。

**Topics**
+ [Amazon Rekognition 身分型政策](#security_iam_service-with-iam-id-based-policies)
+ [Amazon Rekognition 資源型政策](#security_iam_service-with-iam-resource-based-policies)
+ [Amazon Rekognition IAM 角色](#security_iam_service-with-iam-roles)

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

使用 IAM 身分型政策，您可以指定允許或拒絕的動作和資源，以及在何種條件下允許或拒絕動作。Amazon Rekognition 支援特定動作、資源和條件鍵。若要了解您在 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` 元素描述您可以用來允許或拒絕政策中存取的動作。政策會使用動作來授予執行相關聯動作的許可。

Amazon Rekognition 中的政策動作會在動作之前使用下列前綴：`rekognition:`。例如，若要授予某人使用 Amazon Rekognition `DetectLabels` API 操作的許可，來偵測影像中的物件、場景或概念，請在其政策中加入 `rekognition:DetectLabels` 動作。政策陳述式必須包含 `Action` 或 `NotAction` 元素。Amazon Rekognition 會定義自己的一組動作，描述您可以使用此服務執行的任務。

若要在單一陳述式中指定多個動作，請用逗號分隔，如下所示：

```
"Action": [
      "rekognition:action1",
      "rekognition:action2"
```

您也可以使用萬用字元 (\$1) 來指定多個動作。例如，若要指定開頭是 `Describe` 文字的所有動作，請包含以下動作：

```
"Action": "rekognition:Describe*"
```



若要查看 Amazon Rekognition 動作清單，請參閱《IAM 使用者指南》**中的 [Amazon Rekognition 定義的動作](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonrekognition.html#amazonrekognition-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) 來指定資源。若動作不支援資源層級許可，使用萬用字元 (\$1) 表示該陳述式適用於所有資源。

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



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

例如，若要在陳述式中指定 `MyCollection` 集合，請使用以下 ARN。

```
"Resource": "arn:aws:rekognition:us-east-1:123456789012:collection/MyCollection"
```

若要指定屬於特定帳戶的所有執行個體，請使用萬用字元 (\$1)：

```
"Resource": "arn:aws:rekognition:us-east-1:123456789012:collection/*"
```

有些 Amazon Rekognition 動作無法對特定資源執行，例如用來建立資源的動作。在這些情況下，您必須使用萬用字元 (\$1)。

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

若要查看 Amazon Rekognition 資源類型及其 ARN 的清單，請參閱《IAM 使用者指南》**中的 [Amazon Rekognition 定義的資源](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonrekognition.html#amazonrekognition-resources-for-iam-policies)。若要了解您可以使用哪些動作指定每個資源的 ARN，請參閱 [Amazon Rekognition 定義的動作](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonrekognition.html#amazonrekognition-actions-as-permissions)。

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

Amazon Rekognition 不提供任何服務專用條件索引鍵，但它支援一些全域條件索引鍵的使用。若要查看所有 AWS 全域條件金鑰，請參閱《*IAM 使用者指南*》中的[AWS 全域條件內容金鑰](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)。

## Amazon Rekognition 資源型政策
<a name="security_iam_service-with-iam-resource-based-policies"></a>

僅在複製自訂標籤模型時，Amazon Rekognition 才支援以資源為基礎的政策。如需詳細資訊，請參閱 [Amazon Rekognition 資源型政策範例](https://docs.aws.amazon.com/rekognition/latest/dg/security_iam_resource-based-policy-examples.html)。

其他服務 (例如 Amazon S3) 也支援以資源為基礎的許可政策。例如，您可以將政策連接至 S3 儲存貯體，以管理該儲存貯體的存取許可。

若要存取存放在 Amazon S3 儲存貯體中的影像，您必須具備存取 S3 儲存貯體中物件的許可。若有此許可，Amazon Rekognition 就可以從 S3 儲存貯體下載影像。下列範例政策允許使用者對名為 amzn-s3-demo-bucket3 的 S3 儲存貯體執行 `s3:GetObject`動作。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:GetObject",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket3/*"
            ]
        }
    ]
}
```

------

若要使用啟用版本控制的 S3 儲存貯體，請新增 `s3:GetObjectVersion` 動作，如下列範例所示。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket3/*"
            ]
        }
    ]
}
```

------

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

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

### 將暫時憑證與 Amazon Rekognition 搭配使用
<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 操作來取得臨時安全登入資料。

Amazon Rekognition 支援使用暫時憑證。

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

Amazon Rekognition 不支援服務連結角色。

### 服務角色
<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 管理員可以變更此角色的許可。不過，這樣可能會破壞此服務的功能。

Amazon Rekognition 支援服務角色。

使用服務角色可能會造成安全問題，其中 Amazon Rekognition 會用來呼叫其他服務，並對其無法存取的資源採取行動。為了確保您的帳戶安全，您應該限制 Amazon Rekognition 只能存取正在使用的資源的範圍。這可以通過將信任政策附加到您的 IAM 服務角色來完成。如需如何執行此作業的資訊，請參閱[預防跨服務混淆代理人](cross-service-confused-deputy-prevention.md)。

### 在 Amazon Rekognition中選擇 IAM 角色
<a name="security_iam_service-with-iam-roles-choose"></a>

當您設定 Amazon Rekognition 來分析儲存影片時，必須選擇角色，以允許 Amazon Rekognition 代您存取 Amazon SNS。如果您之前已建立服務角色或服務連結角色，Amazon Rekognition 會提供您角色清單讓您選擇。如需詳細資訊，請參閱[設定 Amazon Rekognition Video](api-video-roles.md)。

### 範例：設定 Amazon Rekognition 以存取 Amazon S3 儲存貯體中的映像
<a name="security_iam_service-s3-example"></a>

以下是如何設定 Amazon Rekognition 以分析 Amazon S3 儲存貯體中影像的範例。如果您想要使用 Amazon Rekognition 分析 Amazon S3 儲存貯體中的映像，您必須執行下列動作：

1. 確保您的 IAM 使用者/角色 （用戶端） 具有呼叫相關 Amazon Rekognition API 操作 （例如 DetectLabels、DetectFaces等） 的許可

   連接以身分為基礎的政策，授予適當的許可來叫用所需的 API 操作。例如，若要授予您的角色呼叫 `DetectLabels`和 的許可`DetectFaces`，您可以將如下所示的政策連接到您的角色：

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "rekognition:DetectLabels",
                   "rekognition:DetectFaces"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Amazon Rekognition 服務需要存取 Amazon S3 儲存貯體的許可。建立 IAM 服務角色，在進行 API 呼叫時，您需要傳遞給 Amazon Rekognition。確定服務角色：信任 Amazon Rekognition 服務主體，具有儲存貯體的`s3:GetObject`許可。

   信任政策可能如下所示：

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "rekognition.amazonaws.com"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

   連接到服務角色的身分型政策可能如下所示：

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "s3:GetObject",
               "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
           }
       ]
   }
   ```

------