IAM アクセスキーの管理 - AWS SDK for Java 2.x

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

IAM アクセスキーの管理

アクセスキーの作成

IAM アクセスキーを作成するには、 CreateAccessKeyRequest オブジェクトを使用して IamClient’screateAccessKeyメソッドを呼び出します。

注記

がグローバルサービスであるため、IamClient呼び出しが機能するには、リージョンを AWS_GLOBAL IAM に設定する必要があります。

インポート

import software.amazon.awssdk.services.iam.model.CreateAccessKeyRequest; import software.amazon.awssdk.services.iam.model.CreateAccessKeyResponse; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.iam.IamClient; import software.amazon.awssdk.services.iam.model.IamException;

Code

public static String createIAMAccessKey(IamClient iam,String user) { try { CreateAccessKeyRequest request = CreateAccessKeyRequest.builder() .userName(user).build(); CreateAccessKeyResponse response = iam.createAccessKey(request); String keyId = response.accessKey().accessKeyId(); return keyId; } catch (IamException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return ""; }

「」で完全な例を参照してください GitHub。

アクセスキーの一覧表示

特定のユーザーのアクセスキーを一覧表示するには、キーを一覧表示するユーザー名を含むListAccessKeysRequestオブジェクトを作成し、それを IamClient’slistAccessKeysメソッドに渡します。

注記

にユーザー名を指定しない場合listAccessKeys、リクエストに署名 AWS アカウント した に関連付けられたアクセスキーを一覧表示しようとします。

インポート

import software.amazon.awssdk.services.iam.model.AccessKeyMetadata; import software.amazon.awssdk.services.iam.model.IamException; import software.amazon.awssdk.services.iam.model.ListAccessKeysRequest; import software.amazon.awssdk.services.iam.model.ListAccessKeysResponse; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.iam.IamClient;

Code

public static void listKeys( IamClient iam,String userName ){ try { boolean done = false; String newMarker = null; while (!done) { ListAccessKeysResponse response; if(newMarker == null) { ListAccessKeysRequest request = ListAccessKeysRequest.builder() .userName(userName).build(); response = iam.listAccessKeys(request); } else { ListAccessKeysRequest request = ListAccessKeysRequest.builder() .userName(userName) .marker(newMarker).build(); response = iam.listAccessKeys(request); } for (AccessKeyMetadata metadata : response.accessKeyMetadata()) { System.out.format("Retrieved access key %s", metadata.accessKeyId()); } if (!response.isTruncated()) { done = true; } else { newMarker = response.marker(); } } } catch (IamException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }

listAccessKeys の結果はページ分割されます (デフォルトで最大 1 回の呼び出しごとに 100 レコード)。返されたListAccessKeysResponseオブジェクトisTruncatedで を呼び出して、クエリが返した結果が少なくなってから利用可能かどうかを確認できます。利用可能な場合は、markerListAccessKeysResponse を呼び出して、新しいリクエストを作成するときに使用します。この新しいリクエストを listAccessKeys の次の呼び出しで使用します。

「」で完全な例を参照してください GitHub。

アクセスキーの最終使用時刻の取得

アクセスキーが最後に使用された時刻を取得するには、アクセスキーIamClient’sgetAccessKeyLastUsedの ID ( GetAccessKeyLastUsedRequest オブジェクトを使用して渡すことができます。

その後、返された GetAccessKeyLastUsedResponse オブジェクトを使用して、キーの最終使用時刻を取得できます。

インポート

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.iam.IamClient; import software.amazon.awssdk.services.iam.model.GetAccessKeyLastUsedRequest; import software.amazon.awssdk.services.iam.model.GetAccessKeyLastUsedResponse; import software.amazon.awssdk.services.iam.model.IamException;

Code

public static void getAccessKeyLastUsed(IamClient iam, String accessId ){ try { GetAccessKeyLastUsedRequest request = GetAccessKeyLastUsedRequest.builder() .accessKeyId(accessId).build(); GetAccessKeyLastUsedResponse response = iam.getAccessKeyLastUsed(request); System.out.println("Access key was last used at: " + response.accessKeyLastUsed().lastUsedDate()); } catch (IamException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } System.out.println("Done"); }

「」で完全な例を参照してください GitHub。

アクセスキーのアクティブ化または非アクティブ化

UpdateAccessKeyRequest オブジェクトを作成し、アクセスキー ID、オプションでユーザー名、および目的の を指定してstatus、リクエストオブジェクトを IamClient’supdateAccessKeyメソッドに渡すことで、アクセスキーをアクティブ化または非アクティブ化できます。

インポート

import software.amazon.awssdk.services.iam.model.IamException; import software.amazon.awssdk.services.iam.model.StatusType; import software.amazon.awssdk.services.iam.model.UpdateAccessKeyRequest; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.iam.IamClient;

Code

public static void updateKey(IamClient iam, String username, String accessId, String status ) { try { if (status.toLowerCase().equalsIgnoreCase("active")) { statusType = StatusType.ACTIVE; } else if (status.toLowerCase().equalsIgnoreCase("inactive")) { statusType = StatusType.INACTIVE; } else { statusType = StatusType.UNKNOWN_TO_SDK_VERSION; } UpdateAccessKeyRequest request = UpdateAccessKeyRequest.builder() .accessKeyId(accessId) .userName(username) .status(statusType) .build(); iam.updateAccessKey(request); System.out.printf( "Successfully updated the status of access key %s to" + "status %s for user %s", accessId, status, username); } catch (IamException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }

「」で完全な例を参照してください GitHub。

アクセスキーの削除

アクセスキーを完全に削除するには、 IamClient’sdeleteKeyメソッドを呼び出し、アクセスキーの ID とユーザー名DeleteAccessKeyRequestを含む を指定します。

注記

削除してしまうと、キーは取得することも使用することもできなくなります。キーを一時的に非アクティブ化して後で再度アクティブ化できるようにするには、代わりに updateAccessKeyメソッドを使用します。

インポート

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.iam.IamClient; import software.amazon.awssdk.services.iam.model.DeleteAccessKeyRequest; import software.amazon.awssdk.services.iam.model.IamException;

Code

public static void deleteKey(IamClient iam ,String username, String accessKey ) { try { DeleteAccessKeyRequest request = DeleteAccessKeyRequest.builder() .accessKeyId(accessKey) .userName(username) .build(); iam.deleteAccessKey(request); System.out.println("Successfully deleted access key " + accessKey + " from user " + username); } catch (IamException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }

「」で完全な例を参照してください GitHub。

詳細情報