

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

# 設定 AWS Glue 的 IAM 許可
<a name="configure-iam-for-glue"></a>

您可以使用 AWS Identity and Access Management (IAM) 來定義 AWS Glue 用來存取 資源的政策和角色。下列步驟會引導您選擇各種選項，以為 AWS Glue設定許可。根據您的商業需求，您可能需要新增或降低資源存取。

**注意**  
若要 AWS Glue 改為開始使用 的基本 IAM 許可，請參閱 [設定 的 IAM 許可 AWS Glue](set-up-iam.md)。

1. [建立適用於 AWS Glue 服務的 IAM 政策](create-service-policy.md)：建立允許存取 AWS Glue 資源的服務政策。

1. [為 AWS Glue 建立 IAM 角色](create-an-iam-role.md)：建立 IAM 角色，並連接 AWS Glue 服務政策和 AWS Glue 使用的 Amazon Simple Storage Service (Amazon S3) 資源的政策。

1. [連接政策到存取 AWS Glue 的使用者或群組](attach-policy-iam-user.md)：連接政策到登入 AWS Glue 主控台的任何使用者或群組。

1. [建立適用於筆記本的 IAM 政策](create-notebook-policy.md)：建立筆記本伺服器政策，以在開發端點上建立筆記本伺服器時使用。

1. [建立適用於筆記本的 IAM 角色](create-an-iam-role-notebook.md)：建立 IAM 角色，並連接筆記本伺服器政策。

1. [建立 Amazon SageMaker AI 筆記本的 IAM 政策](create-sagemaker-notebook-policy.md)：建立 IAM 政策，以在開發端點上建立 Amazon SageMaker AI 筆記本時使用。

1. [為 Amazon SageMaker AI 筆記本建立 IAM 角色](create-an-iam-role-sagemaker-notebook.md)：建立 IAM 角色，並連接政策，以在開發端點上建立 Amazon SageMaker AI 筆記本時授予許可。

# 步驟 1：建立適用於 AWS Glue 服務的 IAM 政策
<a name="create-service-policy"></a>

對於存取其他 AWS 資源上資料的任何操作，例如存取 Amazon S3 中的物件， AWS Glue都需要代表您存取資源的許可。您可以使用 AWS Identity and Access Management (IAM) 提供這些許可。

**注意**  
如果您使用 AWS 受管政策 ，則可以略過此步驟`AWSGlueServiceRole`。

在本步驟中，您將建立一個類似 `AWSGlueServiceRole` 的政策。最新版本的 `AWSGlueServiceRole` 可在 IAM 主控台找到。

**為 建立 IAM 政策 AWS Glue**

此政策授予部分 Amazon S3 動作的許可，在 AWS Glue 擔任使用此政策的角色時可用於管理其所需的帳戶內資源。此政策指定的部分資源參照 AWS Glue 用於 Amazon S3 儲存貯體、Amazon S3 ETL 指令碼、CloudWatch Logs 和 Amazon EC2 資源的預設名稱。為了簡化，AWS Glue 寫入部分 Amazon S3 物件到您預設字首為 `aws-glue-*` 之帳戶的儲存貯體內。

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在左側導覽窗格中選擇 **Policies** (政策)。

1. 選擇**建立政策**。

