メインコンテンツまでスキップ

Object Storage の IAM User と IAM Role の管理

IAM User と IAM Role は FPT Object Storage の ID モデルで、AWS IAM と同様に JSON ポリシーで S3 権限をきめ細かく設定できます。各 IAM User には固有の名前とポリシーがあり、そのポリシーで許可された範囲でのみ使える access key を最大 2 個保持できます。

注記

IAM User と IAM Role は HCM-04 クラスタ上のバケットのみ対象です。それ以外のクラスタでは、限定的なバケットアクセス共有に引き続き SubUser を使用してください — SubUser の管理 を参照。

IAM User と Access Key、SubUser の違い​

FPT Object Storage には S3 の credential を発行する場所が 3 つあります。それぞれ 互換性はありません — キーを共有する前に、どれを使っているか必ず確認してください。

Access Key タブ(旧)IAM User > Access KeySubUser
対象クラスタ全クラスタHCM-04 のみHCM-04 以外の全クラスタ
権限の範囲アカウントへの管理者権限IAM Policy で許可した範囲のみバケットごとの Read / Write / Read-Write / Full
キー上限5 key / region2 key / IAM User2 key / SubUser

限定的なバケットアクセス共有だけが目的で、Project が HCM-04 を使用していない場合は SubUser の方が簡単です。アプリケーションごとに S3 ポリシーレベルで細かく制御したい場合は IAM User を使用します。

IAM User の一覧を表示する​

Step 1: Object Storage Management メニューから Project を選択し、IAM User タブを開きます。

注記

IAM User タブは、Project で HCM-04 上の Object Storage が有効になっている場合のみ表示されます。表示されない場合、その Project は HCM-04 を使用していません。

Step 2: タブはデフォルトで IAM Users ビューを表示します。ページ上部の切り替えで IAM Roles ビューに切り替えられます。

Step 3: 検索ボックスで IAM User を名前で検索できます。


IAM User を作成する​

Step 1: IAM Users ビューで Create IAM User をクリックします。

Step 2: IAM User Name を入力します。

  • 1〜64 文字。
  • 使用可能な文字: 英数字と + = , . @ _ -。
  • account 内で一意である必要があります(大文字・小文字は区別しません)。

Step 3: Create をクリックします。

注記

作成直後の IAM User には 権限も access key もありません。S3 を呼び出せるようにするには、この後の 2 つの手順で IAM Policy を設定し、access key を発行してください。


IAM User にポリシーを設定する​

ポリシーを設定するまで、IAM User はどの S3 リソースにもアクセスできません。IAM User が持てるポリシーは 1 つのみで、保存すると既存のポリシーが完全に置き換わります。

Step 1: IAM User の詳細ページを開き、IAM Policy タブを選択します。

Step 2: Create IAM Policy をクリックします。エディタにはサンプルテンプレートが読み込まれます。例として、特定のバケットへの読み書き権限を許可する場合:

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowReadWriteOneBucket",
"Effect": "Allow",
"Action": ["s3:GetObject", "s3:PutObject", "s3:ListBucket"],
"Resource": [
"arn:aws:s3:::YOUR-BUCKET-NAME",
"arn:aws:s3:::YOUR-BUCKET-NAME/*"
]
}
]
}

Step 3: Resource の値を自分のバケットに書き換え、Save をクリックします。

Step 4: 変更を確定します。ダイアログには、保存するとポリシー全体が置き換わり、この IAM User の既存のすべての access key に即座に反映される旨が表示されます。

警告
  • ポリシーの Resource は自分の account 内のバケットである必要があります。account 外のリソースは常に拒否されます。
  • ワイルドカード * を含め、ID 管理権限(iam:*)は付与できません。
  • s3:PutBucketPolicy、s3:PutBucketAcl、s3:PutObjectAcl はこのポリシーでは付与できません — これは常に強制されるガードレールです。
  • 必要な action が想定どおりに動作しない場合、現在のクラスタでまだサポートされていない可能性があります。詳しい調査の前に FPT Cloud サポートへ確認してください。

