AWS CodeBuild 中的 Identity and Access Management
访问 AWS CodeBuild 需要凭证。这些凭证必须有权访问 AWS 资源,如存储和检索 S3 存储桶中的构建构件并查看构建的 Amazon CloudWatch Logs。以下几节介绍如何使用 AWS Identity and Access Management (IAM) 和 CodeBuild 帮助保护对您的资源的访问:
Authentication
您可以以下面任一类型的身份访问 AWS:
-
AWS 账户根用户 – 注册 AWS 时,您需要提供与您的 AWS 账户关联的电子邮件地址和密码。这些是您的根凭证,它们提供对您所有 AWS 资源的完全访问权限。
重要 出于安全考虑,我们建议您仅使用根凭证创建管理员用户,此类用户是对您的 AWS 账户具有完全访问权限的 IAM 用户。然后,您可以使用该管理员用户创建具有有限权限的其他 IAM 用户和角色。有关更多信息,请参阅 https://docs.amazonaws.cn/IAM/latest/UserGuide/best-practices.html#create-iam-users 中的 IAM 最佳实践和IAM 用户指南创建管理员用户和组。
-
IAM 用户 – IAM 用户就是您的 AWS 账户中的一种身份,它具有自定义权限(例如,在 CodeBuild 中创建构建项目的权限)。您可以使用 IAM 用户名和密码登录以保护 AWS 网页(如 AWS 管理控制台
、AWS 开发论坛 或 AWS Support Center )。 除了用户名和密码之外,您还可以为每个用户生成访问密钥。在通过 AWS AWS 之一或使用 SDKs (
) 以编程方式访问 AWS Command Line Interface 服务时,可以使用这些密钥。AWS CLI AWS和 SDKs 工具使用访问密钥对您的请求进行加密签名。AWS CLI如果您不使用 AWS 工具,则必须自行对请求签名。CodeBuild 支持签名版本 4,后者是一种用于对入站 API 请求进行身份验证的协议。有关对请求进行身份验证的更多信息,请参阅 https://docs.amazonaws.cn/general/latest/gr/signature-version-4.html 中的AWS General Reference签名版本 4 签名流程。 -
IAM 角色 – IAM 角色类似于 IAM 用户,但不与特定人员关联。利用 IAM 角色,您可以获得可用于访问 AWS 服务和资源的临时访问密钥。具有临时凭证的 IAM 角色在以下情况下很有用:
-
联合身份用户访问 – 您可以不创建 IAM 用户,而是使用来自 AWS Directory Service、您的企业用户目录或 Web 身份提供商的既有用户身份。这些用户被称为AWS联合身份用户。在通过身份提供商请求访问权限时, 将为联合身份用户分配角色。有关联合身份用户的更多信息,请参阅 https://docs.amazonaws.cn/IAM/latest/UserGuide/introduction_access-management.html#intro-access-roles 中的IAM 用户指南联合身份用户和角色。
-
跨账户访问 – 可以使用您账户中的 IAM 角色向另一个 AWS 账户授予对您账户的资源的访问权限。有关示例,请参阅教程:。 中的AWS使用 IAM 角色委派跨 账户的访问权限。IAM 用户指南
-
AWS 服务访问 – 您可以使用您账户中的 IAM 角色向 AWS 服务授予对您账户的资源的访问权限。例如,您可以创建一个角色,此角色允许 Amazon Redshift 代表您访问 S3 存储桶,然后将存储在存储桶中的数据加载到 Amazon Redshift 集群中。有关更多信息,请参阅 AWS 中的创建向 IAM 用户指南 服务委派权限的角色。
-
在 Amazon EC2 上运行的应用程序 – 您不用将访问密钥存储在 Amazon EC2 实例中以供实例上运行的应用程序使用并发出 AWS API 请求,而是可以使用 IAM 角色管理这些应用程序的临时凭证。要将 AWS 角色分配给 Amazon EC2 实例并使其对该实例的所有应用程序可用,您可以创建一个附加到实例的实例配置文件。实例配置文件包含角色,并使 Amazon EC2 实例上运行的程序能够获得临时凭证。有关更多信息,请参阅 Amazon EC2中的对 IAM 用户指南 上的应用程序使用角色。
-
访问控制
您可以使用有效的凭证来对自己的请求进行身份验证,但您还必须拥有权限才能创建或访问 AWS CodeBuild 资源。例如,您必须拥有权限才能创建、查看或删除构建项目并启动、停止或查看构建项目。
下面几节介绍如何管理 CodeBuild 的权限。我们建议您先阅读概述。