すべてのプロダクト
Search
ドキュメントセンター

Resource Access Management:カスタムポリシーの作成

最終更新日:Sep 29, 2026

カスタムポリシーを作成して、きめ細かな権限管理を実装できます。

作成方法

  • ビジュアルエディターの使用

    Resource Access Management (RAM) は、WYSIWYG (見たままが得られる) のビジュアルエディターを提供します。エフェクト、サービス、アクション、リソース、条件を選択することで、カスタムポリシーを生成できます。組み込みのインテリジェントな検証機能により、ポリシーが有効かつ効果的であることが保証されます。この方法は直感的で分かりやすいです。

  • スクリプトエディターの使用

    RAM は、JSON スクリプトエディターを提供します。ポリシーの構文と構造に従ってカスタムポリシーを記述する必要があります。この方法は柔軟性が高く、ポリシー構文に精通している場合に適しています。

  • ポリシーのインポート

    • ポリシーテンプレートのインポート:RAM は、システム管理者、財務スタッフ、ネットワーク管理者などの一般的なシナリオ向けのポリシーテンプレートを提供します。適切なポリシーテンプレートをインポートし、わずかな変更を加えるだけで、カスタムポリシーを迅速に作成できます。

    • システムポリシーのインポート:システムポリシーをインポートし、ビジネスニーズに合わせて変更できます。これにより、標準化されたテンプレートからカスタムポリシーを便利かつ迅速に作成できます。

ビジュアルエディターの使用

  1. RAM 管理者として RAM コンソールにログインします。

  2. 左側のナビゲーションペインで、権限管理 > ポリシー を選択します。

  3. ポリシー ページで、ポリシーの作成 をクリックします。

  4. ポリシーの作成 ページで、視覚化 タブをクリックします。

    ビジュアルエディターには、[エフェクト] (必須、[許可] または [拒否] に設定可能、デフォルト:[許可])、[サービス] (必須)、[アクション] (必須)、[リソース] (必須)、[条件] (任意) のフィールドを含むステートメントフォームが表示されます。[アクション]、[リソース]、[条件] を設定する前に、サービスを選択する必要があります。ページ下部で [ステートメントの追加] をクリックして、さらにステートメントを追加できます。

  5. ポリシーを設定します。

    ポリシーの基本要素の詳細については、「権限ポリシーの要素」をご参照ください。

    1. 効果 セクションで、許可 または 却下 を選択します。

    2. サービス セクションで、サービスを選択します。

      説明

      コンソールには、ビジュアルエディターをサポートするサービスが表示されます。

    3. 操作 セクションで、全部操作 または 指定操作 を選択します。

      前の手順で選択したサービスに基づいて、利用可能なアクションが自動的に一覧表示されます。指定操作 を選択した場合は、特定のアクションを選択する必要があります。

    4. リソース セクションで、すべてのリソース または 指定资源 を選択します。

      選択したアクションに基づいて、利用可能なリソースタイプが自動的に一覧表示されます。指定资源 を選択した場合は、リソースを追加 をクリックして ARN を指定する必要があります。すべて選択 機能を使用して、設定項目のすべてのリソースをすばやく選択できます。

      説明

      UI 上では、関連するアクションの ARN が 必須 としてマークされます。ポリシーが正しく機能するように、これらの ARN を指定してください。

    5. 条件 セクションで、条件を追加 をクリックして条件を設定します。

      条件には、Alibaba Cloud の共通条件とサービス固有の条件が含まれます。設定したサービスとアクションに基づいて、利用可能な条件が自動的に一覧表示されます。条件キーを選択し、その値を設定するだけです。

    6. ステートメントを追加 をクリックし、上記の手順を繰り返して複数のステートメントを設定します。

  6. ページの上部で 最適化 をクリックし、次に 行う をクリックして、ポリシーの高度な最適化を実行します。

    高度なポリシー最適化機能は、次のタスクを実行します。

    • 互換性のないアクションのリソースまたは条件を分割します。

    • リソースの範囲を絞り込みます。

    • 重複するステートメントを削除するか、ステートメントをマージします。

  7. ポリシーの作成 ページで、OK をクリックします。

  8. ポリシーの作成 ダイアログボックスで、ポリシー名 と 説明 を入力し、OK をクリックします。

