设置 SDK 权限 - Amazon Lookout for Vision

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

设置 SDK 权限

要使用 Amazon Lookout for Vision SDK 操作,您需要获得 Lookout for Vision API 和用于模型训练的 Amazon S3 桶的访问权限。

授予 SDK 操作权限

建议仅授予执行任务所必需的权限(最低权限)。例如,要拨打电话 DetectAnomalies,您需要获得执行权限lookoutvision:DetectAnomalies。要查找操作的权限,请查看 API 参考

刚开始使用应用程序时,您可能不知道具体需要哪些权限,因此可以从广泛权限入手。 AWS 托管式策略可以提供一些权限来帮助您入门。

控制台的托管式策略还提供 SDK 操作的访问权限。有关更多信息,请参阅 步骤 2:设置权限

有关 AWS 托管策略的信息,请参阅 AWS 托管策略

如果知道应用程序所需的权限,则可定义特定于您的使用场景的客户管理型策略,从而进一步减少权限。有关更多信息,请参阅客户管理型策略

注意

入门说明需要 s3:PutObject 权限。有关更多信息,请参阅 步骤 1:创建清单文件并上传图像

若要分配权限,请参阅 分配权限

授予 Amazon S3 桶权限

要训练模型,您需要具有适当权限的 Amazon S3 桶来存储图像、清单文件和训练输出。桶必须归您的亚马逊云科技账户所有,并且必须位于您使用 Amazon Lookout for Vision 所在的亚马逊云科技区域。

仅限 SDK 的托管式策略(AmazonLookoutVisionFullAccessAmazonLookoutVisionReadOnlyAccess)不包括 Amazon S3 桶权限,您需要应用以下权限策略才能访问所使用的桶,包括现有控制台桶。

控制台托管式策略(AmazonLookoutVisionConsoleFullAccessAmazonLookoutVisionConsoleReadOnlyAccess)包括对控制台桶的访问权限。如果通过 SDK 操作访问控制台桶,并且拥有控制台托管式策略权限,则无需使用以下策略。有关更多信息,请参阅 步骤 2:设置权限

确定任务权限

使用以下信息确定要执行的任务需要哪些权限。

创建数据集

要使用创建数据集 CreateDataset,您需要以下权限。

  • s3:GetBucketLocation:允许 Lookout for Vision 验证您的桶是否与您使用 Lookout for Vision 所在的区域相同。

  • s3:GetObject:允许访问 DatasetSource 输入参数中指定的清单文件。如果要指定清单文件的确切 S3 对象版本,则还需要清单文件上的 s3:GetObjectVersion。有关更多信息,请参阅在 S3 桶中使用版本控制

创建模型

要使用创建模型 CreateModel,您需要以下权限。

  • s3:GetBucketLocation:允许 Lookout for Vision 验证您的桶是否与您使用 Lookout for Vision 所在的区域相同。

  • s3:GetObject:允许访问项目训练及测试数据集中指定的图像。

  • s3:PutObject:给予在指定的桶中存储训练输出的权限。您需要在 OutputConfig 参数中指定输出桶的位置。或者,您可以缩小权限范围,使之仅限 S3LocationPrefix 字段中指定的对象键。有关更多信息,请参阅OutputConfig

访问图像、清单文件和训练输出

无需 Amazon S3 桶权限即可查看 Amazon Lookout for Vision 操作响应。如果要访问操作响应中引用的图像、清单文件和训练输出,则需要 s3:GetObject 权限。如果要访问受版本控制的 Amazon S3 对象,则需要 s3:GetObjectVersion 权限。

设置 Amazon S3 桶策略

您可以使用以下策略来指定所需的 Amazon S3 桶权限,以便创建数据集(CreateDataset)、创建模型(CreateModel)以及访问图像、清单文件和训练输出。将 my-bucket 的值更改为您要使用的桶的名称。

您可以根据自身需求调整策略。有关更多信息,请参阅 确定任务权限。将策略添加到所需的用户。有关更多信息,请参阅创建 IAM 策略

{ "Version": "2012-10-17", "Statement": [ { "Sid": "LookoutVisionS3BucketAccess", "Effect": "Allow", "Action": "s3:GetBucketLocation", "Resource": [ "arn:aws:s3:::my-bucket" ], "Condition": { "Bool": { "aws:ViaAWSService": "true" } } }, { "Sid": "LookoutVisionS3ObjectAccess", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::my-bucket/*" ], "Condition": { "Bool": { "aws:ViaAWSService": "true" } } } ] }

若要分配权限,请参阅 分配权限

分配权限

要提供访问权限,请为您的用户、组或角色添加权限: