IAM User と IAM Role を管理する
IAM User を使用すると、アプリケーションごとに専用の Access Key を発行し、必要な S3 権限だけを付与できます。権限は AWS IAM と同様の JSON ポリシーで定義します。SubUser のロールでは権限が広すぎる場合は、IAM User を使用してください。
IAM User と IAM Role は、HCM-04 cluster 上の bucket でのみ利用できます。他の cluster で限定的なアクセスを共有するには、SubUser を使用してください。
IAM User、Admin Access Key、SubUser を比較する
FPT Object Storage には、S3 の認証情報を生成する場所が 3 つあります。これらは互いに置き換えられないため、キーを共有する前に、そのキーがどこで生成されたものかを確認してください。
| Admin Access Key | IAM User の Access Key | SubUser の Access Key | |
|---|---|---|---|
| Cluster | すべての cluster | HCM-04 のみ | HCM-04 以外のすべての cluster |
| 権限の範囲 | アカウントへのフルアクセス | IAM Policy で許可された操作のみ | すべての bucket に対するロール(Read、Write、Read - Write、Full)。Bucket Policy で bucket ごとに制限可能 |
| キーの上限 | Region ごとに 5 個 | IAM User ごとに 2 個 | SubUser ごとに 2 個 |
プロジェクトが HCM-04 上になく、限定的なアクセスを共有するだけであれば、SubUser のほうが簡単に設定できます。
IAM User を表示する
- Object Storage に移動し、Project を選択して、IAM User タブを開きます。
- 上部の切り替えスイッチで、IAM Users ビューと IAM Roles ビューを切り替えます。タブを開くと IAM Users ビューが表示されます。
- IAM User を探すには、検索ボックスに名前を入力します。
IAM User タブは、Project で HCM-04 の Object Storage を有効にした後にのみ表示されます。
IAM User を作成する
- IAM Users ビューで、Create IAM User をクリックします。
- IAM User Name を入力します。名前は次の条件を満たす必要があります。
- 1〜64 文字であること
- 英字、数字、
+ = , . @ _ -のみを含むこと - アカウント内で一意であること(大文字と小文字は区別されません)
- Create をクリックします。
新しい IAM User には権限も Access Key もありません。使用する前に、ポリシーを適用してキーを生成してください。
IAM User にポリシーを適用する
各 IAM User には JSON ポリシーを 1 つだけ設定できます。ポリシーを保存すると以前のポリシーは完全に置き換えられ、そのユーザーのすべてのキーに直ちに反映されます。
-
IAM User の詳細ページを開き、IAM Policy タブを選択します。
-
Create IAM Policy をクリックします。サンプルテンプレートが入力された状態でエディターが開きます。
-
ポリシーを編集します。次の例では、1 つの bucket に対する読み取りと書き込みのアクセス権を付与します。
{
"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/*"
]
}
]
} -
Save をクリックし、変更を確定します。
ポリシーの記述にかかわらず、次の権限は付与できません。
- アカウント外の bucket へのアクセスは常に拒否されます。
- ID 管理の操作(
iam:*)は、ワイルドカード*のアクションを指定してもブロックされます。 s3:PutBucketPolicy、s3:PutBucketAcl、s3:PutObjectAclは常にブロックされます。
必要な操作が動作しない場合は、その cluster でまだサポートされていない可能性があります。詳しく調査する前に、FPT Cloud サポートにお問い合わせください。
IAM User からすべての権限を削除するには、IAM Policy タブを開いて Delete Policy をクリックします。ユーザーは残りますが、そのユーザーのすべてのキーは直ちに S3 にアクセスできなくなります。
IAM User の Access Key を生成する
各 IAM User は、同時に最大 2 個の Access Key を持てます。
- IAM User の詳細ページを開き、Access Key タブを選択します。
- Generate Key をクリックします。Access Key と Secret Key が生成されます。
- 両方の値をコピーし、安全な場所に保管します。
- I've saved the secret key をクリックします。
Secret Key は一度だけ表示されます。コピーする前にパネルを閉じた場合は、キーを削除して新しく生成してください。
キーは HCM-04 の endpoint ですぐに使用できます。ただし、IAM User にポリシーが設定されるまで、リクエストは拒否されます。
IAM User の Access Key を削除する
- IAM User の Access Key タブで、対象キーの行メニューを開き、Delete を選択します。
deleteと入力し、Delete をクリックします。
削除は直ちに実行され、元に戻せません。アプリケーションが引き続きアクセスを必要とする場合は、古いキーを削除する前に新しいキーを生成し、アプリケーションの設定を更新してください。
IAM User を削除する
- IAM User 一覧で行メニューを開き、Delete を選択します。詳細ページの Danger Zone セクションにある Delete IAM User を使用することもできます。
deleteと入力し、Delete をクリックします。ユーザーのすべてのキーが無効化され、ポリシーが削除された後、ユーザーが削除されます。
bucket とデータは ID ではなくアカウントに属しているため、影響を受けません。
IAM User を削除する前に、Bucket Policy の確認は行われません。そのユーザーを Principal として指定しているステートメントは一致しなくなります。後で同じ名前の IAM User を作成すると、古いステートメントが新しいユーザーに適用される場合があります。名前を再利用する前に、Bucket Policy を整理してください。
IAM Role を管理する
IAM Role は、共通の権限セットと、その権限の使用を許可された IAM User の一覧を保持します。これにより、同じポリシーを各ユーザーにコピーする必要がなくなります。
現在のバージョンでは、Portal でロールを引き受けたり、ロールから一時的な認証情報を取得したりする手段はありません。ロールは Principal の参照としてのみ機能します。ロールの ARN を Bucket Policy にコピーすることはできますが、ロール自体が IAM User に実際の S3 アクセス権を与えることはありません。
- IAM User タブで IAM Roles ビューに切り替え、Create Role をクリックします。
- Role Name を入力します。命名規則は IAM User 名と同じです。必要に応じて、ロールの使用を許可する IAM Users を選択します。
- Create をクリックします。
- ロールの詳細ページを開き、Role Policy タブを選択して、JSON ポリシーを適用します。形式と制限は IAM User のポリシーと同じです。
信頼するユーザーを変更するには、ロールの Detail タブを開き、IAM Users カードに移動して、Edit IAM Users をクリックします。保存すると、一覧全体が置き換えられます。
ロールを削除するには、詳細ページの Danger Zone セクションにある Delete IAM Role を使用し、delete と入力して確定します。ロールのポリシーと信頼関係は削除されますが、IAM User は削除されません。IAM User の場合と同様に、ロールの ARN を Principal として指定している Bucket Policy は、自分で整理してください。