スクリプトエディターの使用

  1. RAM 管理者として RAM コンソールにログインします。

  2. 左側のナビゲーションペインで、権限管理 > ポリシー を選択します。

  3. ポリシー ページで、ポリシーの作成 をクリックします。

  4. ポリシーの作成 ページで、JSON タブをクリックします。

    ページに JSON エディターが表示されます。デフォルトのポリシーテンプレートには、Version 要素 ("1" に設定) と Statement 配列が含まれています。各ステートメントには Effect (デフォルトは "Allow")、Action、Resource、Condition 要素が含まれています。Action と Resource 要素を入力する必要があります。

  5. ポリシーの内容を入力します。

    ポリシーの構文と構造の詳細については、「ポリシーの構造と構文」をご参照ください。

  6. ページの上部で 最適化 をクリックし、次に 行う をクリックして、ポリシーの高度な最適化を実行します。

    高度なポリシー最適化機能は、次のタスクを実行します。

    • 互換性のないアクションのリソースまたは条件を分割します。

    • リソースの範囲を絞り込みます。

    • 重複するステートメントを削除するか、ステートメントをマージします。

  7. ポリシーの作成 ページで、OK をクリックします。

  8. ポリシーの作成 ダイアログボックスで、ポリシー名 と 説明 を入力し、OK をクリックします。

一般的なカスタムポリシーの例

以下の例では、JSON モードでカスタムポリシーを設定するための一般的なシナリオと対応するポリシー JSON を示します。これらは、ポリシーを迅速に記述するのに役立ちます。

シナリオ 1:RAM ユーザー管理権限の付与 (アカウントレベル)

RAM ユーザー管理 API (ram:CreateUser、ram:CreateAccessKey、ram:ListUsers など) はアカウントレベルの操作です。Resource 要素は "*" に設定する必要があり、権限を付与する際には、認可範囲を [Alibaba Cloud アカウント全体] に設定する必要があります。これらの操作はリソースグループに制限できません。

ポリシー例:RAM ユーザーと AccessKey の作成を許可します。


{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ram:CreateUser",
        "ram:CreateAccessKey",
        "ram:ListUsers"
      ],
      "Resource": ["*"]
    }
  ]
}
重要

このポリシーの認可範囲を特定のリソースグループに設定した場合、ポリシーは有効になりません。RAM ユーザー管理操作は、[Alibaba Cloud アカウント全体] の認可範囲のみをサポートします。

シナリオ 2:RAM ユーザーに自身のパスワードのみの変更を許可

RAM ユーザーに自身のログインパスワードのみの変更を許可するには、ram:ChangePassword 権限を付与します。過剰な権限付与はセキュリティリスクをもたらすため、AliyunRAMFullAccess (RAM のフルアクセス権限) は付与しないでください。

ポリシー例:自身のパスワードのみの変更を許可します。


{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ram:ChangePassword"
      ],
      "Resource": ["*"]
    }
  ]
}

シナリオ 3:特定のリソースへの読み取り専用アクセスの付与 (ECS インスタンスを例として)

RAM ユーザーに特定の Elastic Compute Service (ECS) インスタンスのみの表示を許可するには、Resource 要素にインスタンスの ARN を指定します。ARN の形式は acs:ecs:{region}:{account-id}:instance/{instance-id} です。instance の後にはフォワードスラッシュ / を付ける必要があることにご注意ください。

ポリシー例:指定された ECS インスタンスのみの表示を許可します。


