概要

IAM ユーザーを作成してポリシーをアタッチします。
そして、アクセスキーを生成して、AWS リソースへの接続を試してみます。

AWS への操作は AWS CLI を使います。

IAM ユーザーの作成

まずは IAM ユーザーを作成します。
ユーザーの作成にはcreate-userコマンドを実行します。

aws iam create-user --user-name MyUser

ポリシーの作成

次に、ポリシーを作成します。
example-policy.jsonファイルを作成します。
以下は S3 バケットへアクセスするためのポリシーの例です。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListAllMyBuckets"],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket", "s3:GetBucketLocation"],
      "Resource": "arn:aws:s3:::*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:PutObjectAcl",
        "s3:GetObject",
        "s3:GetObjectAcl",
        "s3:DeleteObject"
      ],
      "Resource": "arn:aws:s3:::examplebucket/*"
    }
  ]
}

ファイルが作成できたらcreate-policyコマンドを実行します。
作成されたポリシーの ARN が出力されるので書き留めておきます。

aws iam create-policy --policy-name example-policy --policy-document file://example-policy.json

attach-user-policyコマンドを実行して、ポリシーを最初に作成したユーザーにアタッチします。

aws iam attach-user-policy --user-name MyUser --policy-arn "arn:aws:iam::123456789012:policy/example-policy"

作成したユーザーを使って接続テスト

作成したユーザーで AWS S3 へ接続してみます。
ここではfog-awsを使います。

まずはアクセスキーを生成します。
create-access-keyコマンドを実行します。

aws iam create-access-key --user-name MyUser

実行すると、アクセスキーが出力されます。
ユーザーのホームディレクトリ直下に.fogファイルを作成して、アクセスキーを書き込みます。

default:
  aws_access_key_id:     <YOUR_ACCESS_KEY_ID>
  aws_secret_access_key: <YOUR_SECRET_ACCESS_KEY>

S3 の適当なバケットへアクセスしてみます。

require 'fog-aws'

s3 = Fog::Storage.new(provider: 'AWS', region: 'ap-northeast-1')
s3.directories.get(BUCKET_NAME)

バケットのオブジェクトが取得できれば成功です。