IAM User の権限をすべて削除するには、IAM Policy タブで Delete Policy をクリックします。user 自体は残りますが、保持しているすべての access key が即座に S3 へのアクセス権を失います。


IAM User の access key を発行する​

Step 1: IAM User の詳細ページを開き、Access Key タブを選択します。

Step 2: Generate Key をクリックします。IAM User ごとに同時に保持できる access key は最大 2 個です。

Step 3: Access Key と Secret Key が発行されます。両方をすぐにコピーして保存してください — Secret Key は一度しか表示されず、後から再表示することはできません。

Step 4: I've saved the secret key をクリックしてパネルを閉じます。

警告

Secret Key をコピーする前にパネルを閉じると、key 自体は作成済みのままですが secret は完全に失われ、復元できません。復旧するにはその key を削除し、新しく発行し直すしかありません。

発行した key は HCM-04 の S3 エンドポイントに対してすぐ使用できますが、IAM User にポリシーが設定されていない場合、その key を使ったリクエストはすべて拒否されます。


access key を削除(失効)する​

Step 1: IAM User の Access Key タブで削除する key を見つけ、行メニューから Delete を選択します。

Step 2: 確認のため delete と入力し、Delete をクリックします。

警告

削除は即座かつ永続的です — 猶予期間はなく、元に戻すこともできません。アプリケーションで引き続き S3 アクセスが必要な場合は、先に代替の key を発行してアプリケーションを更新してから、古い key を削除してください。


IAM User を削除する​

Step 1: IAM Users 一覧で行メニューから Delete を選択するか、user の詳細ページの Danger Zone セクションで Delete IAM User を使用します。

Step 2: 確認のため delete と入力し、Delete をクリックします。system は user を削除する前に、すべての access key を失効させ、ポリシーを削除します。

警告
  • system は削除前にバケットポリシー内のこの IAM User への参照をスキャンしません。バケットポリシーでこの user を Principal として指定している場合、そのステートメントは削除後に黙って一致しなくなります — 自分でバケットポリシーを確認・整理してください。
  • IAM User の名前は再利用できます。削除した user と同じ名前で新しい IAM User を作成すると、その名前を参照している古いバケットポリシーのステートメントが新しい user に再び一致し、意図せず古い権限が付与される場合があります。名前を再利用する前にバケットポリシーを整理してください。
  • IAM User の削除はバケットやデータには影響しません — バケットは account に属し、ID とは独立しています。

IAM Role​

警告

このバージョンでは IAM Role の作成・設定はできますが、portal にはそのロールを実際に使って有効な credential を取得する手段(assume role の操作や一時的な credential の発行フロー)がまだありません。現時点では、ロールの用途はバケットポリシーで参照する Principal(ARN のコピー)としてのみで、ロール自体がどの IAM User にも有効な S3 アクセス権を与えることはありません。この機能は今後のバージョンで追加される予定です。

IAM Role は共有の権限セットを表し、そのロールを使用できる IAM User のリストを持ちます。これにより、各 user に同じポリシーを個別にコピーする必要がなくなります。

Step 1: IAM User タブで IAM Roles ビューに切り替え、Create Role をクリックします。

Step 2: Role Name(文字のルールは IAM User 名と同じ)を入力し、必要に応じてこのロールを使用できる IAM Users を選択します。

Step 3: Create をクリックします。

Step 4: ロールの詳細ページで Role Policy タブを開き、JSON ポリシーを設定します。形式とガードレールは上記の IAM User のポリシーと同じですが、このロールを使用するすべての IAM User に適用される点が異なります。

Step 5: ロールを使用できる IAM User を変更するには、Detail タブの IAM Users カードで Edit IAM Users をクリックします。保存すると、以前のリストは完全に置き換わります。

Step 6: ロールを削除するには、詳細ページの Danger Zone セクションで Delete IAM Role を使用し、確認のため delete と入力します。この操作でロールのポリシーと信頼関係が削除されますが、そのロールを使用できていた IAM User 自体は削除されません。

警告

IAM User の削除と同様、ロールの削除でもバケットポリシー内の参照はスキャンされません — ロールの ARN を Principal として指定しているバケットポリシーは自分で整理してください。