Create IAM Policy

最終更新日:2025-08-18 15:58:39

権限ポリシー(IAM Policy)は、Identity and Access Managementにおける核心要素であり、ユーザー、グループ、ロールのリソースへのアクセス権限を定義します。その機能は、一連の権限ルールを通じて、誰(ユーザーまたはエンティティ)がどのリソースにアクセスし、どの特定の操作を実行できるかを細かく制御することです。IAMポリシーの核心目的は、リソースの安全性を確保し、不正アクセスを防止するとともに、様々なビジネスニーズに応える柔軟な権限管理を提供することです。これにより、企業はユーザー権限を効果的に管理し、最小権限の原則を遵守し、潜在的なセキュリティリスクを低減できます。ポリシーは通常JSON形式で記述され、許可または拒否される具体的な操作を詳細に規定します。例えば、IAMポリシーでユーザーグループに特定バケットへのアクセスを許可したり、読み取り専用操作に制限したりできます。

IAM(権限)ポリシーの作成方法

権限ポリシーのフォーマットは次の通りです:

{
    "version": "1",
    "statement": [
        {
            "action": [
                "wos:GetBucket"
            ],
            "resource": [
                "wsc:wos:*:*:testbucket"
            ],
            "effect": "allow"
        },
        {
            "action": [
                "wos:PutObject",
                "wos:GetObject",
                "wos:DeleteObject"
            ],
            "resource": [
                "wsc:wos:*:*:testbucket/*"
            ],
            "effect": "allow"
        }
    ]
}

メインアカウントはこのようなポリシーを使用して、IAMシステム内のサブアカウントを承認できます。ポリシー内には1つのステートメントが存在します(1つのポリシーに複数のステートメントを含めることができます)。ステートメント内に対応するaction、resource、effectが指定されています。

このポリシー設定の権限:スペースtestbucket内の全ファイル情報をリスト表示;スペースtestbucketへファイルをアップロード;スペースtestbucket内のファイルをダウンロード;スペースtestbucket内のファイルを削除。

パラメータ説明と設定ルール

Version

versionは権限ポリシーのバージョンを定義し、現在サポートされているバージョンは"1"です。

Statement

承認セマンティクスはステートメントで記述されます。ビジネスシナリオに応じて複数のセマンティクスを含むことが可能で、各々がaction、effect、resourceの記述を含みます。リクエストが行われるたびに、システムはマッチングを順次確認します。マッチに成功した全ステートメントは、effect設定に基づきallowとdenyに分類され、denyが優先されます。全マッチが通過した場合、リクエストは承認されます。マッチが成功した場合にdenyが存在する、あるいはマッチ成功エントリがない場合は、リクエストはアクセス禁止となります。

Action

Actionとはwosが提供するS3 APIまたはコンソールの操作を指します。アクションルールはwos:{action_name}で、ワイルドカードをサポートし、 で0文字以上の任意の英字を表せます。例えばwos:List*は、action_nameがListで始まるwos提供の全S3 APIまたはコンソール操作を意味します。
Actionはリスト形式で、1つ以上のアクションを選択でき、全action_nameには"wos:"プレフィックスが必須です。複数のアクションが存在可能です。

アクションは以下の3カテゴリに分類されます:

1. Service-level operations: wos:GetServiceに類似する操作に対応。
特定actionとS3 APIの対応関係:

S3 API action
GetService wos:GetService

コンソール操作との対応関係:

Console operation action
Buckets
View wos:GetService
Bucket-Manage-Basic statistics / Detection statistics / Overview
View wos:GetBucketAnalysis

注意:

  1. サブアカウントにGetService権限を割り当てると、親アカウントが所有する全スペースを取得できます(サブアカウント作成のスペースは親アカウントが所有者)
  2. コンソール利用には全サブアカウントにGetService権限が必須(未設定時は他操作が正常動作しない)
  3. GetBucketAnalysis権限付与で統計分析メニュー下の全項目閲覧可

