IAMの管理画面は、「すべてのサービス」-> 「セキュリティ、ID、およびコンプライアンス」のIAMから開けます。

IAMの追加

左メニューの「アクセス管理」から「ユーザー」を選択します。 ユーザー画面右上に「ユーザーを追加」ボタンをクリック。

ユーザー詳細の設定

ユーザー名を入力します。 次に「AWSアクセスの種類を選択」で、「AWS認証情報タイプの選択」を選択します。 terraform用では、「アクセスキー-プログラムによるアクセス」を選択します。

「次のステップ:アクセス権限」から次に進みます。

アクセス許可の設定

terraform用では、「既存のポリシーを直接アタッチ」を選択します。 すると、既存ポリシーの一覧が表示されますので、目的のポリシーにチェックを付けます。 terraform用に使用する場合、[AdministratorAccess]を選択します。

「次のステップ:タグ」から次に進みます。

タグの追加

必要に応じて設定してください。 terraformのテスト用なら、タグは追加しなくても問題ありません。

「次のステップ:確認」から次に進みます。

確認

追加するユーザー情報が表示されますので、確認して問題がなければ、 右下の「ユーザーの作成」からユーザーを作成します。

IAM情報の設定

AWS CLIで接続できるように、作成したIAMの情報を環境変数に設定します。

例 .bashrcで以下を設定。

export AWS_ACCESS_KEY_ID=ABCDEFGHIJKLMNOPQRST
export AWS_SECRET_ACCESS_KEY=1234567890abcdefghijklmnopqrstuvwxyzABCD
export AWS_DEFAULT_REGION=us-west-2

接続テスト

以下のコマンドを実行します。 自分のアカウントIDを取得できたら、正常に設定できています。

aws sts get-caller-identity --query Account --output text

例 アカウントIDが 123456789012 の場合

]$ aws sts get-caller-identity --query Account --output text
123456789012

例 ec2の一覧表示

]$ aws ec2 describe-instances
{
    "Reservations": [
        {
            "Groups": [],
            "Instances": [
            ・・・
            ・・・
            "OwnerId": "123456789012",
            "ReservationId": "r-1234567890abcdefg"
        }
    ]
}

例 ec2のインスタンスID、インスタンスタイプ、アビリティゾーン一覧

aws ec2 describe-instances --query "Reservations[].Instances[].[InstanceId, InstanceType, Placement.AvailabilityZone]"
[
    [
        "i-0123456789abcdf00",
        "t2.micro",
        "us-west-2b"
    ]
]

ユーザー一覧 (list-users)

ユーザー一覧を取得するコマンドは以下になります。

aws iam list-users

実行結果は以下のようになります。

{
    "Users": [
        {
            "Path": "/",
            "UserName": "toyota",
            "UserId": "ABCDEFGHI123456789JK",
            "Arn": "arn:aws:iam::000000000000:user/toyota",
            "CreateDate": "2023-04-16T12:20:22+00:00"
        },
        {
            "Path": "/",
            "UserName": "honda",
            "UserId": "ZXY1234ABCDEF56789GH",
            "Arn": "arn:aws:iam::000000000000:user/honda",
            "CreateDate": "2022-07-18T05:26:37+00:00"
            "PasswordLastUsed": "2023-01-09T13:49:33+00:00"
        }
    ]
}

グループ一覧 (list-users)

グループ一覧を取得するコマンドは以下になります。

aws iam list-groups

実行結果は以下のようになります。

{
    "Groups": [
        {
            "Path": "/",
            "GroupName": "abc-admin",
            "GroupId": "ABCDEFGHIJ1234567890",
            "Arn": "arn:aws:iam::000000000000:group/abc-admin"
            "CreateDate": "2022-07-18T05:31:53+00:00"
        }
    ]
}