1. 在 **Create Policy** (建立政策) 畫面上導覽至索引標籤，以編輯 JSON。使用下列 JSON 陳述式建立政策文件，然後選擇 **Review policy** (檢閱政策)。
**注意**  
新增 Amazon S3 資源所需的任何許可。您可能希望將存取政策的資源部分範圍限縮在需要的資源。

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "glue:*",
           "s3:GetBucketLocation",
           "s3:ListBucket",
           "s3:ListAllMyBuckets",
           "s3:GetBucketAcl",
           "ec2:DescribeVpcEndpoints",
           "ec2:DescribeRouteTables",
           "ec2:CreateNetworkInterface",
           "ec2:DeleteNetworkInterface",
           "ec2:DescribeNetworkInterfaces",
           "ec2:DescribeSecurityGroups",
           "ec2:DescribeSubnets",
           "ec2:DescribeVpcAttribute",
           "iam:ListRolePolicies",
           "iam:GetRole",
           "iam:GetRolePolicy",
           "cloudwatch:PutMetricData"
         ],
         "Resource": [
           "*"
         ]
       },
       {
         "Effect": "Allow",
         "Action": [
           "s3:CreateBucket",
           "s3:PutBucketPublicAccessBlock"
         ],
         "Resource": [
           "arn:aws:s3:::aws-glue-*"
         ]
       },
       {
         "Effect": "Allow",
         "Action": [
           "s3:GetObject",
           "s3:PutObject",
           "s3:DeleteObject"
         ],
         "Resource": [
           "arn:aws:s3:::aws-glue-*/*",
           "arn:aws:s3:::*/*aws-glue-*/*"
         ]
       },
       {
         "Effect": "Allow",
         "Action": [
           "s3:GetObject"
         ],
         "Resource": [
           "arn:aws:s3:::crawler-public*",
           "arn:aws:s3:::aws-glue-*"
         ]
       },
       {
         "Effect": "Allow",
         "Action": [
           "logs:CreateLogGroup",
           "logs:CreateLogStream",
           "logs:PutLogEvents",
           "logs:AssociateKmsKey"
         ],
         "Resource": [
           "arn:aws:logs:*:*:log-group:/aws-glue/*"
         ]
       },
       {
         "Effect": "Allow",
         "Action": [
           "ec2:CreateTags",
           "ec2:DeleteTags"
         ],
         "Condition": {
           "ForAllValues:StringEquals": {
             "aws:TagKeys": [
               "aws-glue-service-resource"
             ]
           }
         },
         "Resource": [
           "arn:aws:ec2:*:*:network-interface/*",
           "arn:aws:ec2:*:*:security-group/*",
           "arn:aws:ec2:*:*:instance/*"
         ]
       }
     ]
   }
   ```

------

   下表說明此政策授予的許可。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/glue/latest/dg/create-service-policy.html)

1. 在 **Review Policy** (檢閱政策) 畫面上，輸入 **Policy Name** (政策名稱)，例如 **GlueServiceRolePolicy**。輸入選用的說明，當您對政策滿意時，即可選擇 **Create policy (建立政策)**。

# 步驟 2：為 AWS Glue 建立 IAM 角色
<a name="create-an-iam-role"></a>

您需要授予 AWS Glue 在代為呼叫其他服務時可擔任之 IAM 角色的許可。這包括存取 Amazon S3 的任何來源、目標、指令碼和使用於 AWS Glue 的臨時目錄。爬蟲程式、工作和開發端點皆需要許可。

您可以使用 AWS Identity and Access Management (IAM) 提供這些許可。新增政策至傳送到 AWS Glue 的 IAM 角色。

****在任務編輯器中建立 IAM 角色****

1. 當您在AWS Glue主控台中建立任務時，請尋找角色區段。

1. 選擇 **Create new role** (建立新角色)。

1. 會開啟內嵌角色建立表單，讓您：
   + 指定**角色名稱**，例如 `AWSGlueServiceRoleDefault`。
   + `AWSGlueServiceRole` 系統會自動選取 受管政策。
   + 檢閱信任政策以擔任角色。
   + 新增中繼資料的選用標籤。

1. 選擇建**立角色**。

1. 系統會自動為您的任務選取新建立的角色。

或者，您可以使用 IAM 主控台來建立角色：

****使用 IAM 主控台建立 IAM AWS Glue 角色****

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在左側導覽窗格中，選擇 **Roles** (角色)。

1. 選擇**建立角色**。

1.  選擇 **AWS 服務**作為信任的實體類型。然後，針對服務或使用案例，尋找並選擇 **AWS Glue**。選擇**下一步**。

1. 在**新增許可**頁面上，選擇包含必要許可的政策；例如，一般AWS Glue許可`AWSGlueServiceRole`的 AWS 受管政策，以及存取 Amazon S3 資源的 AWS 受管政策 Amazon S3FullAccess。 **AmazonS3FullAccess** 然後選擇**下一步**。
**注意**  
確定此角色其中一個政策授予 Amazon S3 來源和目標的許可。您可能想要提供自己的政策來存取特定的 Amazon S3 資源。資料來源需要 `s3:ListBucket` 和 `s3:GetObject` 許可。資料目標需要 `s3:ListBucket`、`s3:PutObject` 和 `s3:DeleteObject` 許可。如需為您的資源建立 Amazon S3 政策的詳細資訊，請參閱[在政策中指定資源](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-arn-format.html)。如需範例 Amazon S3 政策，請參閱[編寫 IAM 政策：如何授予 Amazon S3 儲存貯體的存取](https://aws.amazon.com/blogs/security/writing-iam-policies-how-to-grant-access-to-an-amazon-s3-bucket/)。  
如果您計劃存取使用 SSE-KMS 加密的 Amazon S3 來源和目標，請連接允許 AWS Glue 爬蟲程式、任務和開發端點解密資料的政策。如需詳細資訊，請參閱[使用伺服器端加密搭配受管金鑰保護資料 AWS KMS(SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)。  
下列是 範例。  

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "kms:Decrypt"
         ],
         "Resource": [
           "arn:aws:kms:*:111122223333:key/key-id"
         ]
       }
     ]
   }
   ```