{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ecs:DescribeInstances",
        "ecs:DescribeInstanceAttribute",
        "ecs:DescribeInstanceStatus"
      ],
      "Resource": [
        "acs:ecs:*:*:instance/i-bp1xxxxxxxxxxxxxxxxx"
      ]
    }
  ]
}
説明

i-bp1xxxxxxxxxxxxxxxxx を実際の ECS インスタンス ID に置き換えてください。複数のインスタンスへのアクセスを許可するには、Resource 配列に複数の ARN をカンマで区切って追加します。

シナリオ 4:Simple Log Service (SLS) のきめ細かな認可

SLS のクエリ操作には、プロジェクトレベルと Logstore レベルの ARN が必要です。SDK 呼び出しで依然として権限拒否エラーが返される場合は、log:GetProject と log:GetLogStore 権限を追加してください。

ポリシー例:特定の Logstore のログデータのクエリを許可します。


{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "log:GetLogStoreLogs",
        "log:CreateStoreView",
        "log:GetProject",
        "log:GetLogStore"
      ],
      "Resource": [
        "acs:log:*:*:project/exampleproject",
        "acs:log:*:*:project/exampleproject/logstore/examplelogstore"
      ]
    }
  ]
}
説明

exampleproject と examplelogstore を実際のプロジェクト名と Logstore 名に置き換えてください。

シナリオ 5:ビジュアルエディターでサポートされていない特定のアクションの設定

一部の製品のアクションは 視覚化 モードで選択できず、JSON モードで手動で設定する必要があります。このタイプの一般的なアクションは次のとおりです。

製品

アクション

説明

Server Guard (Security Center)

yundun-sc:DescribeCdnIpList

CDN IP リストのクエリ

Milvus

CreateConnection、DbmConnect など

Milvus コンソールへのログインに必要な権限

シナリオ 6:ECS デプロイの最小権限

ECS インスタンスの作成には、複数のサービスにわたるアクションの組み合わせが含まれます。最小権限ポリシーには、インスタンス操作権限と、ネットワークとセキュリティグループのクエリ権限の両方を含める必要があります。

ポリシー例:ECS インスタンスの作成とデプロイに必要な最小権限。


{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ecs:RunInstances",
        "ecs:DescribeInstances",
        "vpc:DescribeVpcs",
        "vpc:DescribeVSwitches",
        "ecs:DescribeSecurityGroups"
      ],
      "Resource": ["*"]
    }
  ]
}

アクションの説明:ecs:RunInstances (インスタンスの作成と起動)、ecs:DescribeInstances (インスタンス情報のクエリ)、vpc:DescribeVpcs と vpc:DescribeVSwitches (インスタンス作成時の VPC と vSwitch の選択を許可)、ecs:DescribeSecurityGroups (セキュリティグループの選択)。

シナリオ 7:VPC ネットワーク設定の最小権限

仮想プライベートクラウド (VPC) と vSwitch を作成するために必要な最小権限ポリシーは次のとおりです。

ポリシー例:VPC と vSwitch の作成に必要な最小権限。


{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "vpc:CreateVpc",
        "vpc:CreateVSwitch",
        "vpc:CreateSecurityGroup",
        "vpc:DescribeVpcs",
        "vpc:DescribeVSwitches"
      ],
      "Resource": ["*"]
    }
  ]
}

アクションの説明:vpc:CreateVpc (VPC の作成)、vpc:CreateVSwitch (vSwitch の作成)、vpc:CreateSecurityGroup (セキュリティグループの作成)、vpc:DescribeVpcs と vpc:DescribeVSwitches (既存のネットワークリソースのクエリ)。

権限拒否エラーのトラブルシューティング

