AWS SDK for Ruby
開発者ガイド

IAM アクセスキーの管理

ユーザーが SDK for Ruby からプログラムで AWS を呼び出すには、独自のアクセスキーが必要です。このニーズを満たすために、IAM ユーザーのアクセスキー (アクセスキー ID およびシークレットアクセスキー) を作成、修正、表示、および更新できます。デフォルトでは、アクセスキーを作成したときのステータスは Active です。これは、ユーザーが API コールにそのアクセスキーを使用できることを意味します。 アクセスキーの詳細については、「IAM ユーザーのアクセスキーの管理」を参照してください。

この例では、AWS SDK for Ruby を IAM で使用して、以下のことを行います。

  1. Aws::IAM::Client#list_access_keys を使用して AWS IAM ユーザーアクセスキーをリストする。

  2. Aws::IAM::Client#create_access_key を使用してアクセスキーを作成する。

  3. Aws::IAM::Client#get_access_key_last_used を使用して、アクセスキーが最後にいつ使用されたか確認する。

  4. Aws::IAM::Client#update_access_key を使用してアクセスキーを無効化する。

  5. Aws::IAM::Client#delete_access_key を使用してアクセスキーを削除する。

前提条件

コード例を実行する前に、以下で説明されているように、AWS SDK for Ruby をインストールし、設定する必要があります。

スクリプトで指定されたユーザー (my-user) も作成する必要があります。新しい IAM ユーザーは、「新しいユーザーの追加」で説明しているように、IAM コンソールでまたはプログラムで作成できます。

require 'aws-sdk' iam = Aws::IAM::Client.new(region: 'us-east-1') user_name = "my-user" # List user access keys. def list_keys(iam, user_name) begin list_access_keys_response = iam.list_access_keys({ user_name: user_name }) if list_access_keys_response.access_key_metadata.count == 0 puts "No access keys." else puts "Access keys:" list_access_keys_response.access_key_metadata.each do |key_metadata| puts " Access key ID: #{key_metadata.access_key_id}" end end rescue Aws::IAM::Errors::NoSuchEntity puts "Cannot find user '#{user_name}'." exit(false) end end puts "Before creating access key..." list_keys(iam, user_name) # Create an access key. puts "\nCreating access key..." begin iam.create_access_key({ user_name: user_name }) puts "\nAfter creating access key..." list_keys(iam, user_name) rescue Aws::IAM::Errors::LimitExceeded puts "Too many access keys. Can't create any more." end # Determine when access keys were last used. puts "\nKey(s) were last used..." list_access_keys_response = iam.list_access_keys({ user_name: user_name }) list_access_keys_response.access_key_metadata.each do |key_metadata| resp = iam.get_access_key_last_used({ access_key_id: key_metadata.access_key_id }) puts " Key '#{key_metadata.access_key_id}' last used on #{resp.access_key_last_used.last_used_date}" # Deactivate access keys. puts " Trying to deactivate this key..." iam.update_access_key({ user_name: user_name, access_key_id: key_metadata.access_key_id, status: "Inactive" }) end puts "\nAfter deactivating access key(s)..." list_keys(iam, user_name) # Delete the access key. puts "\nDeleting access key..." iam.delete_access_key({ user_name: user_name, access_key_id: list_access_keys_response.access_key_metadata[0].access_key_id }) puts "\nAfter deleting access key..." list_keys(iam, user_name)

このページの内容: