通过适用于 PHP 的 Amazon SDK 版本 3 使用 Amazon 进行身份验证
使用 Amazon Web Services 服务进行开发时,您必须确定您的代码如何向 Amazon 进行身份验证。您可以通过不同的方式来配置对 Amazon 资源的编程访问权限,具体取决于环境和可用的 Amazon 访问权限。
要选择您的身份验证方法并针对 SDK 进行配置,请参阅 Amazon SDK 和工具参考指南中的身份验证和访问。
使用 IAM Identity Center 设置身份验证以进行本地开发
我们建议:在本地开发且雇主未向其提供身份验证方法的新用户应设置 Amazon IAM Identity Center。此方法包括安装 Amazon CLI 以便于配置和定期登录 Amazon 访问门户。如果选择此方法,则在完成 Amazon SDK 和工具参考指南中的 IAM Identity Center 身份验证程序后,您的环境应包含以下元素:
-
Amazon CLI,您可用于在运行应用程序之前启动 Amazon 访问门户会话。
-
共享 Amazon
config文件,其[default]配置文件包含一组可由 SDK 引用的配置值。要查找此文件的位置,请参阅《Amazon SDK 和工具参考指南》中的共享文件的位置。 -
共享
config文件包含region设置。这将设置 SDK 用于请求的默认 Amazon Web Services 区域。此区域用于未显式配置region属性的 SDK 服务请求。 -
在向 Amazon 发送请求之前,SDK 使用配置文件的 SSO 令牌提供程序配置来获取凭证。
sso_role_name值是与 IAM Identity Center 权限集关联的 IAM 角色,允许访问应用程序中使用的 Amazon Web Services 服务。以下示例
config文件展示了使用 SSO 令牌提供程序配置来设置的默认配置文件。配置文件的sso_session设置是指所指定的sso-session节。sso-session节包含启动 Amazon 访问门户会话的设置。[default] sso_session = my-sso sso_account_id =111122223333sso_role_name =SampleRoleregion = us-east-1 output = json [sso-session my-sso] sso_region = us-east-1 sso_start_url =https://provided-domain.awsapps.com/startsso_registration_scopes = sso:account:access
适用于 PHP 的 Amazon SDK 无需向应用程序添加其他包(例如 SSO 和 SSOOIDC)即可使用 IAM Identity Center 身份验证。
开始 Amazon 访问门户会话
在运行访问 Amazon Web Services 服务 的应用程序之前,需要有活动的 Amazon 访问门户会话,以便开发工具包使用 IAM Identity Center 身份验证来解析凭证。根据配置的会话时长,访问权限最终将过期,并且开发工具包将遇到身份验证错误。要登录 Amazon 访问门户,请在 Amazon CLI 中运行以下命令。
aws sso login
如果遵循引导并具有默认的配置文件设置,则无需使用 --profile 选项来调用该命令。如果您的 SSO 令牌提供程序配置在使用指定的配置文件,则命令为 aws sso login --profile named-profile。
要选择性测试是否已有活动会话,请运行以下 Amazon CLI 命令。
aws sts get-caller-identity
如果会话是活动的,则对此命令的响应会报告共享 config 文件中配置的 IAM Identity Center 账户和权限集。
注意
如果您已经有一个有效的 Amazon 访问门户会话并且运行了 aws sso
login,则无需提供凭证。
登录过程可能会提示您允许 Amazon CLI 访问您的数据。由于 Amazon CLI 基于适用于 Python 的 SDK 而构建,因此权限消息可能包含 botocore 名称的变体。
了解有关身份验证的更多信息
-
有关使用 IAM Identity Center 进行身份验证的更多详细信息,请参阅《Amazon SDK 和工具参考指南》中的了解 IAM Identity Center 身份验证
-
有关最佳实践的更多信息,请参阅《IAM 用户指南》中的 IAM 中的安全最佳实践。
-
要创建短期 Amazon 凭证,请参阅《IAM 用户指南》中的临时安全凭证。
-
要了解适用于 PHP 的 Amazon SDK 可以使用的其他凭证提供程序,请参阅《Amazon SDK 和工具参考指南》中的标准化凭证提供程序。