AWS Data Pipeline 不再提供給新客戶。現有客戶 AWS Data Pipeline 可繼續正常使用此服務。進一步了解
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS Data Pipeline 的 IAM 角色
AWS Data Pipeline使用AWS Identity and Access Management角色。附加到 IAM 角色的許可政策決定了可以執行的動作AWS Data Pipeline和應用程式,以及它們可以存取的AWS資源。如需詳細資訊,請參閱《IAM 使用者指南》中的 IAM 角色。
AWS Data Pipeline需要兩個 IAM 角色:
-
管道角色AWS Data Pipeline可控制對 AWS 資源的存取。在管線物件定義中,
role
欄位會指定此角色。 -
EC2 執行個體角色可控制 EC2 執行個體上執行的應用程式 (包括 Amazon EMR 叢集中的 EC2 執行個體) 對AWS資源的存取。在管線物件定義中,
resourceRole
欄位會指定此角色。
重要
如果您在 2022 年 10 月 3 日之前使用具有預設角色的AWS Data Pipeline主控台建立管道,請DataPipelineDefaultRole
為您AWS Data Pipeline建立管道,並將AWSDataPipelineRole
受管理的政策附加至該角色。自 2022 年 10 月 3 日起,AWSDataPipelineRole
受管策略已被棄用,並且在使用控制台時必須為管道指定管道角色。
我們建議您檢閱現有配管,並判斷DataPipelineDefaultRole
是否與管線相關聯,以及AWSDataPipelineRole
是否已附加至該角色。如果是這樣,請檢閱此原則允許的存取權,以確保其適合您的安全性需求。視需要新增、更新或取代附加至此角色的原則和政策陳述式。或者,您可以更新管道以使用您使用不同權限原則建立的角色。
AWS Data Pipeline角色權限原則範例
每個角色都有一或多個附加權限原則,用來決定角色可存取的AWS資源以及角色可執行的動作。本主題提供管線角色的權限原則範例。它也提供的內容AmazonEC2RoleforDataPipelineRole
,也就是預設 EC2 執行個體角色的受管政策DataPipelineDefaultResourceRole
。
管道角色許可政策範例
以下範例政策的範圍限定在於允許必AWS Data Pipeline要功能使用 Amazon EC2 和 Amazon EMR 資源執行管道。它還提供存取許可,例如 Amazon SimpleAWS Simple Simple Simple Simple Simple Simple Simple Notification Service 和 Amazon Simple Notification Service)。如果管線中定義的物件不需要AWS服務的資源,強烈建議您移除存取該服務的權限。例如,如果您的管道未定義D ynamoDBData 節點或使用SnsAlarm動作,建議您移除這些動作的 allow 陳述式。
將
取代為您的 AWS 帳戶 ID。111122223333
以管線角色 (此原則所附加的角色) 的名稱取
代。NameOfDataPipelineRole
以 EC2 執行個體角色的名稱取代。NameOfDataPipelineResourceRole
以適合您應用程式的適當區域取代。us-west-1
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:GetInstanceProfile", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PassRole" ], "Resource": [ "arn:aws:iam::
111122223333
:role/NameOfDataPipelineRole
", "arn:aws:iam::111122223333
:role/NameOfDataPipelineResourceRole
" ] }, { "Effect": "Allow", "Action": [ "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:CancelSpotInstanceRequests", "ec2:CreateNetworkInterface", "ec2:CreateSecurityGroup", "ec2:CreateTags", "ec2:DeleteNetworkInterface", "ec2:DeleteSecurityGroup", "ec2:DeleteTags", "ec2:DescribeAvailabilityZones", "ec2:DescribeAccountAttributes", "ec2:DescribeDhcpOptions", "ec2:DescribeImages", "ec2:DescribeInstanceStatus", "ec2:DescribeInstances", "ec2:DescribeKeyPairs", "ec2:DescribeLaunchTemplates", "ec2:DescribeNetworkAcls", "ec2:DescribeNetworkInterfaces", "ec2:DescribePrefixLists", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSpotInstanceRequests", "ec2:DescribeSpotPriceHistory", "ec2:DescribeSubnets", "ec2:DescribeTags", "ec2:DescribeVpcAttribute", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcEndpointServices", "ec2:DescribeVpcs", "ec2:DetachNetworkInterface", "ec2:ModifyImageAttribute", "ec2:ModifyInstanceAttribute", "ec2:RequestSpotInstances", "ec2:RevokeSecurityGroupEgress", "ec2:RunInstances", "ec2:TerminateInstances", "ec2:DescribeVolumeStatus", "ec2:DescribeVolumes", "elasticmapreduce:TerminateJobFlows", "elasticmapreduce:ListSteps", "elasticmapreduce:ListClusters", "elasticmapreduce:RunJobFlow", "elasticmapreduce:DescribeCluster", "elasticmapreduce:AddTags", "elasticmapreduce:RemoveTags", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:ModifyInstanceGroups", "elasticmapreduce:GetCluster", "elasticmapreduce:DescribeStep", "elasticmapreduce:AddJobFlowSteps", "elasticmapreduce:ListInstances", "iam:ListInstanceProfiles", "redshift:DescribeClusters" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "sns:GetTopicAttributes", "sns:Publish" ], "Resource": [ "arn:aws:sns:us-west-1
:111122223333
:MyFirstSNSTopic", "arn:aws:sns:us-west-1
:111122223333
:MySecondSNSTopic", "arn:aws:sns:us-west-1
:111122223333
:AnotherSNSTopic" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:ListMultipartUploads" ], "Resource": [ "arn:aws:s3:::MyStagingS3Bucket", "arn:aws:s3:::MyLogsS3Bucket", "arn:aws:s3:::MyInputS3Bucket", "arn:aws:s3:::MyOutputS3Bucket", "arn:aws:s3:::AnotherRequiredS3Buckets" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectMetadata", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::MyStagingS3Bucket/*", "arn:aws:s3:::MyLogsS3Bucket/*", "arn:aws:s3:::MyInputS3Bucket/*", "arn:aws:s3:::MyOutputS3Bucket/*", "arn:aws:s3:::AnotherRequiredS3Buckets/*" ] }, { "Effect": "Allow", "Action": [ "dynamodb:Scan", "dynamodb:DescribeTable" ], "Resource": [ "arn:aws:dynamodb:us-west-1
:111122223333
:table/MyFirstDynamoDBTable", "arn:aws:dynamodb:us-west-1
:111122223333
:table/MySecondDynamoDBTable", "arn:aws:dynamodb:us-west-1
:111122223333
:table/AnotherDynamoDBTable" ] }, { "Effect": "Allow", "Action": [ "rds:DescribeDBInstances" ], "Resource": [ "arn:aws:rds:us-west-1
:111122223333
:db:MyFirstRdsDb", "arn:aws:rds:us-west-1
:111122223333
:db:MySecondRdsDb", "arn:aws:rds:us-west-1
:111122223333
:db:AnotherRdsDb" ] } ] }
EC2 執行個體角色的預設受管政策
的內容如下所示。AmazonEC2RoleforDataPipelineRole
這是附加至AWS Data Pipeline、預設資源角色的受管理策略DataPipelineDefaultResourceRole
。當您為管道定義資源角色時,建議您先使用此權限原則,然後移除不需要之AWS服務動作的權限。
此時會顯示原則的第 3 版,這是撰寫本文時的最新版本。使用 IAM 主控台檢視政策的最新版本。
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "cloudwatch:*", "datapipeline:*", "dynamodb:*", "ec2:Describe*", "elasticmapreduce:AddJobFlowSteps", "elasticmapreduce:Describe*", "elasticmapreduce:ListInstance*", "elasticmapreduce:ModifyInstanceGroups", "rds:Describe*", "redshift:DescribeClusters", "redshift:DescribeClusterSecurityGroups", "s3:*", "sdb:*", "sns:*", "sqs:*" ], "Resource": ["*"] }] }
為角色權限建立AWS Data Pipeline和編輯 IAM 角色
使用下列程序建立AWS Data Pipeline使用 IAM 主控台的角色。此程序包含兩個步驟。首先,您會建立要附加到角色的許可政策。接下來,您將建立角色並附加政策。建立角色之後,您可以透過附加和卸離權限原則來變更角色的權限。
注意
如下所述建立AWS Data Pipeline使用主控台的角色時,IAM 會建立並附加角色所需的適當信任政策。
若要建立與角色搭配使用的權限原則AWS Data Pipeline
在 https://console.aws.amazon.com/iam/
中開啟 IAM 主控台。 在導覽窗格中,選擇 Policies (政策),然後選擇 Create policy (建立政策)。
請選擇 JSON 標籤。
如果您要建立管線角色,請複製並貼上中原則範例的內容管道角色許可政策範例,並根據您的安全性需求進行適當編輯。或者,如果您要建立自訂 EC2 執行個體角色,請對中的範例執行相同的動作EC2 執行個體角色的預設受管政策。
選擇 Review policy (檢閱政策)。
輸入原則的名稱 (例如,
MyDataPipelineRolePolicy
選擇性的說明),然後選擇 [建立原則]。請注意政策的名稱。在建立角色時,您需要它。
為 AWS Data Pipeline 建立 IAM 角色
在以下網址開啟 IAM 主控台:https://console.aws.amazon.com/iam/
。 -
在導覽窗格中,選擇 Roles (角色),然後選擇 Roles (建立角色)。
在 [選擇使用案例] 下,選擇 [Data Pipeline]。
在選取您的使用案例下方,執行以下其中一項操作:
選擇
Data Pipeline
此選項可建立管線角色。選擇
EC2 Role for Data Pipeline
此選項可建立資源角色。
選擇 Next: Permissions (下一步:許可)。
如果列出的預設原則,請繼續執行下列步驟來建立角色,然後根據下一個程序中的指示對AWS Data Pipeline其進行編輯。否則,請輸入您在上述程序所建立的政策名稱,然後從清單中選取。
選擇 [下一步:標記],輸入要新增至角色的任何標記,然後選擇 [下一步:複查]。
輸入角色的名稱 (例如,
MyDataPipelineRole
選擇性的說明),然後選擇 [建立角色]。
附加或卸離 IAM 角色的許可政策AWS Data Pipeline
-
前往網址 https://console.aws.amazon.com/iam/
開啟 IAM 主控台。 在導覽窗格中,選擇 Roles (角色)
在搜尋方塊中,開始輸入您要編輯的角色名稱 (例如,DataPipelineDefaultRole或),MyDataPipelineRole然後從清單中選擇「角色」名稱。
-
在許可索引標籤上,執行以下操作:
若要卸離權限原則,請在 [權限] 原則下,選擇原則項目最右邊的 [移除] 按鈕。當系統提示確認時,請選擇「分離
若要附加您先前建立的策略,請選擇 [附加策略]。在搜尋方塊中,開始輸入您要編輯的政策名稱,從清單中選取它,然後選擇 Roles (連接政策)。
變更現有管道的角色
如果要將不同的管線角色或資源角色指派給管線,可以使用AWS Data Pipeline主控台中的架構師編輯器。
使用控制台編輯指派給管線的角色
-
請在以下位置開啟AWS Data Pipeline主控台。
https://console.aws.amazon.com/datapipeline/ -
從清單中選取配管,然後選擇「動作」>「編輯」。
-
在建築編輯器的右窗格中,選擇「其他」。
從 [資源角色與角色] 清單中,選擇您AWS Data Pipeline要指定的角色,然後選擇 [儲存]。