本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
身分型政策 (IAM) 範例
您可以將政策連接到 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:
    - JSON
- 
            
     
        
- 
             
                
                {
  "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:
    - JSON
- 
            
     
        
- 
             
                
                {
  "Version":"2012-10-17",		 	 	 
  "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": {
        "ArnLike": {
          "codestar-notifications:NotificationsForResource": "arn:aws:iam::*:role/Service*"
        }
      }
    }
  ]
}
 
 
 
建立此政策後,請在 111222333444 帳戶中建立 IAM 角色,並將政策連接至該角色。在角色的信任關係中,您必須新增將擔任此角色 AWS 的帳戶。下列範例顯示的政策允許來自 111111111111 AWS 帳戶的使用者擔任 111222333444 帳戶中定義的角色:
    - JSON
- 
            
     
        
- 
             
                
                {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111111111111:root"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
 
 
 
下列範例顯示在 111111111111 AWS 帳戶中建立的政策,允許使用者在 111222333444 帳戶中擔任名為 CrossAccountPipelineViewers 的角色:
    - JSON
- 
            
     
        
- 
             
                
                {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "arn:aws:iam::111222333444:role/CrossAccountPipelineViewers"
        }
    ]
}
 
 
 
您可以建立 IAM 政策來限制您帳戶中使用者可存取的呼叫和資源,然後將這些政策連接到您的管理使用者。如需如何建立 IAM 角色和探索 CodePipeline 範例 IAM 政策陳述式的詳細資訊,請參閱 客戶受管政策範例。