1.  為您的角色命名並新增描述 (選用)，然後檢閱信任政策和許可。在 **Role name (角色名稱)** 中輸入角色名稱，例如 `AWSGlueServiceRoleDefault`。建立名稱字首為 `AWSGlueServiceRole` 字串的角色，以允許角色從主控台使用者傳送到服務。AWS Glue​ 提供的政策預期 IAM​ 服務角色的開頭應為 `AWSGlueServiceRole`。否則，您必須新增政策，允許您的使用者取得 `iam:PassRole` 許可，使 IAM 角色符合您的命名慣例。選擇**建立角色**。
**注意**  
在您使用角色建立筆記本時，系統會將該角色傳遞至互動式工作階段，以便在兩個位置皆可使用同一個角色。因此，`iam:PassRole` 許可需要成為角色政策的一部分。  
使用下列範例為角色建立新政策。用您的帳號與角色名稱取代範例中的值。  

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": "iam:PassRole",
         "Resource": "arn:aws:iam::090000000210:role/<role_name>"
       }
     ]
   }
   ```

1.  將標籤新增至您的角色 (選用)。標籤是索引鍵/值組，您可以新增至 AWS 資源，以協助識別、組織或搜尋資源。然後，選擇 **Create role** (建立角色)。

# 步驟 3：連接政策到存取 AWS Glue 的使用者或群組
<a name="attach-policy-iam-user"></a>

管理員必須使用AWS Glue主控台或 AWS Command Line Interface () 將許可指派給任何使用者、群組或角色AWS CLI。您可透過政策用 AWS Identity and Access Management (IAM) 提供這些許可。此步驟說明如何將許可指派給使用者或群組。

完成此步驟時，您的使用者或群組將連接以下政策：
+  AWS 受管政策`AWSGlueConsoleFullAccess`或自訂政策 **GlueConsoleAccessPolicy**
+ **`AWSGlueConsoleSageMakerNotebookFullAccess`**
+ **`CloudWatchLogsReadOnlyAccess`**
+ **`AWSCloudFormationReadOnlyAccess`**
+ **`AmazonAthenaFullAccess`**

**連接內嵌政策並內嵌於使用者或群組**

您可以將 AWS 受管政策或內嵌政策連接至使用者或群組，以存取 AWS Glue主控台。此政策指定的部分資源參照 AWS Glue 用於 Amazon S3 儲存貯體、Amazon S3 ETL 指令碼、CloudWatch Logs、 CloudFormation和 Amazon EC2 資源的預設名稱。為了簡化，AWS Glue 寫入部分 Amazon S3 物件到您預設字首為 `aws-glue-*` 之帳戶的儲存貯體內。
**注意**  
如果您使用 AWS 受管政策 ，則可以略過此步驟**`AWSGlueConsoleFullAccess`**。
**重要**  
AWS Glue 需要獲得許可才能擔任代為執行任務的角色。**為了達成這個目標，您新增 `iam:PassRole` 許可至 AWS Glue 使用者或群組。**此政策授予許可給 AWS Glue 服務角色開頭為 `AWSGlueServiceRole` 的角色，和建立筆記本伺服器時需要之角色的 `AWSGlueServiceNotebookRole`。您也可以依照您的命名慣例建立自己的 `iam:PassRole` 許可政策。  
根據安全最佳實務，建議透過限制政策來限制存取，以進一步限制對 Amazon S3 儲存貯體和 Amazon CloudWatch 日誌群組的存取。如需範例 Amazon S3 政策，請參閱[編寫 IAM 政策：如何授予 Amazon S3 儲存貯體的存取](https://aws.amazon.com/blogs/security/writing-iam-policies-how-to-grant-access-to-an-amazon-s3-bucket/)。

在本步驟中，您將建立一個類似 `AWSGlueConsoleFullAccess` 的政策。最新版本的 `AWSGlueConsoleFullAccess` 可在 IAM 主控台找到。

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在導覽窗格中，選擇**群組**或**使用者**。

1. 在清單中，選擇要內嵌政策的使用者或群組名稱。

1. 選擇 **Permissions (許可)** 索引標籤，並在必要時，展開 **Permissions policies (許可政策)** 部分。

1. 選擇 **Add Inline policy** (新增內嵌政策) 連結。

1. 在 **Create Policy** (建立政策) 畫面上導覽至索引標籤，以編輯 JSON。使用下列 JSON 陳述式建立政策文件，然後選擇 **Review policy** (檢閱政策)。

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "glue:*",
           "redshift:DescribeClusters",
           "redshift:DescribeClusterSubnetGroups",
           "iam:ListRoles",
           "iam:ListUsers",
           "iam:ListGroups",
           "iam:ListRolePolicies",
           "iam:GetRole",
           "iam:GetRolePolicy",
           "iam:ListAttachedRolePolicies",
           "ec2:DescribeSecurityGroups",
           "ec2:DescribeSubnets",
           "ec2:DescribeVpcs",
           "ec2:DescribeVpcEndpoints",
           "ec2:DescribeRouteTables",
           "ec2:DescribeVpcAttribute",
           "ec2:DescribeKeyPairs",
           "ec2:DescribeInstances",
           "rds:DescribeDBInstances",
           "rds:DescribeDBClusters",
           "rds:DescribeDBSubnetGroups",
           "s3:ListAllMyBuckets",
           "s3:ListBucket",
           "s3:GetBucketAcl",
           "s3:GetBucketLocation",
           "cloudformation:DescribeStacks",
           "cloudformation:GetTemplateSummary",
           "dynamodb:ListTables",
           "kms:ListAliases",
           "kms:DescribeKey",
           "cloudwatch:GetMetricData",
           "cloudwatch:ListDashboards"
         ],
         "Resource": [
           "*"
         ]
       },
       {
         "Effect": "Allow",
         "Action": [
           "s3:GetObject",
           "s3:PutObject"
         ],
         "Resource": [
           "arn:aws:s3:::*/*aws-glue-*/*",
           "arn:aws:s3:::aws-glue-*"
         ]
       },
       {
         "Effect": "Allow",
         "Action": [
           "tag:GetResources"
         ],
         "Resource": [
           "*"
         ]
       },
       {
         "Effect": "Allow",
         "Action": [
           "s3:CreateBucket",
           "s3:PutBucketPublicAccessBlock"
         ],
         "Resource": [
           "arn:aws:s3:::aws-glue-*"
         ]
       },
       {
         "Effect": "Allow",
         "Action": [
           "logs:GetLogEvents"
         ],
         "Resource": [
           "arn:aws:logs:*:*:/aws-glue/*"
         ]
       },
       {
         "Effect": "Allow",
         "Action": [
           "cloudformation:CreateStack",
           "cloudformation:DeleteStack"
         ],
         "Resource": "arn:aws:cloudformation:*:*:stack/aws-glue*/*"
       },
       {
         "Effect": "Allow",
         "Action": [
           "ec2:RunInstances"
         ],
         "Resource": [
           "arn:aws:ec2:*:*:instance/*",
           "arn:aws:ec2:*:*:key-pair/*",
           "arn:aws:ec2:*:*:image/*",
           "arn:aws:ec2:*:*:security-group/*",
           "arn:aws:ec2:*:*:network-interface/*",
           "arn:aws:ec2:*:*:subnet/*",
           "arn:aws:ec2:*:*:volume/*"
         ]
       },
       {
         "Action": [
           "iam:PassRole"
         ],
         "Effect": "Allow",
         "Resource": "arn:aws:iam::*:role/AWSGlueServiceRole*",
         "Condition": {
           "StringLike": {
             "iam:PassedToService": [
               "glue.amazonaws.com"
             ]
           }
         }
       },
       {
         "Action": [
           "iam:PassRole"
         ],
         "Effect": "Allow",
         "Resource": "arn:aws:iam::*:role/AWSGlueServiceNotebookRole*",
         "Condition": {
           "StringLike": {
             "iam:PassedToService": [
               "ec2.amazonaws.com"
             ]
           }
         }
       },
       {
         "Action": [
           "iam:PassRole"
         ],
         "Effect": "Allow",
         "Resource": [
           "arn:aws:iam::*:role/service-role/AWSGlueServiceRole*"
         ],
         "Condition": {
           "StringLike": {
             "iam:PassedToService": [
               "glue.amazonaws.com"
             ]
           }
         }
       }
     ]
   }
   ```

