普通にユーザーを作ります。
その時に、以下ポリシーを作成し、ユーザーにアタッチします。
このポリシーはまさにAssumeRoleをすることのみができる権限です。
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "*"
        }
    ]
}

次にロールを作ります。
上記で作ったユーザーがこのロールにAssumeRoleすることになります。
そのため、操作に必要な権限はこのロールにアタッチします。
信頼されたエンティティに以下を設定します。上記のユーザーからのみの操作を信頼しているという意味になります。
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::195341589990:user/yuta"
                ]
            },
            "Action": "sts:AssumeRole",
            "Condition": {}
        }
    ]
}

必要なポリシーをアタッチします。
この場合は、脳死でAdministartorを付けてしまってますが、限定できるならなるべくそのほうがいいと思います。

次はCLIの設定をしていきます。
~/.aws/credentialsに以下を書きます。
[vamdemic-yuta] aws_access_key_id = AKIAxxxxxxxxxxxxxxx aws_secret_access_key = 2Ixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx region = ap-northeast-1 output = json
~/.aws/configの方に以下を書きます。
[profile vamdemic] role_arn = arn:aws:iam::195341589990:role/assume-role source_profile = vamdemic-yuta
適当にCLIをたたいてみて帰ってくればOK。
profileで指定するのは、AssumeRole先のプロファイルを指定します。
あくまで指定したプロファイルでCLIを実行して、source_profileに指定しているユーザーから経由してくるというイメージだと思います。
aws s3 ls --profile vamdemic
