排查 Amazon CodePipeline 身份和访问问题
以下信息可帮助您诊断和修复在使用 CodePipeline 和 IAM 时可能遇到的常见问题。
主题
我无权在 CodePipeline 中执行操作
如果 Amazon Web Services 管理控制台告诉您,您无权执行某个操作,则必须联系您的管理员寻求帮助。您的管理员是指为您提供用户名和密码的那个人。
当 mateojackson IAM 用户尝试使用控制台查看有关管道的详细信息但不具有 codepipeline:GetPipeline 权限时,会发生以下示例错误。
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: codepipeline:GetPipeline on resource: my-pipeline
在这种情况下,Mateo 请求他的管理员更新其策略,以允许他使用 codepipeline:GetPipeline 操作访问 my-pipeline 资源。
我无权执行 iam:PassRole
如果您收到错误消息,提示您无权执行 iam:PassRole 操作,则必须联系您的管理员寻求帮助。您的管理员是指为您提供用户名和密码的那个人。请求该人员更新您的策略,以便允许您将角色传递给 CodePipeline。
有些 Amazon Web Services 服务允许您将现有角色传递到该服务,而不是创建新服务角色或服务相关角色。为此,您必须具有将角色传递到服务的权限。
当名为 marymajor 的 IAM 用户尝试使用控制台在 CodePipeline 中执行操作时,会发生以下示例错误。但是,服务必须具有服务角色所授予的权限才可执行操作。Mary 不具有将角色传递到服务的权限。
User:arn:aws:iam::123456789012:user/marymajoris not authorized to perform: iam:PassRole
在这种情况下,Mary 请求她的管理员来更新其策略,以允许她执行 iam:PassRole 操作。
我是管理员并希望允许其他人访问 CodePipeline
要让其他人能够访问 CodePipeline,您必须向需要访问的人员或应用程序授予权限。如果使用 Amazon IAM Identity Center 管理人员和应用程序,则可以向用户或组分配权限集来定义其访问权限级别。权限集会自动创建 IAM 策略并将其分配给与人员或应用程序关联的 IAM 角色。有关更多信息,请参阅《Amazon IAM Identity Center 用户指南》中的权限集。
如果未使用 IAM Identity Center,则必须为需要访问的人员或应用程序创建 IAM 实体(用户或角色)。然后,您必须将策略附加到该实体,以便在 CodePipeline 中向其授予正确的权限。授予权限后,向用户或应用程序开发人员提供凭证。他们将使用这些凭证访问 Amazon。要了解有关创建 IAM 用户、组、策略和权限的更多信息,请参阅《IAM 用户指南》中的 IAM 身份和 IAM 中的策略和权限。
我想要允许我的 Amazon 账户之外的用户访问我的 CodePipeline 资源
您可以创建一个角色,以便其他账户中的用户或您组织外的人员可以使用该角色来访问您的资源。您可以指定谁值得信赖,可以代入角色。对于支持基于资源的策略或访问控制列表(ACL)的服务,您可以使用这些策略向人员授予对您的资源的访问权。
要了解更多信息,请参阅以下内容:
-
要了解 CodePipeline 是否支持这些功能,请参阅Amazon CodePipeline 如何与 IAM 协同工作。
-
要了解如何为您拥有的 Amazon Web Services 账户中的资源提供访问权限,请参阅《IAM 用户指南》中的为您拥有的另一个 Amazon Web Services 账户中的 IAM 用户提供访问权限。
-
要了解如何为第三方 Amazon Web Services 账户 提供您的资源的访问权限,请参阅《IAM 用户指南》中的为第三方拥有的 Amazon Web Services 账户 提供访问权限。
-
要了解如何通过身份联合验证提供访问权限,请参阅《IAM 用户指南》中的为经过外部身份验证的用户(身份联合验证)提供访问权限。
-
要了解使用角色和基于资源的策略进行跨账户访问之间的差别,请参阅《IAM 用户指南》中的 IAM 中的跨账户资源访问。