步骤 3:将策略附加到访问 Amazon Glue 的用户或组
管理员必须使用 Amazon Glue 控制台或 Amazon Command Line Interface(Amazon CLI)为任何用户、组或角色分配权限。您可使用 Amazon Identity and Access Management(IAM)通过策略提供这些权限。该步骤介绍向用户或组分配权限。
完成此步骤后,您的用户或组将附加以下策略:
- 
        Amazon托管式策略 AWSGlueConsoleFullAccess或自定义策略 GlueConsoleAccessPolicy
- 
        AWSGlueConsoleSageMakerNotebookFullAccess
- 
        CloudWatchLogsReadOnlyAccess
- 
        AWSCloudFormationReadOnlyAccess
- 
        AmazonAthenaFullAccess
附加内联策略并将其嵌入到用户或组中
您可以将 Amazon 托管式策略或内联策略附加到用户或组以便访问 Amazon Glue 控制台。在此策略中指定的某些资源引用了 Amazon Glue 对 Amazon S3 存储桶、Amazon S3 ETL 脚本、CloudWatch Logs、Amazon CloudFormation 和 Amazon EC2 资源使用的默认名称。为简便起见,默认情况下,Amazon Glue 会将某些 Amazon S3 对象写入到您的账户中带有前缀 aws-glue-* 的存储桶。
注意
如果您使用了Amazon托管式策略 AWSGlueConsoleFullAccess,则可跳过此步骤。
重要
Amazon Glue 需要代入用于代表您执行工作的角色的权限。要达到此目的,您要将 iam:PassRole 权限添加到您的 Amazon Glue 用户或组。此策略向以 AWSGlueServiceRole 开头的角色授予对 Amazon Glue 服务角色的权限,并向以 AWSGlueServiceNotebookRole 开头的角色授予对您创建笔记本服务器时所需的角色的权限。您还可以针对 iam:PassRole 权限创建您自己的遵循您的命名约定的策略。
根据安全性最佳实践,建议通过收紧策略来限制访问,从而进一步限制对 Amazon S3 存储桶和 Amazon CloudWatch 日志组的访问。有关示例 Amazon S3 策略,请参阅编写 IAM policy:如何授予对 Amazon S3 存储桶的访问权限
在此步骤中,您将创建一个类似于 AWSGlueConsoleFullAccess 的策略。您可以在 IAM 控制台中找到最新版本的 AWSGlueConsoleFullAccess。
- 登录 Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/ - 。 
- 
                在导航窗格中,选择用户或用户组。 
- 
                在列表中,请选择要在其中嵌入策略的用户或组的名称。 
- 
                选择 Permissions (权限) 选项卡,然后展开 Permissions policies (权限策略) 部分(如有必要)。 
- 
                选择 Add Inline policy (添加内联策略) 链接。 
- 
                在 Create Policy (创建策略) 屏幕上,导航到用于编辑 JSON 的选项卡。使用以下 JSON 语句创建策略文档,然后选择 Review policy (查看策略)。 下表描述了此策略授予的权限。 操作 资源 描述 "glue:*""*"授予运行所有 Amazon Glue API 操作的权限。 如果您之前已创建策略而未使用 "glue:*"操作,则必须将以下各个权限添加到策略:- 
                                            "glue:ListCrawlers" 
- 
                                            "glue:BatchGetCrawlers" 
- 
                                            "glue:ListTriggers" 
- 
                                            "glue:BatchGetTriggers" 
- 
                                            "glue:ListDevEndpoints" 
- 
                                            "glue:BatchGetDevEndpoints" 
- 
                                            "glue:ListJobs" 
