本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
您可以將政策連接至IAM身分。例如,您可以執行下列動作:
-
將許可政策連接至您帳戶中的使用者或群組 – 若要授予使用者在 CodePipeline 主控台中檢視管道的許可,您可以將許可政策連接至使用者所屬的使用者或群組。
-
將許可政策連接至角色 (授予跨帳戶許可) – 您可以將身分型許可政策連接至IAM角色,以授予跨帳戶許可。例如,帳戶 A 中的管理員可以建立角色,將跨帳戶許可授予另一個 AWS 帳戶 (例如帳戶 B) 或 AWS 服務 ,如下所示:
-
帳戶 A 管理員會建立IAM角色,並將許可政策附加至授予帳戶 A 中資源許可的角色。
-
帳戶 A 管理員將信任政策連接至該角色,識別帳戶 B 做為可擔任該角的委託人。
-
然後,帳戶 B 管理員可以將擔任角色的許可委派給帳戶 B 中的任何使用者。這樣做可讓帳戶 B 中的使用者在帳戶 A 中建立或存取資源。如果您想要授予擔任角色的 AWS 服務 許可,信任政策中的主體也可以是 AWS 服務 主體。
如需使用 IAM 委派許可的詳細資訊,請參閱 IAM 使用者指南 中的存取管理。
-
以下顯示許可政策的範例,授予許可,以停用和啟用 MyFirstPipeline
中名為 的管道中所有階段之間的轉換us-west-2 region
:
{
"Version": "2012-10-17",
"Statement" : [
{
"Effect" : "Allow",
"Action" : [
"codepipeline:EnableStageTransition",
"codepipeline:DisableStageTransition"
],
"Resource" : [
"arn:aws:codepipeline:us-west-2:111222333444:MyFirstPipeline/*"
]
}
]
}
下列範例顯示 111222333444 帳戶中的政策,允許使用者檢視 CodePipeline 主控台MyFirstPipeline
中名為 的管道,但不能變更。此政策以 AWSCodePipeline_ReadOnlyAccess
受管政策為基礎,但因為是 MyFirstPipeline
管道所特有,因此無法直接使用受管政策。如果您不想將政策限制為特定管道,請考慮使用 建立和維護的其中一個受管政策 CodePipeline。如需詳細資訊,請參閱處理受管政策的相關文章。您必須將此政策連接至您為存取建立IAM的角色,例如名為 的角色CrossAccountPipelineViewers
:
{
"Statement": [
{
"Action": [
"codepipeline:GetPipeline",
"codepipeline:GetPipelineState",
"codepipeline:GetPipelineExecution",
"codepipeline:ListPipelineExecutions",
"codepipeline:ListActionExecutions",
"codepipeline:ListActionTypes",
"codepipeline:ListPipelines",
"codepipeline:ListTagsForResource",
"iam:ListRoles",
"s3:ListAllMyBuckets",
"codecommit:ListRepositories",
"codedeploy:ListApplications",
"lambda:ListFunctions",
"codestar-notifications:ListNotificationRules",
"codestar-notifications:ListEventTypes",
"codestar-notifications:ListTargets"
],
"Effect": "Allow",
"Resource": "arn:aws:codepipeline:us-west-2:111222333444:MyFirstPipeline"
},
{
"Action": [
"codepipeline:GetPipeline",
"codepipeline:GetPipelineState",
"codepipeline:GetPipelineExecution",
"codepipeline:ListPipelineExecutions",
"codepipeline:ListActionExecutions",
"codepipeline:ListActionTypes",
"codepipeline:ListPipelines",
"codepipeline:ListTagsForResource",
"iam:ListRoles",
"s3:GetBucketPolicy",
"s3:GetObject",
"s3:ListBucket",
"codecommit:ListBranches",
"codedeploy:GetApplication",
"codedeploy:GetDeploymentGroup",
"codedeploy:ListDeploymentGroups",
"elasticbeanstalk:DescribeApplications",
"elasticbeanstalk:DescribeEnvironments",
"lambda:GetFunctionConfiguration",
"opsworks:DescribeApps",
"opsworks:DescribeLayers",
"opsworks:DescribeStacks"
],
"Effect": "Allow",
"Resource": "*"
},
{
"Sid": "CodeStarNotificationsReadOnlyAccess",
"Effect": "Allow",
"Action": [
"codestar-notifications:DescribeNotificationRule"
],
"Resource": "*",
"Condition": {
"StringLike": {
"codestar-notifications:NotificationsForResource": "arn:aws:codepipeline:*"
}
}
}
],
"Version": "2012-10-17"
}
建立此政策後,請在 111222333444 帳戶中建立IAM角色,並將政策連接至該角色。在角色的信任關係中,您必須新增將擔任此角色 AWS 的帳戶。下列範例顯示允許來自 的使用者的政策 111111111111
AWS 帳戶擔任 111222333444 帳戶中定義的角色:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
111111111111
:root" }, "Action": "sts:AssumeRole" } ] }
下列範例顯示在 中建立的政策 111111111111
AWS 帳戶,允許使用者擔任名為 的角色 CrossAccountPipelineViewers
在 111222333444 帳戶中:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::111222333444:role/
CrossAccountPipelineViewers
" } ] }
您可以建立IAM政策來限制您帳戶中使用者可存取的呼叫和資源,然後將這些政策連接至您的管理使用者。如需如何建立IAM角色和探索 範例IAM政策陳述式的詳細資訊 CodePipeline,請參閱 客戶受管政策範例。