

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

# 将 Amazon Rekognition 用作 FedRAMP 授权服务
<a name="fedramp"></a>

 AWS FedRAMP 合规计划包括亚马逊 Rekognition 即服务。 FedRAMP-authorized 如果您是联邦或商业客户，则可以使用该服务来处理和存储 AWS 美国东部和美国西部地区的敏感工作负载，其数据最高可达中等影响级别。您可以将该服务用于 AWS GovCloud（美国）地区授权边界内的敏感工作负载，数据最高可达高影响级别。有关 FedRAMP 合规性的更多信息，请参阅 [AWS FedRAMP 合规性](https://aws.amazon.com/compliance/fedramp/)。

要符合 FedRAMP 要求，您可以使用联邦信息处理标准 (FIPS) 端点。这样一来，您在处理敏感信息时便可访问 FIPS 140-2 验证的加密模块。有关 FIPS 端点的更多信息，请参阅 [FIPS 140-2 概述](https://aws.amazon.com/compliance/fips/)。

您可以使用 AWS Command Line Interface (AWS CLI) 或其中一个 AWS 软件开发工具包来指定 Amazon Rekognition 使用的终端节点。

有关可用于 Amazon Rekognition 的端点，请参阅 [Amazon Rekognition 区域和端点](https://docs.aws.amazon.com/general/latest/gr/rande.html#rekognition_region)。

以下是**《Amazon Rekognition 开发人员指南》中[列出集合](list-collection-procedure.md)主题的示例。这些示例进行了修改，以指定区域和通过其访问 Amazon Rekognition 的 FIPS 端点。

------
#### [ Java ]

对于 Java，在构建 Amazon Rekognition 客户端时可使用 `withEndpointConfiguration` 方法。此示例显示了您在美国东部 (N.Virginia) 区域中使用 FIPS 终端节点的集合：

```
//Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
//PDX-License-Identifier: MIT-0 (For details, see https://github.com/awsdocs/amazon-rekognition-developer-guide/blob/master/LICENSE-SAMPLECODE.)

package aws.example.rekognition.image;

import java.util.List;

import com.amazonaws.services.rekognition.AmazonRekognition;
import com.amazonaws.services.rekognition.AmazonRekognitionClientBuilder;
import com.amazonaws.services.rekognition.model.ListCollectionsRequest;
import com.amazonaws.services.rekognition.model.ListCollectionsResult;

public class ListCollections {

   public static void main(String[] args) throws Exception {


      AmazonRekognition amazonRekognition = AmazonRekognitionClientBuilder.standard()
         .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration("https://rekognition-fips.us-east-1.amazonaws.com","us-east-1"))
         .build();
 

      System.out.println("Listing collections");
      int limit = 10;
      ListCollectionsResult listCollectionsResult = null;
      String paginationToken = null;
      do {
         if (listCollectionsResult != null) {
            paginationToken = listCollectionsResult.getNextToken();
         }
         ListCollectionsRequest listCollectionsRequest = new ListCollectionsRequest()
                 .withMaxResults(limit)
                 .withNextToken(paginationToken);
         listCollectionsResult=amazonRekognition.listCollections(listCollectionsRequest);
         
         List < String > collectionIds = listCollectionsResult.getCollectionIds();
         for (String resultId: collectionIds) {
            System.out.println(resultId);
         }
      } while (listCollectionsResult != null && listCollectionsResult.getNextToken() !=
         null);
     
   } 
}
```

------
#### [ AWS CLI ]

对于 AWS CLI，使用`--endpoint-url`参数指定访问 Amazon Rekognition 的终端节点。以下示例显示了在美国东部（俄亥俄州）区域使用 FIPS 端点的集合：

```
aws rekognition list-collections --endpoint-url https://rekognition-fips.us-east-2.amazonaws.com --region us-east-2
```

------
#### [ Python ]

对于 Python，可在 boto3.client 函数中使用 `endpoint_url` 参数。将其设置为要指定的端点。以下示例显示了在美国西部（俄勒冈州）区域使用 FIPS 端点的集合：

```
#Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
#PDX-License-Identifier: MIT-0 (For details, see https://github.com/awsdocs/amazon-rekognition-developer-guide/blob/master/LICENSE-SAMPLECODE.)

import boto3

def list_collections():

    max_results=2
    
    client=boto3.client('rekognition', endpoint_url='https://rekognition-fips.us-west-2.amazonaws.com', region_name='us-west-2')

    #Display all the collections
    print('Displaying collections...')
    response=client.list_collections(MaxResults=max_results)
    collection_count=0
    done=False
    
    while done==False:
        collections=response['CollectionIds']

        for collection in collections:
            print (collection)
            collection_count+=1
        if 'NextToken' in response:
            nextToken=response['NextToken']
            response=client.list_collections(NextToken=nextToken,MaxResults=max_results)
            
        else:
            done=True

    return collection_count   

def main():

    collection_count=list_collections()
    print("collections: " + str(collection_count))
if __name__ == "__main__":
    main()
```

------