管理 IAM 访问密钥 - 适用于 Java 的 AWS 软件开发工具包
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

管理 IAM 访问密钥

创建访问密钥

要创建 IAM 访问密钥,请使用 AmazonIdentityManagementClientCreateAccessKeyRequestcreateAccessKey 对象调用 方法。

CreateAccessKeyRequest 有两个构造函数,一个需要用户名,另一个不带参数。如果您使用不带参数的版本,则必须使用 withUserName setter 设置用户名,然后再将其传递给 createAccessKey 方法。

导入

import com.amazonaws.services.identitymanagement.AmazonIdentityManagement; import com.amazonaws.services.identitymanagement.AmazonIdentityManagementClientBuilder; import com.amazonaws.services.identitymanagement.model.CreateAccessKeyRequest; import com.amazonaws.services.identitymanagement.model.CreateAccessKeyResult;

代码

final AmazonIdentityManagement iam = AmazonIdentityManagementClientBuilder.defaultClient(); CreateAccessKeyRequest request = new CreateAccessKeyRequest() .withUserName(user); CreateAccessKeyResult response = iam.createAccessKey(request);

请参阅 GitHub 上的完整示例

列出访问密钥

要列出指定用户的访问密钥,请创建一个 ListAccessKeysRequest 对象,其中包含要列出其密钥的用户名,并将该对象传递给 AmazonIdentityManagementClient 的 listAccessKeys 方法。

注意

如果您未向 listAccessKeys 提供用户名,则它将尝试列出与签署该请求的 AWS 账户相关联的访问密钥。

导入

import com.amazonaws.services.identitymanagement.AmazonIdentityManagement; import com.amazonaws.services.identitymanagement.AmazonIdentityManagementClientBuilder; import com.amazonaws.services.identitymanagement.model.AccessKeyMetadata; import com.amazonaws.services.identitymanagement.model.ListAccessKeysRequest; import com.amazonaws.services.identitymanagement.model.ListAccessKeysResult;

代码

final AmazonIdentityManagement iam = AmazonIdentityManagementClientBuilder.defaultClient(); boolean done = false; ListAccessKeysRequest request = new ListAccessKeysRequest() .withUserName(username); while (!done) { ListAccessKeysResult response = iam.listAccessKeys(request); for (AccessKeyMetadata metadata : response.getAccessKeyMetadata()) { System.out.format("Retrieved access key %s", metadata.getAccessKeyId()); } request.setMarker(response.getMarker()); if (!response.getIsTruncated()) { done = true; } }

listAccessKeys 的结果分页显示 (默认情况下,每个调用最多返回 100 个记录)。您可以getIsTruncated对返回的 ListAccessKeysResult 对象调用 ,以查看查询返回的结果是否少于可用结果。如果是这样,则在 setMarker 上调用 ListAccessKeysRequest 并将其传递回 listAccessKeys 的后续调用。

请参阅 GitHub 上的完整示例

检索上次使用访问密钥的时间

要获取上次使用访问密钥的时间,请使用访问密钥的 ID(可使用 AmazonIdentityManagementClientGetAccessKeyLastUsedRequestgetAccessKeyLastUsed 对象传入)调用 方法,或者直接调用直接获取访问密钥 ID 的重载。

然后,您可以使用返回的 GetAccessKeyLastUsedResult 对象检索上次使用密钥的时间。

导入

import com.amazonaws.services.identitymanagement.AmazonIdentityManagement; import com.amazonaws.services.identitymanagement.AmazonIdentityManagementClientBuilder; import com.amazonaws.services.identitymanagement.model.GetAccessKeyLastUsedRequest; import com.amazonaws.services.identitymanagement.model.GetAccessKeyLastUsedResult;

代码

final AmazonIdentityManagement iam = AmazonIdentityManagementClientBuilder.defaultClient(); GetAccessKeyLastUsedRequest request = new GetAccessKeyLastUsedRequest() .withAccessKeyId(access_id); GetAccessKeyLastUsedResult response = iam.getAccessKeyLastUsed(request); System.out.println("Access key was last used at: " + response.getAccessKeyLastUsed().getLastUsedDate());

请参阅 GitHub 上的完整示例

激活或停用访问密钥

您可以激活或停用访问密钥,方式是创建 UpdateAccessKeyRequest 对象,提供访问密钥 ID、用户名(可选)和所需状态,然后将请求对象传递给 AmazonIdentityManagementClient 的 updateAccessKey 方法。

导入

import com.amazonaws.services.identitymanagement.AmazonIdentityManagement; import com.amazonaws.services.identitymanagement.AmazonIdentityManagementClientBuilder; import com.amazonaws.services.identitymanagement.model.UpdateAccessKeyRequest; import com.amazonaws.services.identitymanagement.model.UpdateAccessKeyResult;

代码

final AmazonIdentityManagement iam = AmazonIdentityManagementClientBuilder.defaultClient(); UpdateAccessKeyRequest request = new UpdateAccessKeyRequest() .withAccessKeyId(access_id) .withUserName(username) .withStatus(status); UpdateAccessKeyResult response = iam.updateAccessKey(request);

请参阅 GitHub 上的完整示例

删除访问密钥

要永久删除访问密钥,请调用 AmazonIdentityManagementClient 的 deleteKey 方法,并为它提供 DeleteAccessKeyRequest,其中包含访问密钥的 ID 和用户名。

注意

密钥在删除后无法再检索或使用。要临时停用密钥,使其可以稍后再次激活,请改用 updateAccessKey 方法。

导入

import com.amazonaws.services.identitymanagement.AmazonIdentityManagement; import com.amazonaws.services.identitymanagement.AmazonIdentityManagementClientBuilder; import com.amazonaws.services.identitymanagement.model.DeleteAccessKeyRequest; import com.amazonaws.services.identitymanagement.model.DeleteAccessKeyResult;

代码

final AmazonIdentityManagement iam = AmazonIdentityManagementClientBuilder.defaultClient(); DeleteAccessKeyRequest request = new DeleteAccessKeyRequest() .withAccessKeyId(access_key) .withUserName(username); DeleteAccessKeyResult response = iam.deleteAccessKey(request);

请参阅 GitHub 上的完整示例

更多信息

  • 中的 CreateAccessKeyIAM API Reference

  • 中的 ListAccessKeysIAM API Reference

  • 中的 GetAccessKeyLastUsedIAM API Reference

  • 中的 UpdateAccessKeyIAM API Reference

  • 中的 DeleteAccessKeyIAM API Reference