

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

# 為 Ground Truth 標籤工作建立 SageMaker AI 執行角色
<a name="sms-security-permission-execution-role"></a>

設定標籤工作時，您需要提供*執行角色*，這是 SageMaker AI 授權假設啟動和執行標籤工作的角色。

此角色必須授予下列項目的 Ground Truth 存取許可：
+ Amazon S3 以擷取輸入資料，並將輸出資料寫入至 Amazon S3 儲存貯體。您可以透過提供儲存貯體 ARN，授予 IAM 角色存取整個儲存貯體的許可；或者，您也可以授予角色存取儲存貯體中特定資源的存取權。例如，儲存貯體的 ARN 看起來可能類似於 `arn:aws:s3:::amzn-s3-demo-bucket1`，且 Amazon S3 儲存貯體中資源的 ARN 看起來可能類似於 `arn:aws:s3:::amzn-s3-demo-bucket1/prefix/file-name.png`。若要將動作套用至 Amazon S3 儲存貯體中的所有資源，您可以使用萬用字元：`*`。例如 `arn:aws:s3:::amzn-s3-demo-bucket1/prefix/*`。如需更多資訊，請參閱 Amazon Simple Storage Service 使用者指南中的 [Amazon S3 資源](https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html)。
+ CloudWatch 用來記錄工作者指標和標籤工作狀態。
+ AWS KMS 用於資料加密。(選用)
+ AWS Lambda 用於在建立自訂工作流程時處理輸入和輸出資料。