2. Bucket level operations: wos:PutBucketLifecycle, wos:GetBucket等の操作に対応。操作対象はBucket。
S3 API対応表:

S3 API action
GetBucket(ListObjects) wos:GetBucket
GetBucketLifecycle wos:GetBucketLifecycle
PutBucketLifecycle wos:PutBucketLifecycle
DeleteBucketLifecycle wos:DeleteBucketLifecycle
ListMultipartUploads wos:ListMultipartUploads

コンソール操作対応表:

Console operation action
Buckets
Create Bucket wos:PutBucket
Buckets-Manage-File management
Query (view) wos:GetBucket
Buckets-Manage-Basic settings
View-Back-To-Origin wos:GetBucketMirror
Edit-Back-To-Origin wos:PutBucketMirror
Delete-Back-To-Origin wos:DeleteBucketMirror
View-life cycle settings wos:GetBucketLifecycle
Create rule-life cycle settings wos:PutBucketLifecycle
Edit-life cycle settings wos:PutBucketLifecycle
Clear all rules-life cycle settings wos:DeleteBucketLifecycle
Delete-life cycle settings wos:DeleteBucketLifecycle
Create rules-CORS settings wos:PutBucketCors
Edit-CORS settings wos:PutBucketCors
View-CORS settings wos:GetBucketCors
Delete-CORS settings wos:DeleteBucketCors
Clear all rules-CORS settings wos:DeleteBucketCors
Delete Bucket wos:DeleteBucket
Buckets-manage-Domain Management
View-domain name wos:GetBucketDomain
Bind custom domain name wos:PutBucketDomain
Modify protocol wos:PutBucketDomain
Delete-domain name wos:DeleteBucketDomain

3. Object level operation: wos:GetObject, wos:PutObject, wos:DeleteObject, wos:AbortMultipartUpload等に対応。操作対象はObject。
S3 API対応表:

S3 API action
GetObject wos:GetObject
HeadObject wos:HeadObject
PutObject wos:PutObject
PostObject wos:PutObject
InitiateMultipartUpload wos:PutObject
UploadPart wos:PutObject
CompleteMultipartUpload wos:PutObject
DeleteObject wos:DeleteObject
MultiDelete wos:DeleteObject
AbortMultipartUpload wos:AbortMultipartUpload
ListParts wos:ListParts
CopyObject wos:GetObject,wos:PutObject
RestoreObject wos:RestoreObject

コンソール操作対応表:

Console operation action
Buckets-Manage-File management
New folder wos:PutFolder
Upload file wos:PutObject
Delete wos:DeleteObject
Rename wos:PutObject
Restore wos:RestoreObject
Configure Expiration Data wos:DeleteObject

Resource

Resourceはwos上に保存されるリソースを指します。リソースルールはwsc:wos:{region}:{bucket_owner}:{bucket_name}/{object_name}で、ワイルドカードをサポートします。regionフィールドは現在未サポートのため""固定。
resourceもリスト形式で、1つ以上のリソースを含みます。

  • Service-level操作:特定リソースの割当不可(wsc:wos:* : * : * 固定)
  • Bucket-level操作:特定スペースのみ可(例: wsc:wos:{region}:{bucket_owner}:{bucket_name})
  • Object-level操作:特定ファイルへの割当可(例: wsc:wos:{region}:{bucket_owner}:{bucket_name}/{object_name})

Effect

Effectはステートメントの承認結果(allow/deny)を示し、それぞれ許可/拒否を意味します。複数ステートメントが同時にマッチした場合、denyが優先されます。
例:特定ディレクトリの削除禁止&他ファイルへのフルアクセス許可:

{
  "version": "1",
  "statement": [
    {
      "effect": "allow",
      "action": [
        "wos:*"
      ],
      "resource": [
        "wsc:wos:*:*:bucketname/*"
      ]
    },
    {
      "effect": "deny",
      "action": [
        "wos:DeleteObject"
      ],
      "resource": [
        "wsc:wos:*:*:bucketname/test/*"
      ]
    }
  ]
}