RAM ユーザーが API を呼び出して AccessForbidden エラーを受け取った場合、またはコンソールに権限拒否メッセージが表示された場合は、次のように問題をトラブルシューティングしてください。

  1. API トラブルシューティングツールを使用して不足している権限を特定する

    エラーと共に返された RequestID を Alibaba Cloud API トラブルシューティングツールに入力します。ツールに不足している特定の AuthAction が表示されるため、プロンプトに従って必要な権限を追加できます。

  2. 認可範囲が一致していることを確認する

    アカウントレベルの操作 (ram:CreateUser など) の場合、認可範囲は [Alibaba Cloud アカウント全体] である必要があります。リソースグループを認識する API の場合、ポリシーが正しいリソースグループまたは [Alibaba Cloud アカウント全体] に付与されていることを確認してください。認可範囲がポリシーの Resource 定義と一致しない場合、権限は有効になりません。

  3. 暗黙的な依存関係の権限を確認する

    一部の操作では、主要なアクションに加えて、Describe、List、Connect などの関連する基本権限が正しく機能するために必要です。例:

    • SLS:ログをクエリするための log:GetLogStoreLogs に加えて、log:GetProject と log:GetLogStore 権限も必要です。

    • Milvus:コンソールにログインするための主要な操作権限に加えて、CreateConnection や DbmConnect などの接続権限も必要です。

    対応する Alibaba Cloud サービスの RAM 認可ドキュメントを参照して、必要な権限を追加することを推奨します。

ポリシーサイズの最適化

カスタムポリシーの JSON コンテンツは 6,144 バイトを超えることはできません。この上限を超えると、CreatePolicy API は InvalidParameter.PolicyDocument.Length エラー (メッセージ:"The policy document size is limited to 6144 bytes") を返します。次の方法を使用して、ポリシーの長さを短縮できます。

機能によるポリシーの分割

複数の機能をカバーする大規模なポリシーを個別のポリシーに分割し、それぞれを異なる RAM ユーザーまたはユーザーグループにアタッチします。たとえば、読み取り操作と書き込み操作を 2 つのポリシーに分割します。

  • 読み取り専用ポリシー:{"Action": ["oss:Get*", "oss:List*"]}

  • 書き込みポリシー:{"Action": ["oss:Put*", "oss:Delete*"]}

リソースによるポリシーの分割

リソースごとにポリシーを分割します。たとえば、異なる OSS バケットの権限を異なるポリシーに分割し、各ポリシーが特定のバケットのみの権限を付与するようにします。これにより、単一のポリシーが管理するリソースが多すぎるのを防ぎます。

注意事項

  • ビジュアルエディターでポリシーを設定する際は、すべてのアクションを選択しないでください。まず、最小権限のアクションセットを選択します。

  • ポリシーを分割した後、各ポリシーを RAM ユーザーまたはユーザーグループに個別に付与する必要があるため、管理が複雑になります。

  • ワイルドカードは、過剰な権限付与を引き起こす可能性があります。使用する前に、権限の範囲を慎重に確認してください。

  • ポリシーは付与されるとすぐに有効になります。待機する必要はありません。

ポリシーのインポート

  1. RAM 管理者として RAM コンソールにログインします。

  2. 左側のナビゲーションペインで、権限管理 > ポリシー を選択します。

  3. ポリシー ページで、ポリシーの作成 をクリックします。

  4. ポリシーの作成 ページで、引用ポリシー をクリックします。

  5. 引用ポリシー ダイアログボックスで、右上のドロップダウンリストからポリシーテンプレートまたは システムポリシー を選択し、ポリシーをインポートします。

    1. ポリシーテンプレートまたはシステムポリシーを選択します。

    2. 一部のポリシーテンプレートでは、ビジネス要件に基づいてパラメーターを設定する必要があります。

    3. インポートされたポリシーの上書きルールを選択します。

      デフォルトでは、新しくインポートされたポリシーの内容が既存の内容を完全に上書きします。上書きする代わりに、新しいステートメントを最後に追加する。 を選択して、新しくインポートされたポリシーの内容を既存の内容の末尾に追加することもできます。

    4. インポート をクリックします。

  6. ビジュアルエディターまたはスクリプトエディターで、インポートされたポリシーの内容を表示および変更します。

  7. ページの上部で 最適化 をクリックし、次に 行う をクリックして、ポリシーの高度な最適化を実行します。

    高度なポリシー最適化機能は、次のタスクを実行します。

    • 互換性のないアクションのリソースまたは条件を分割します。

    • リソースの範囲を絞り込みます。

    • 重複するステートメントを削除するか、ステートメントをマージします。

  8. ポリシーの作成 ページで、OK をクリックします。

  9. ポリシーの作成 ダイアログボックスで、ポリシー名 と 説明 を入力し、OK をクリックします。