- 
                                            "glue:BatchGetJobs" 
 "redshift:DescribeClusters", "redshift:DescribeClusterSubnetGroups""*"允许创建与 Amazon Redshift 的连接。 "iam:ListRoles", "iam:ListRolePolicies", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies""*"允许在使用爬网程序、任务、开发终端节点和笔记本服务器时列示 IAM 角色。 "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DescribeVpcEndpoints", "ec2:DescribeRouteTables", "ec2:DescribeVpcAttribute", "ec2:DescribeKeyPairs", "ec2:DescribeInstances""*"允许在运行任务、爬网程序和开发终端节点时设置 Amazon EC2 网络项,如 VPC。 "rds:DescribeDBInstances""*"允许创建与 Amazon RDS 的连接。 "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketAcl", "s3:GetBucketLocation""*"允许在使用爬网程序、任务、开发终端节点和笔记本服务器时列示 Amazon S3 存储桶。 "dynamodb:ListTables""*"允许列出 DynamoDB 表。 "kms:ListAliases", "kms:DescribeKey""*"允许使用 KMS 密钥。 "cloudwatch:GetMetricData", "cloudwatch:ListDashboards""*"允许使用 CloudWatch 指标。 "s3:GetObject", "s3:PutObject""arn:aws:s3::: aws-glue-*/*", "arn:aws:s3::: */*aws-glue-*/*", "arn:aws:s3::: aws-glue-*"允许在存储 ETL 脚本和笔记本位置等对象时在您的账户中获取和放置 Amazon S3 对象。 命名约定:向名称以 aws-glue- 为前缀的 Amazon S3 存储桶或文件夹授予权限。 "tag:GetResources""*"允许检索Amazon标签。 "s3:CreateBucket", "s3:PutBucketPublicAccessBlock""arn:aws:s3::: aws-glue-*"允许在存储 ETL 脚本和笔记本服务器位置等对象时在您的账户中创建 Amazon S3 存储桶。 命名约定:向名称以 aws-glue- 为前缀的 Amazon S3 存储桶授予权限。 使 Amazon Glue 创建阻止公有访问的存储桶。 "logs:GetLogEvents""arn:aws:logs:*:*: /aws-glue/*"允许检索 CloudWatch Logs。 命名约定:Amazon Glue 将日志写入到名称以 aws-glue- 开头的日志组。 "cloudformation:CreateStack", "cloudformation:DeleteStack""arn:aws:cloudformation:*:*:stack/ aws-glue*/*"允许在使用笔记本服务器时管理 Amazon CloudFormation 堆栈。 命名约定:Amazon Glue 创建名称以 aws-glue 开头的堆栈。 "ec2:RunInstances""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/*"允许运行开发终端节点和笔记本服务器。 "iam:PassRole""arn:aws:iam::*:role/ AWSGlueServiceRole*"允许 Amazon Glue 使用针对以 AWSGlueServiceRole开头的角色的PassRole权限。"iam:PassRole""arn:aws:iam::*:role/ AWSGlueServiceNotebookRole*"允许 Amazon EC2 使用针对以 AWSGlueServiceNotebookRole开头的角色的PassRole权限。"iam:PassRole""arn:aws:iam::*:role/service-role/ AWSGlueServiceRole*"允许 Amazon Glue 使用针对以 service-role/AWSGlueServiceRole开头的角色的PassRole权限。
- 
                                            
- 
                在 Review policy (查看策略) 屏幕上,输入您的策略的名称,例如 GlueConsoleAccessPolicy。如果您对该策略感到满意,请选择 Create policy (创建策略)。确保屏幕顶部的红框中没有显示错误。更正报告的任何错误。 注意如果选择了 Use autoformatting,则每当您打开策略或选择 Validate Policy 时,都会重新设置策略的格式。 
附加 AWSGlueConsoleFullAccess 托管策略
您可以附加 AWSGlueConsoleFullAccess 策略以提供 Amazon Glue 控制台用户所需的权限。
注意
如果您已针对 Amazon Glue 控制台访问创建自己的策略,则可跳过此步骤。
- 登录到 Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/ - 。 
- 
                在导航窗格中,选择策略。 
- 
                在策略列表中,选中 AWSGlueConsoleFullAccess 旁边的复选框。您可以使用 Filter 菜单和搜索框来筛选策略列表。 
- 
                选择 Policy actions(策略操作),然后选择 Attach(附加)。 
- 
                选择要将策略附加到的用户。您可以使用 Filter(筛选条件)菜单和搜索框来筛选委托人实体列表。在选择要将策略附加到的用户后,选择 Attach policy (附加策略)。 
附加 AWSGlueConsoleSageMakerNotebookFullAccess 托管式策略
可将 AWSGlueConsoleSageMakerNotebookFullAccess 策略附加到用户,以管理在 Amazon Glue 控制台中创建的 SageMaker AI 笔记本。除了其他必需的 Amazon Glue 控制台权限外,此策略还授予管理 SageMaker AI 笔记本所需资源的访问权限。
- 登录到 Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/ - 。 
- 
                在导航窗格中,选择策略。 
- 
                在策略列表中,选中 AWSGlueConsoleSageMakerNotebookFullAccess 旁边的复选框。您可以使用 Filter 菜单和搜索框来筛选策略列表。 
- 
                选择 Policy actions(策略操作),然后选择 Attach(附加)。 
- 
                选择要将策略附加到的用户。您可以使用 Filter(筛选条件)菜单和搜索框来筛选委托人实体列表。在选择要将策略附加到的用户后,选择 Attach policy (附加策略)。 
附加 CloudWatchLogsReadOnlyAccess 托管策略
您可以将 CloudWatchLogsReadOnlyAccess 策略附加到用户以查看由 Amazon Glue 在 CloudWatch Logs 控制台上创建的日志。
- 登录到 Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/ - 。 
- 
               在导航窗格中,选择策略。 
- 
               在策略列表中,选中 CloudWatchLogsReadOnlyAccess 旁边的复选框。您可以使用 Filter 菜单和搜索框来筛选策略列表。 
- 
               选择 Policy actions(策略操作),然后选择 Attach(附加)。 
- 
               选择要将策略附加到的用户。您可以使用 Filter(筛选条件)菜单和搜索框来筛选委托人实体列表。在选择要将策略附加到的用户后,选择 Attach policy (附加策略)。 
附加 AWSCloudFormationReadOnlyAccess 托管策略
您可以将 AWSCloudFormationReadOnlyAccess 策略附加到用户以查看 Amazon Glue 在 Amazon CloudFormation 控制台上使用的 Amazon CloudFormation 堆栈。
- 登录到 Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/ - 。 
- 
                在导航窗格中,选择策略。 
- 
                在策略列表中,选中 AWSCloudFormationReadOnlyAccess 旁边的复选框。您可以使用 Filter 菜单和搜索框来筛选策略列表。 
- 
                选择 Policy actions(策略操作),然后选择 Attach(附加)。 
- 
                选择要将策略附加到的用户。您可以使用 Filter(筛选条件)菜单和搜索框来筛选委托人实体列表。在选择要将策略附加到的用户后,选择 Attach policy (附加策略)。 
附加 AmazonAthenaFullAccess 托管策略
您可以将 AmazonAthenaFullAccess 策略附加到用户,以在 Athena 控制台中查看 Amazon S3 数据。
- 登录到 Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/ - 。 
- 
                在导航窗格中,选择策略。 
- 
                在策略列表中,选中 AmazonAthenaFullAccess 旁边的复选框。您可以使用 Filter 菜单和搜索框来筛选策略列表。 
- 
                选择 Policy actions(策略操作),然后选择 Attach(附加)。 
- 
                选择要将策略附加到的用户。您可以使用 Filter(筛选条件)菜单和搜索框来筛选委托人实体列表。在选择要将策略附加到的用户后,选择 Attach policy (附加策略)。