------

   下表說明此政策授予的許可。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/glue/latest/dg/attach-policy-iam-user.html)

1. 在 **Review policy (檢閱政策)** 頁面上，輸入政策名稱 (例如 **GlueConsoleAccessPolicy**)。當您滿意時，選擇 **Create policy (建立政策)**。確認畫面頂端的紅色方塊未出現任何錯誤。如出現任何錯誤，請加以修正。
**注意**  
如果選取 **Use autoformatting** (使用自動格式化)，每當您開啟政策或選擇 **Validate Policy** (驗證政策) 時，政策都會重新格式化。

**附加 AWSGlueConsoleFullAccess 受管政策**

您可連接 `AWSGlueConsoleFullAccess` 政策，以提供 AWS Glue 主控台使用者所需要的許可。
**注意**  
如果您已自行為 AWS Glue 主控台存取建立政策，可跳過此步驟。

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在導覽窗格中，選擇**政策**。

1. 在政策清單中，選取 **AWSGlueConsoleFullAccess** 旁的核取方塊。您可用**篩選**功能表和搜尋方塊來篩選政策清單。

1. 選擇**政策動作**，再選擇**附加**。

1. 選擇要附加政策的使用者。您可用**篩選**功能表和搜尋方塊來篩選主體實體清單。選擇要附加的使用者後，選擇**附加政策**。

