AWS Data Pipeline 不再提供給新客戶。的現有客戶 AWS Data Pipeline 可以繼續正常使用服務。進一步了解
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
的 IAM 角色 AWS Data Pipeline
AWS Data Pipeline 使用 AWS Identity and Access Management 角色。連接至 IAM 角色的許可政策會決定 AWS Data Pipeline 您的應用程式可執行的動作,以及 AWS 他們可以存取的資源。如需詳細資訊,請參閱《IAM 使用者指南》中的 IAM 角色。
AWS Data Pipeline 需要兩個 IAM 角色:
-
管道角色控制對 AWS 資源的 AWS Data Pipeline 存取。在管道物件定義中,
role
欄位會指定此角色。 -
EC2 執行個體角色控制在 EC2 執行個體上執行的應用程式必須存取 AWS 資源的存取權,包括 Amazon EMR 叢集中的 EC2 執行個體。在管道物件定義中,
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 資源管道的基本函數。它也提供存取許多管道所需其他 AWS 資源的許可,例如 Amazon Simple Storage Service 和 Amazon Simple Notification Service。如果管道中定義的物件不需要 AWS 服務的資源,強烈建議您移除存取該服務的許可。例如,如果您的管道未定義 DynamoDBDataNode或使用 SnsAlarm動作,建議您移除這些動作的允許陳述式。
將 取代
為 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 PipelineDataPipelineDefaultResourceRole
。當您為管道定義資源角色時,建議您從此許可政策開始,然後移除非必要 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": ["*"] }] }
為 建立 IAM 角色 AWS Data Pipeline 和編輯角色許可
使用下列程序來建立 AWS Data Pipeline 使用 IAM 主控台的角色。程序包含兩個步驟。首先,您可以建立許可政策以連接至角色。接著,您建立角色並連接政策。建立角色之後,您可以透過連接和分離許可政策來變更角色的許可。
注意
當您使用 AWS Data Pipeline 主控台建立角色時,IAM 會建立並連接角色所需的適當信任政策。
建立許可政策以搭配 的角色使用 AWS Data Pipeline
在 https://console.aws.amazon.com/iam/
中開啟 IAM 主控台。 在導覽窗格中,選擇 Policies (政策),然後選擇 Create policy (建立政策)。
選擇 JSON 標籤。
如果您要建立管道角色,請在 中複製並貼上政策範例的內容管道角色許可政策範例,並根據您的安全需求進行編輯。或者,如果您要建立自訂 EC2 執行個體角色,請對 中的範例執行相同的 EC2 執行個體角色的預設受管政策。
選擇檢閱政策。
輸入政策的名稱,例如
MyDataPipelineRolePolicy
- 和選用的描述,然後選擇建立政策。請注意政策的名稱。建立角色時需要它。
為 建立 IAM 角色 AWS Data Pipeline
在以下網址開啟 IAM 主控台:https://console.aws.amazon.com/iam/
。 -
在導覽窗格中,選擇角色,然後選擇建立角色。
在選擇使用案例下,選擇資料管道。
在選取您的使用案例下,執行下列其中一項操作:
選擇 以
Data Pipeline
建立管道角色。選擇 以
EC2 Role for Data Pipeline
建立資源角色。
選擇下一步:許可。
如果 AWS Data Pipeline 已列出 的預設政策,請繼續執行下列步驟來建立角色,然後根據下一個程序中的指示進行編輯。否則,請輸入您在上述程序中建立的政策名稱,然後從清單中選擇。
選擇下一步:標籤,輸入要新增至角色的任何標籤,然後選擇下一步:檢閱。
輸入角色的名稱,例如
MyDataPipelineRole
,以及選用的描述,然後選擇建立角色。
連接或分離 IAM 角色的許可政策 AWS Data Pipeline
-
開啟位於 https://console.aws.amazon.com/iam/
的 IAM 主控台。 在導覽窗格中,選擇角色
在搜尋方塊中,開始輸入您要編輯的角色名稱,例如 DataPipelineDefaultRole 或 MyDataPipelineRole,然後從清單中選擇角色名稱。
-
在許可索引標籤上,執行下列動作:
若要分離許可政策,請在許可政策下,選擇政策項目最右側的移除按鈕。在出現確認提示時,選擇分離。
若要連接您先前建立的政策,請選擇連接政策。在搜尋方塊中,開始輸入您要編輯的政策名稱,從清單中選擇,然後選擇連接政策。
變更現有管道的角色
如果您想要將不同的管道角色或資源角色指派給管道,您可以使用 AWS Data Pipeline 主控台中的架構師編輯器。
使用主控台編輯指派給管道的角色
-
在 https://https://console.aws.amazon.com/datapipeline/
開啟 AWS Data Pipeline 主控台。 -
從清單中選擇管道,然後選擇動作、編輯。
-
在架構師編輯器的右側窗格中,選擇其他。
從資源角色和角色清單中,選擇要指派 AWS Data Pipeline 的角色,然後選擇儲存。