一時的な認証情報を取得する-AWS

1. IAMユーザーの作成

$ aws iam create-user --user-name dev-user

2. IAMロールの作成

iam-role-trust-policy.json

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::{AWSアカウントID}:user/dev-user"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
$ aws iam create-role --role-name dev-role --assume-role-policy-document file://iam-role-trust-policy.json

3. IAMユーザーの設定

IAMユーザーに設定するポリシーを作成します。

iam-user-policy.json

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "arn:aws:iam::{AWSアカウントID}:role/dev-role"
        }
    ]
}
$ aws iam create-policy --policy-name dev-user-policy --policy-document file://iam-user-policy.json

IAMユーザーに作成したポリシーの設定を行います。

$ aws iam attach-user-policy --user-name dev-user --policy-arn arn:aws:iam::{AWSアカウントID}:policy/dev-user-policy

4. IAMロールの設定

IAMロールに設定するポリシーを作成します。
※例:S3バケット内のオブジェクトの一覧を表示することができるポリシー。

iam-role-policy.json

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": "arn:aws:s3:::{バケット名}/*"
        }
    ]
}
$ aws iam create-policy --policy-name dev-role-policy --policy-document file://iam-role-policy.json

IAMロールに作成したポリシーの設定を行います。

$ aws iam attach-role-policy --role-name dev-role --policy-arn arn:aws:iam::{AWSアカウントID}:policy/dev-role-policy

5. アクセスキーの作成

$ aws iam create-access-key --user-name dev-user

6. アクセスキーの設定

$ aws configure --profile dev-user
AWS Access Key ID [None]: {作成したアクセスキーID} 
AWS Secret Access Key [None]: {作成したシークレットアクセスキー}
Default region name [None]: None
Default output format [None]: None

7. 認証情報の取得

$ aws sts assume-role --role-arn arn:aws:iam::{AWSアカウントID}:role/dev-role --role-session-name dev-session --duration-second 900 --profile dev-user