**連接 `AWSGlueConsoleSageMakerNotebookFullAccess` 受管政策**

您可以將 `AWSGlueConsoleSageMakerNotebookFullAccess` 政策連接至使用者，以管理在 AWS Glue 主控台中建立的 SageMaker AI 筆記本。除了其他必要的 AWS Glue 主控台許可之外，此政策會授予管理 SageMaker AI 筆記本所需的資源存取權。

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在導覽窗格中，選擇**政策**。

1. 在政策清單中，選取 **AWSGlueConsoleSageMakerNotebookFullAccess** 旁的核取方塊。您可用**篩選**功能表和搜尋方塊來篩選政策清單。

1. 選擇**政策動作**，再選擇**附加**。

1. 選擇要附加政策的使用者。您可用**篩選**功能表和搜尋方塊來篩選主體實體清單。選擇要附加的使用者後，選擇**附加政策**。

**附加 CloudWatchLogsReadOnlyAccess 受管政策**

您可以將 **CloudWatchLogsReadOnlyAccess** 政策連接到使用者，以在 CloudWatch Logs 主控台上檢視 AWS Glue 建立的日誌。

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在導覽窗格中，選擇**政策**。

1. 在政策清單中，選取 **CloudWatchLogsReadOnlyAccess** 旁的核取方塊。您可用**篩選**功能表和搜尋方塊來篩選政策清單。

1. 選擇**政策動作**，再選擇**附加**。

1. 選擇要附加政策的使用者。您可用**篩選**功能表和搜尋方塊來篩選主體實體清單。選擇要附加的使用者後，選擇**附加政策**。

**附加 AWSCloudFormationReadOnlyAccess 受管政策**

您可以將 **AWSCloudFormationReadOnlyAccess** 政策連接至使用者，以在 CloudFormation 主控台AWS Glue上檢視 使用的 CloudFormation 堆疊。

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在導覽窗格中，選擇**政策**。

1. 在政策清單中，選取 **AWSCloudFormationReadOnlyAccess** 旁的核取方塊。您可用**篩選**功能表和搜尋方塊來篩選政策清單。

1. 選擇**政策動作**，再選擇**附加**。

