与 BitBucket 集成时 AWS CodePipeline 的 AWS IAM 访问异常

AWS IAM access exception with AWS CodePipeline when integrating with BitBucket

我正在尝试使用 AWS CodePipeline 为我们的 CICD 流程构建管道。我单击 "Create Pipeline",提供名称并使用第一个面板的默认值。在下一个面板上,在选择 "BitBucket(beta)" 作为源提供者时,我得到以下访问异常:

A​​ccessDeniedException: 用户:arn:aws:iam::280945876345:user/Roger 无权在资源上执行:codestar-connections:ListConnections:arn:aws:codestar-connections:us-west-2:280945876345:*

我浏览了文档并向 IAM 用户提供了对 CodePipeline、CodeDeploy、CodeStar、CodeBuildAdmin、CloudFormation、AmazonS3、AmazonECS、AWSCodeCommit 的完全访问权限。我找不到任何与 codestar-connections:* 相关的政策,我可以添加。我知道 CodePipeline-BitBucket 集成处于 Beta 阶段,但只是想看看是否有其他人遇到过这个问题并解决了它。

根据评论,问题是由于缺少对 codestar-connections 的权限。

解决方案是在具有 codestar-connections:*.

权限的相关角色中创建内联策略

通过执行以下步骤更新用户权限对我有用的方法:

  1. 通过此 link 访问列出您在 IAM 中的所有用户的页面:https://console.aws.amazon.com/iamv2/home?#/users
  2. Select 我们需要授予权限的用户
  3. 点击左侧的+ Add inline policy按钮
  4. 单击 Service 字段前的 Choose a service
  5. 在搜索栏中输入 CodeStar Connections 并在搜索结果中点击它
  6. 我 select 勾选了 All CodeStar Connections actions (codestar-connections:*) 复选框,而您可以 select 根据您的要求选择任何访问级别。
  7. 这有时会产生警告并要求您从 Resources 字段中添加 ARN。在这种情况下,单击 Add ARN 并填写字段。
  8. 单击底部的 Review Policy 继续将此策略添加到用户。

另一种选择是更新整个 user group

的权限

Marcin 和 Adil 的回答都对我有用,但是在尝试部署时收到此错误“用户无权执行:iam:CreateRole”。

然后我发现这个 link 帮助我制定了最终政策:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "codestar-connections:GetIndividualAccessToken",
                "codestar-connections:CreateConnection",
                "codestar-connections:ListInstallationTargets",
                "codestar-connections:StartOAuthHandshake",
                "codestar-connections:GetInstallationUrl",
                "codestar-connections:ListHosts",
                "codestar-connections:StartAppRegistrationHandshake",
                "codestar-connections:RegisterAppCode",
                "codestar-connections:ListConnections",
                "codestar-connections:CreateHost"
            ],
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "codestar-connections:*",
            "Resource": [
                "arn:aws:codestar-connections:*:474678791249:connection/*",
                "arn:aws:codestar-connections:*:474678791249:host/*"
            ]
        },
        {
            "Sid": "VisualEditor2",
            "Effect": "Allow",
            "Action": [
                "iam:CreateRole",
                "iam:CreatePolicy",
                "iam:PutRolePolicy",
                "iam:AttachRolePolicy",
                "iam:DetachRolePolicy"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}

将其粘贴到 JSON 编辑器而不是可视化编辑器中会使用之前的 JSON.

创建策略