此外，如果您建立[串流標籤工作](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-streaming-labeling-job.html)，則此角色必須具有存取許可：
+ Amazon SQS 可建立與用於[管理標籤請求](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-streaming-labeling-job.html#sms-streaming-how-it-works-sqs)的 SQS 佇列互動。
+ Amazon SNS 以從您的 Amazon SNS 輸入主題訂閱和擷取訊息，並將傳送訊息到您的 Amazon SNS 輸出主題。

所有這些許可都可以透過 `[AmazonSageMakerGroundTruthExecution](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerGroundTruthExecution)` 受管政策進行授權，而*例外*情形如下：
+ Amazon S3 儲存貯體的資料和儲存磁碟區加密。若要了解如何設定這些許可，請參閱[使用 加密輸出資料和儲存磁碟區 AWS KMS](sms-security-kms-permissions.md)。
+ 選取及調用函式名稱中不包含 `GtRecipe`、`SageMaker`、`Sagemaker`、`sagemaker`、或 `LabelingFunction` 的 Lambda 函式之權限。
+ Amazon S3 儲存貯體的字首或儲存貯體名稱不包含 `GroundTruth`、`Groundtruth`、`groundtruth`、`SageMaker`、`Sagemaker` 和 `sagemaker`，或是[物件標籤](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-tagging.html)名稱中包含 `SageMaker` (不區分大小寫)。

如果您需要比 `AmazonSageMakerGroundTruthExecution` 更為精細的許可，請使用下列政策範例，建立符合您特定使用案例的執行角色。

**Topics**
+ [內建任務類型 (非串流) 執行角色需求](#sms-security-permission-execution-role-built-in-tt)
+ [內建任務類型 (串流) 執行角色需求](#sms-security-permission-execution-role-built-in-tt-streaming)
+ [自訂任務類型的執行角色需求](#sms-security-permission-execution-role-custom-tt)
+ [自動化資料標籤權限需求](#sms-security-permission-execution-role-custom-auto-labeling)

## 內建任務類型 (非串流) 執行角色需求
<a name="sms-security-permission-execution-role-built-in-tt"></a>

下列政策將為[內建任務類型](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-task-types.html)授權建立標籤工作。此執行政策不包含 AWS KMS 資料加密或解密的許可。使用您自己的 Amazon S3 ARN 取代每個紅色斜體的 ARN。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "S3ViewBuckets",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:s3:::<input-bucket-name>",
                "arn:aws:s3:::<output-bucket-name>"
            ]
        },
        {
            "Sid": "S3GetPutObjects",
            "Effect": "Allow",
            "Action": [
                "s3:AbortMultipartUpload",
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::<input-bucket-name>/*",
                "arn:aws:s3:::<output-bucket-name>/*"
            ]
        },
        {
            "Sid": "CloudWatch",
            "Effect": "Allow",
            "Action": [
                "cloudwatch:PutMetricData",
                "logs:CreateLogStream",
                "logs:CreateLogGroup",
                "logs:DescribeLogStreams",
                "logs:PutLogEvents"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## 內建任務類型 (串流) 執行角色需求
<a name="sms-security-permission-execution-role-built-in-tt-streaming"></a>

如果您建立串流標籤工作，則必須將類似下列內容的政策，新增至用於建立標籤工作的執行角色。若要縮小政策的範圍，請將 `*`中的 取代`Resource`為您想要授予 IAM 角色存取和使用許可的特定 AWS 資源。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:AbortMultipartUpload",
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*",
                "arn:aws:s3:::amzn-s3-demo-bucket2/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": "*",
            "Condition": {
                "StringEqualsIgnoreCase": {
                    "s3:ExistingObjectTag/SageMaker": "true"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketLocation",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket",
                "arn:aws:s3:::amzn-s3-demo-bucket2"
            ]
        },
        {
            "Sid": "CloudWatch",
            "Effect": "Allow",
            "Action": [
                "cloudwatch:PutMetricData",
                "logs:CreateLogStream",
                "logs:CreateLogGroup",
                "logs:DescribeLogStreams",
                "logs:PutLogEvents"
            ],
            "Resource": "*"
        },
        {
            "Sid": "StreamingQueue",
            "Effect": "Allow",
            "Action": [
                "sqs:CreateQueue",
                "sqs:DeleteMessage",
                "sqs:GetQueueAttributes",
                "sqs:GetQueueUrl",
                "sqs:ReceiveMessage",
                "sqs:SendMessage",
                "sqs:SetQueueAttributes"
            ],
            "Resource": "arn:aws:sqs:*:*:*GroundTruth*"
        },
        {
            "Sid": "StreamingTopicSubscribe",
            "Effect": "Allow",
            "Action": "sns:Subscribe",
            "Resource": [
                "arn:aws:sns:us-east-1:111122223333:input-topic-name",
                "arn:aws:sns:us-east-1:111122223333:output-topic-name"
            ],
            "Condition": {
                "StringEquals": {
                    "sns:Protocol": "sqs"
                },
                "StringLike": {
                    "sns:Endpoint": "arn:aws:sns:us-east-1:111122223333:*GroundTruth*"
                }
            }
        },
        {
            "Sid": "StreamingTopic",
            "Effect": "Allow",
            "Action": [
                "sns:Publish"
            ],
            "Resource": [
                "arn:aws:sns:us-east-1:111122223333:input-topic-name",
                "arn:aws:sns:us-east-1:111122223333:output-topic-name"
            ]
        },
        {
            "Sid": "StreamingTopicUnsubscribe",
            "Effect": "Allow",
            "Action": [
                "sns:Unsubscribe"
            ],
            "Resource": [
                "arn:aws:sns:us-east-1:111122223333:input-topic-name",
                "arn:aws:sns:us-east-1:111122223333:output-topic-name"
            ]
        }
    ]
}
```

------

## 自訂任務類型的執行角色需求
<a name="sms-security-permission-execution-role-custom-tt"></a>

如果您要建立[自訂標籤工作流程](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-custom-templates.html)，請將下列陳述式新增至執行角色政策，如同在 [內建任務類型 (非串流) 執行角色需求](#sms-security-permission-execution-role-built-in-tt) 或 [內建任務類型 (串流) 執行角色需求](#sms-security-permission-execution-role-built-in-tt-streaming) 中找到的執行角色政策。

此政策將執行角色授予 `Invoke` 您註釋前和註釋後 Lambda 函式的權限。

```
{
    "Sid": "LambdaFunctions",
    "Effect": "Allow",
    "Action": [
        "lambda:InvokeFunction"
    ],
    "Resource": [
        "arn:aws:lambda:<region>:<account-id>:function:<pre-annotation-lambda-name>",
        "arn:aws:lambda:<region>:<account-id>:function:<post-annotation-lambda-name>"
    ]
}
```

## 自動化資料標籤權限需求
<a name="sms-security-permission-execution-role-custom-auto-labeling"></a>

如果要在啟用[自動化資料標籤](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-automated-labeling.html)的情況下建立標籤工作，則必須 1) 新增一個政策，附加到執行角色的 IAM 政策，然後 2) 更新執行角色的信任政策。

下列陳述式允許將 IAM 執行角色傳遞給 SageMaker AI，以便分別用於執行用於主動學習和自動化資料標籤的訓練和推論任務。將此陳述式新增至執行角色政策，就像在 [內建任務類型 (非串流) 執行角色需求](#sms-security-permission-execution-role-built-in-tt) 或 [內建任務類型 (串流) 執行角色需求](#sms-security-permission-execution-role-built-in-tt-streaming) 中找到的執行角色政策。將 `arn:aws:iam::<account-number>:role/<role-name>` 取代為執行角色 ARN。您可以在 IAM 主控台的**角色**底下，找到您的 IAM 角色 ARN。

```
{
    "Effect": "Allow",
    "Action": [
        "iam:PassRole"
    ],
    "Resource": "arn:aws:iam::<account-number>:role/<execution-role-name>",
    "Condition": {
        "StringEquals": {
            "iam:PassedToService": [
                "sagemaker.amazonaws.com"
            ]
        }
    }
}
```

下列陳述式可讓 SageMaker AI 擔任執行角色，以建立和管理 SageMaker 訓練和推論任務。此政策必須新增至執行角色的信任關係。若要了解如何新增或修改 IAM 角色信任政策，請參閱 IAM 使用者指南中的[修改角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html)。

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

****  

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

------

