

AWS Data Pipeline 不再提供給新客戶。的現有客戶 AWS Data Pipeline 可以繼續正常使用服務。[進一步了解](https://aws.amazon.com/blogs/big-data/migrate-workloads-from-aws-data-pipeline/)

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

# 的 IAM 政策 AWS Data Pipeline
<a name="dp-iam-resourcebased-access"></a>

根據預設，IAM 實體沒有建立或修改 AWS 資源的許可。若要允許 IAM 實體建立或修改資源並執行任務，您必須建立 IAM 政策，授予 IAM 實體使用所需特定資源和 API 動作的許可，然後將這些政策連接到需要這些許可的 IAM 實體。

將政策連接到使用者或使用者群組時，政策會允許或拒絕使用者在特定資源上執行特定任務的許可。如需 IAM 政策的一般資訊，請參閱《*IAM 使用者指南》*中的[許可和政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/PermissionsAndPolicies.html)。如需管理和建立自訂 IAM 政策的詳細資訊，請參閱[管理 IAM 政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingPolicies.html)。

**Topics**
+ [政策語法](#dp-policy-syntax)
+ [使用標籤控制管道的存取](#dp-control-access-tags)
+ [使用工作者群組控制管道的存取](#dp-control-access-workergroup)

## 政策語法
<a name="dp-policy-syntax"></a>

IAM 政策為包含一或多個陳述式的 JSON 文件。每個陳述式的結構如下所示：

```
{
  "Statement":[{
    "Effect":"effect",
    "Action":"action",
    "Resource":"*",
    "Condition":{
      "condition":{
        "key":"value"
        }
      }
    }
  ]
}
```

政策陳述式是由下列元素組成：
+ **Effect** (效果)：*效果* 可以是 `Allow` 或 `Deny`。根據預設，IAM 實體沒有使用資源和 API 動作的許可，因此所有請求都會遭到拒絕。明確允許覆寫預設值。明確拒絕覆寫任何允許。
+ **Action** (動作)：*動作* 是您授予或拒絕許可的特定 API 動作。如需 的動作清單 AWS Data Pipeline，請參閱 *AWS Data Pipeline API 參考*中的[動作](https://docs.aws.amazon.com/datapipeline/latest/APIReference/API_Operations.html)。
+ **Resource** (資源)：受動作影響的資源。這裡唯一有效的值為 `"*"`。
+ **Condition** (條件)：條件為選擇性。您可以用以控制何時政策開始生效。

  AWS Data Pipeline 實作全 AWS 內容金鑰 （請參閱[條件的可用金鑰](https://docs.aws.amazon.com/IAM/latest/UserGuide/AccessPolicyLanguage_ElementDescriptions.html#AvailableKeys))，以及下列服務特定的金鑰。
  + `datapipeline:PipelineCreator` — 將存取權授予建立管道的使用者。如需範例，請參閱[將完整存取授予管道擁有者](dp-example-tag-policies.md#ex3)。
  + `datapipeline:Tag` — 根據管道標記授予存取權。如需詳細資訊，請參閱[使用標籤控制管道的存取](#dp-control-access-tags)。
  + `datapipeline:workerGroup` — 根據工作者群組的名稱授予存取權。如需詳細資訊，請參閱[使用工作者群組控制管道的存取](#dp-control-access-workergroup)。

## 使用標籤控制管道的存取
<a name="dp-control-access-tags"></a>

您可以建立參考管道標籤的 IAM 政策。這可讓您使用管道標記來執行下列動作：
+ 授予管道的唯讀存取
+ 授予管道的讀取/寫入存取
+ 防止存取管道

例如，假設管理員有兩個管道環境 (生產和開發)，而且每個環境有一個 IAM 群組。對於生產環境中的管道，管理員會將讀取/寫入存取權授予生產 IAM 群組中的使用者，但會將唯讀存取權授予開發人員 IAM 群組中的使用者。對於開發環境中的管道，管理員會授予生產和開發人員 IAM 群組的讀取/寫入存取權。

為了達成此案例，管理員會使用「環境=生產」標籤來標記生產管道，並將下列政策連接至開發人員 IAM 群組。第一個陳述式會授予所有管道的唯讀存取。第二個陳述式會授予沒有 "environment=production" 標籤之管道的讀取/寫入存取。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "datapipeline:Describe*",
        "datapipeline:ListPipelines",
        "datapipeline:GetPipelineDefinition",
        "datapipeline:QueryObjects"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "datapipeline:*",
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {"datapipeline:Tag/environment": "production"}
      }
    }
  ]
}
```

------

此外，管理員會將下列政策連接至生產 IAM 群組。此陳述式會授予所有管道的完整存取。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "datapipeline:*",
      "Resource": "*"
    }
  ]
}
```

------

如需更多範例，請參閱[根據標籤將唯讀存取授予使用者](dp-example-tag-policies.md#ex1)和[根據標籤將完整存取授予使用者](dp-example-tag-policies.md#ex2)。

## 使用工作者群組控制管道的存取
<a name="dp-control-access-workergroup"></a>

您可以建立建立參考工作者群組名稱的 IAM 政策。

例如，假設管理員有兩個管道環境 (生產和開發)，而且每個環境有一個 IAM 群組。管理員有三個資料庫伺服器，並將其任務執行器分別設定用於生產、進入生產階段前和開發環境。管理員想要確保生產 IAM 群組中的使用者可以建立將任務推送至生產資源的管道，而且開發 IAM 群組中的使用者可以建立將任務推送至生產前和開發人員資源的管道。

為了達成此案例，管理員會使用生產登入資料在生產資源上安裝任務執行器，並將 `workerGroup` 設為 "prodresource"。此外，管理員會使用開發登入資料在開發資源上安裝任務執行器，並將 `workerGroup` 設為 "pre-production" 和 "development"。管理員會將下列政策連接至開發人員 IAM 群組，以封鎖對 "prodresource" 資源的存取。第一個陳述式會授予所有管道的唯讀存取。第二個陳述式會在工作者群組名稱含有 "dev" 或 "pre-prod" 前綴時，授予管道的讀取/寫入存取。

此外，管理員會將下列政策連接至生產 IAM 群組，以授予對「資源」資源的存取權。第一個陳述式會授予所有管道的唯讀存取。第二個陳述式會在工作者群組名稱含有 "prod" 前綴時，授予讀取/寫入存取。