1. 選擇要附加政策的使用者。您可用**篩選**功能表和搜尋方塊來篩選主體實體清單。選擇要附加的使用者後，選擇**附加政策**。

**連接 AmazonAthenaFullAccess 受管政策**

您可以將 **AmazonAthenaFullAccess** 政策連接到使用者，以在 Athena 主控台中檢視 Amazon S3 資料。

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在導覽窗格中，選擇**政策**。

1. 在政策清單中，選取 **AmazonAthenaFullAccess** 旁的核取方塊。您可用**篩選**功能表和搜尋方塊來篩選政策清單。

1. 選擇**政策動作**，再選擇**附加**。

1. 選擇要附加政策的使用者。您可用**篩選**功能表和搜尋方塊來篩選主體實體清單。選擇要附加的使用者後，選擇**附加政策**。

# 步驟 4：建立適用於筆記本伺服器的 IAM 政策
<a name="create-notebook-policy"></a>

如果您計劃使用筆記本搭配開發端點，您必須指定建立筆記本伺服器時的許可。您可用 AWS Identity and Access Management (IAM) 來提供這些許可。

此政策授予部分 Amazon S3 動作的許可，在 AWS Glue 擔任使用此政策的角色時可用於管理其所需的帳戶內資源。此政策指定的部分資源參照 AWS Glue 用於 Amazon S3 儲存貯體、Amazon S3 ETL 指令碼和 Amazon EC2 資源的預設名稱。為了簡化，AWS Glue 預設寫入部分 Amazon S3 物件到您預設字首為 `aws-glue-*` 之帳戶的儲存貯體內。

**注意**  
如果您使用 AWS 受管政策 ，則可以略過此步驟**`AWSGlueServiceNotebookRole`**。

在本步驟中，您將建立一個類似 `AWSGlueServiceNotebookRole` 的政策。最新版本的 `AWSGlueServiceNotebookRole` 可在 IAM 主控台找到。

**建立適用於筆記本的 IAM 政策**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在左側導覽窗格中選擇 **Policies** (政策)。

1. 選擇**建立政策**。

