

# AWS Glue 蓝图的角色权限
<a name="blueprints-personas-permissions"></a>

以下是常见的角色，以及针对 AWS Glue 蓝图角色的 AWS Identity and Access Management（IAM）权限策略建议。

**Topics**
+ [蓝图角色](#blueprints-personas)
+ [蓝图角色的权限](#blueprints-permssions)
+ [蓝图角色的权限](#blueprints-role-permissions)

## 蓝图角色
<a name="blueprints-personas"></a>

以下是 AWS Glue 蓝图生命周期中通常涉及的角色。


| 角色 | 说明 | 
| --- | --- | 
| AWS Glue 开发人员 | 开发、测试和发布蓝图。 | 
| AWS Glue 管理员 | 蓝图上的注册、维护和授予权限。 | 
| 数据分析人员 | 运行蓝图以创建工作流。 | 

有关更多信息，请参阅 [AWS Glue 中的蓝图概览](blueprints-overview.md)。

## 蓝图角色的权限
<a name="blueprints-permssions"></a>

以下是针对每个蓝图角色的建议权限。



### 蓝图的 AWS Glue 开发人员权限
<a name="bp-persona-dev"></a>

AWS Glue 开发人员必须具有写入用于发布蓝图的 Amazon S3 存储桶的权限。通常，开发人员在上传蓝图后注册蓝图。在这种情况下，开发人员需要具有 [蓝图的 AWS Glue 管理员权限](#bp-persona-admin) 中列出的权限。此外，如果开发人员希望在蓝图注册后测试蓝图，还需要具有 [蓝图的数据分析人员权限](#bp-persona-analyst) 中列出的权限。

### 蓝图的 AWS Glue 管理员权限
<a name="bp-persona-admin"></a>

以下策略授予注册、查看和维护 AWS Glue 蓝图的权限。

**重要**  
在以下策略中，将 *<s3-bucket-name>* 和 *<prefix>* 替换为 Amazon S3 路径，以便上传蓝图 ZIP 格式归档来进行注册。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:CreateBlueprint",
        "glue:UpdateBlueprint",
        "glue:DeleteBlueprint",
        "glue:GetBlueprint",
        "glue:ListBlueprints",
        "glue:BatchGetBlueprints"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject"
      ],
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/prefix/*"
    }
  ]
}
```

------

### 蓝图的数据分析人员权限
<a name="bp-persona-analyst"></a>

以下策略授予运行蓝图以及查看生成的工作流和工作流组件的权限。它还授予通过 AWS Glue 创建工作流和工作流组件时承担的角色 `PassRole`。

该策略授予对任何资源的权限。如果要配置对单个蓝图的精细访问，请使用以下蓝图 ARN 格式：

```
arn:aws:glue:<region>:<account-id>:blueprint/<blueprint-name>
```

**重要**  
在以下策略中，将 *<account-id>* 替换为有效的AWS账户并将 *<role-name>* 替换为用于运行蓝图的角色的名称。请参阅[蓝图角色的权限](#blueprints-role-permissions)了解此角色所需的权限。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListBlueprints",
        "glue:GetBlueprint",
        "glue:StartBlueprintRun",
        "glue:GetBlueprintRun",
        "glue:GetBlueprintRuns",
        "glue:GetCrawler",
        "glue:ListTriggers",
        "glue:ListJobs",
        "glue:BatchGetCrawlers",
        "glue:GetTrigger",
        "glue:BatchGetWorkflows",
        "glue:BatchGetTriggers",
        "glue:BatchGetJobs",
        "glue:BatchGetBlueprints",
        "glue:GetWorkflowRun",
        "glue:GetWorkflowRuns",
        "glue:ListCrawlers",
        "glue:ListWorkflows",
        "glue:GetJob",
        "glue:GetWorkflow",
        "glue:StartWorkflowRun"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::111122223333:role/role-name"
    }
  ]
}
```

------

## 蓝图角色的权限
<a name="blueprints-role-permissions"></a>

以下是针对用于从蓝图创建工作流的 IAM 角色的建议权限。此角色必须与 `glue.amazonaws.com` 具有信任关系。

**重要**  
在以下策略中，将 *<account-id>* 替换为有效的AWS账户并将 *<role-name>* 替换为角色的名称。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:CreateJob",
        "glue:GetCrawler",
        "glue:GetTrigger",
        "glue:DeleteCrawler",
        "glue:CreateTrigger",
        "glue:DeleteTrigger",
        "glue:DeleteJob",
        "glue:CreateWorkflow",
        "glue:DeleteWorkflow",
        "glue:GetJob",
        "glue:GetWorkflow",
        "glue:CreateCrawler"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::111122223333:role/role-name"
    }
  ]
}
```

------

**注意**  
如果工作流中的任务和爬网程序担任此角色以外的角色，则此策略必须包含 `iam:PassRole` 权限，而不是蓝图角色上的权限。