よくある質問

ビジュアルエディターで特定の権限が見つからない、またはポリシーの保存に失敗するのはなぜですか?

この問題は、次の理由で発生する可能性があります。

  • 一部のアクションがビジュアルリストで更新されていない:一部の新しくリリースされた API や低レベルの API は、視覚化 モードのアクションリストにまだ同期されていないか、ワイルドカード (例:swas-open:*) が特定のリソース制限下で解析で競合が発生している可能性があります。JSON モードに切り替えて、アクションを手動で入力することを推奨します。

  • アクション名のスペルが間違っている:一部の API アクション名には単数形と複数形の違いがあります (たとえば、ディスクを再初期化するための ECS 操作は ecs:ReInitDisks であり、ecs:ReInitDisk ではありません)。対応する Alibaba Cloud サービスの API ドキュメントで正確なアクション名を確認してください。

  • システムポリシーが同期されていない:特定のシステムポリシー (例:AliyunAccountCenterFullAccess) が見つからない場合は、そのシステムポリシーの公式 JSON コンテンツを表示し、JSON モードで同じ効果を持つカスタムポリシーを作成できます。

  • JSON 形式の検証に失敗した:JSON 構文が正しいかどうかを確認してください。特に次の一般的な間違いに注意してください。

    • Resource は複数回定義できません。複数のリソースを指定するには、それらを単一の配列にカンマで区切ってリストします。

    • ARN の形式は、acs:<service>:<region>:<account-id>:<resource-type>/<resource-id> のパターンに準拠する必要があります。

FullAccess またはカスタムポリシーを付与した後、コンソールにアクセスしたり操作を実行したりできないのはなぜですか?

この問題は、次の理由で発生する可能性があります。

  • コンソールアクセスには追加の基本権限が必要:一部の製品コンソール (ICP 申請付加価値サービスなど) は、ビジネス権限に加えて、PowerUserAccess などの基本的なコンソールアクセス権限も必要です。ビジネス固有の FullAccess ポリシーだけでは、コンソールページをロードするのに十分でない場合があります。製品ドキュメントを参照して、コンソールアクセスに必要な権限の完全な組み合わせを確認してください。

  • 認可範囲がポリシーの Resource と一致しない:権限を付与する際に選択する認可範囲 ([Alibaba Cloud アカウント全体] または特定のリソースグループ) は、ポリシーの Resource 定義と一致している必要があります。たとえば、OceanBase などのインスタンスレベルの操作では、認可範囲を [Alibaba Cloud アカウント全体] にし、ポリシーで特定のインスタンス ARN を定義する必要があります。

  • ポリシーの競合または Deny の上書き:Deny ステートメントが Allow を上書きしているか、またはカスタムポリシーとシステムポリシーの間に競合が存在するかどうかを確認してください。RAM のポリシー評価ロジックは、明示的な Deny > Allow > デフォルトの Deny です。複雑なシナリオ (MQTT パブリックネットワークアクセスなど) でカスタムポリシーが有効にならない場合は、まず公式に推奨されているシステムポリシー (例:AliyunMQFullAccess) を使用して接続性を検証し、その後段階的に権限を絞り込むことを推奨します。