1. 在 **Create Policy** (建立政策) 畫面上導覽至索引標籤，以編輯 JSON。使用下列 JSON 陳述式建立政策文件，然後選擇 **Review policy** (檢閱政策)。

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "glue:CreateDatabase",
           "glue:CreatePartition",
           "glue:CreateTable",
           "glue:DeleteDatabase",
           "glue:DeletePartition",
           "glue:DeleteTable",
           "glue:GetDatabase",
           "glue:GetDatabases",
           "glue:GetPartition",
           "glue:GetPartitions",
           "glue:GetTable",
           "glue:GetTableVersions",
           "glue:GetTables",
           "glue:UpdateDatabase",
           "glue:UpdatePartition",
           "glue:UpdateTable",
           "glue:GetJobBookmark",
           "glue:ResetJobBookmark",
           "glue:CreateConnection",
           "glue:CreateJob",
           "glue:DeleteConnection",
           "glue:DeleteJob",
           "glue:GetConnection",
           "glue:GetConnections",
           "glue:GetDevEndpoint",
           "glue:GetDevEndpoints",
           "glue:GetJob",
           "glue:GetJobs",
           "glue:UpdateJob",
           "glue:BatchDeleteConnection",
           "glue:UpdateConnection",
           "glue:GetUserDefinedFunction",
           "glue:UpdateUserDefinedFunction",
           "glue:GetUserDefinedFunctions",
           "glue:DeleteUserDefinedFunction",
           "glue:CreateUserDefinedFunction",
           "glue:BatchGetPartition",
           "glue:BatchDeletePartition",
           "glue:BatchCreatePartition",
           "glue:BatchDeleteTable",
           "glue:UpdateDevEndpoint",
           "s3:GetBucketLocation",
           "s3:ListBucket",
           "s3:ListAllMyBuckets",
           "s3:GetBucketAcl"
         ],
         "Resource": [
           "*"
         ]
       },
       {
         "Effect": "Allow",
         "Action": [
           "s3:GetObject"
         ],
         "Resource": [
           "arn:aws:s3:::crawler-public*",
           "arn:aws:s3:::aws-glue*"
         ]
       },
       {
         "Effect": "Allow",
         "Action": [
           "s3:PutObject",
           "s3:DeleteObject"
         ],
         "Resource": [
           "arn:aws:s3:::aws-glue*"
         ]
       },
       {
         "Effect": "Allow",
         "Action": [
           "ec2:CreateTags",
           "ec2:DeleteTags"
         ],
         "Condition": {
           "ForAllValues:StringEquals": {
             "aws:TagKeys": [
               "aws-glue-service-resource"
             ]
           }
         },
         "Resource": [
           "arn:aws:ec2:*:*:network-interface/*",
           "arn:aws:ec2:*:*:security-group/*",
           "arn:aws:ec2:*:*:instance/*"
         ]
       }
     ]
   }
   ```

------

   下表說明此政策授予的許可。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/glue/latest/dg/create-notebook-policy.html)

1. 在 **Review Policy** (檢閱政策) 畫面上，輸入 **Policy Name** (政策名稱)，例如 **GlueServiceNotebookPolicyDefault**。輸入選用的說明，當您對政策滿意時，即可選擇 **Create policy (建立政策)**。

# 步驟 5：建立適用於筆記本伺服器的 IAM 角色
<a name="create-an-iam-role-notebook"></a>

如果您計劃使用筆記本搭配開發端點，您需要授予 IAM 角色許可。您可以透過 IAM 角色使用 AWS Identity and Access Management IAM 來提供這些許可。

**注意**  
使用 IAM 主控台建立 IAM 角色時，主控台會自動建立執行個體描述檔，並將其命名為與對應角色相同的名稱。

**建立適用於筆記本的 IAM 角色**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在左側導覽窗格中，選擇 **Roles** (角色)。

1. 選擇**建立角色**。

1. 在角色類型中選擇 **AWS Service** (AWS 服務)，找出並選擇 **EC2**，接著選擇 **EC2** 使用案例，然後選擇 **Next: Permissions** (下一步：許可)。

1. 在**連接許可政策**頁面上，選擇包含必要許可的政策；例如，一般AWS Glue許可的 **AWSGlueServiceNotebookRole**，以及存取 Amazon S3 資源的 AWS 受管政策 **AmazonS3FullAccess**。接著選擇 **Next: Review** (下一步：檢閱)。
**注意**  
確定此角色其中一個政策授予 Amazon S3 來源和目標的許可。同時確認您的政策允許在建立筆記本伺服器時完整存取筆記本存放位置。您可能想要提供自己的政策來存取特定的 Amazon S3 資源。如需為您的資源建立 Amazon S3 政策的詳細資訊，請參閱[在政策中指定資源](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-arn-format.html)。  
如果您計劃存取使用 SSE-KMS 加密的 Amazon S3 來源和目標，請連接允許筆記本解密資料的政策。如需詳細資訊，請參閱[使用伺服器端加密搭配受管金鑰保護資料 AWS KMS(SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)。  
下列是 範例。  

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "kms:Decrypt"
         ],
         "Resource": [
           "arn:aws:kms:*:111122223333:key/key-id"
         ]
       }
     ]
   }
   ```

1. 針對 **Role name (角色名稱)**，輸入您的角色名稱。建立名稱字首為 `AWSGlueServiceNotebookRole` 字串的角色，以允許角色從主控台使用者傳送到筆記本伺服器。AWS Glue​ 提供的政策預期 IAM​ 服務角色的開頭應為 `AWSGlueServiceNotebookRole`。否則，您必須為使用者新增政策，允許其取得 `iam:PassRole` 許可，使 IAM 角色符合您的命名慣例。例如，​輸入 `AWSGlueServiceNotebookRoleDefault`。然後選擇 **Create role** (建立角色)。

# 步驟 6：建立適用於 SageMaker AI 筆記本的 IAM 政策
<a name="create-sagemaker-notebook-policy"></a>

如果您計劃將 SageMaker AI 筆記本與開發端點搭配使用，您必須在建立筆記本時指定許可。您可用 AWS Identity and Access Management (IAM) 來提供這些許可。

**建立適用於 SageMaker AI 筆記本的 IAM 政策**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在左側導覽窗格中選擇 **Policies** (政策)。

1. 選擇**建立政策**。

1. 在 **Create Policy (建立政策)** 頁面上，導覽至索引標籤，以編輯 JSON。使用以下 JSON 陳述式建立政策文件。編輯您環境的 *bucket-name*、*region-code* 和 *account-id*。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Action": [
                   "s3:ListBucket"
               ],
               "Effect": "Allow",
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket"
               ]
           },
           {
               "Action": [
                   "s3:GetObject"
               ],
               "Effect": "Allow",
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket*"
               ]
           },
           {
               "Action": [
                   "logs:CreateLogStream",
                   "logs:DescribeLogStreams",
                   "logs:PutLogEvents",
                   "logs:CreateLogGroup"
               ],
               "Effect": "Allow",
               "Resource": [
                   "arn:aws:logs:us-east-1:111122223333:log-group:/aws/sagemaker/*",
                   "arn:aws:logs:us-east-1:111122223333:log-group:/aws/sagemaker/*:log-stream:aws-glue-*"
               ]
           },
           {
               "Action": [
                   "glue:UpdateDevEndpoint",
                   "glue:GetDevEndpoint",
                   "glue:GetDevEndpoints"
               ],
               "Effect": "Allow",
               "Resource": [
                   "arn:aws:glue:us-east-1:111122223333:devEndpoint/*"
               ]
           },
           {
               "Action": [
                   "sagemaker:ListTags"
               ],
               "Effect": "Allow",
               "Resource": [
                   "arn:aws:sagemaker:us-east-1:111122223333:notebook-instance/*"
               ]
           }
       ]
   }
   ```

------

   接著選擇 **Review policy** (檢閱政策)。

   下表說明此政策授予的許可。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/glue/latest/dg/create-sagemaker-notebook-policy.html)

1. 在 **Review Policy** (檢閱政策) 畫面上，輸入 **Policy Name** (政策名稱)，例如 `AWSGlueSageMakerNotebook`。輸入選用的說明，當您對政策滿意時，即可選擇 **Create policy (建立政策)**。

# 步驟 7：建立適用於 SageMaker AI 筆記本的 IAM 角色
<a name="create-an-iam-role-sagemaker-notebook"></a>

如果您計劃將 SageMaker AI 筆記本與開發端點搭配使用，您需要授予 IAM 角色許可。您可以透過 IAM 角色使用 AWS Identity and Access Management (IAM) 來提供這些許可。

**建立適用於 SageMaker AI 筆記本的 IAM 角色**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在左側導覽窗格中，選擇 **Roles** (角色)。

1. 選擇**建立角色**。

1. 針對角色類型，選擇 **AWS Service (AWS 服務)**，尋找並選擇 **SageMaker**，接著選擇 **SageMaker - Execution (SageMaker - 執行)** 使用案例。然後選擇**下一步：許可**。

1. 在 **Attach permissions policy (連接許可政策)** 頁面上，選擇包含所需許可的政策；例如 **AmazonSageMakerFullAccess**。選擇下**一步：檢閱**。

   如果您計劃存取使用 SSE-KMS 加密的 Amazon S3 來源和目標，請連接允許筆記本解密資料的政策，如以下範例所示。如需詳細資訊，請參閱[使用伺服器端加密搭配受管金鑰保護資料 AWS KMS(SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)。

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "kms:Decrypt"
         ],
         "Resource": [
           "arn:aws:kms:*:111122223333:key/key-id"
         ]
       }
     ]
   }
   ```

------

1. 針對 **Role name (角色名稱)**，輸入您的角色名稱。若要允許從主控台使用者將角色傳送到 SageMaker AI，請使用字首為 `AWSGlueServiceSageMakerNotebookRole` 字串的名稱。AWS Glue​ 提供的政策預期 IAM​ 角色的開頭應為 `AWSGlueServiceSageMakerNotebookRole`。否則，您必須為使用者新增政策，允許其取得 `iam:PassRole` 許可，使 IAM 角色符合您的命名慣例。

   例如，輸入 `AWSGlueServiceSageMakerNotebookRole-Default`，然後選擇 **Create role (建立角色)**。

1. 在您建立角色之後，即可連接政策以允許從 AWS Glue 建立 SageMaker AI 筆記本所需的額外許可。

   開啟您剛才建立的角色 `AWSGlueServiceSageMakerNotebookRole-Default`，然後選擇 **Attach policies (連接政策)**。將您建立的名為 `AWSGlueSageMakerNotebook` 的政策連接至角色。