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

Resource Access Management:権限ポリシーの基本要素

最終更新日:May 21, 2026

RAM では、権限ポリシーが権限を定義します。権限ポリシーは、EffectAction/NotActionResourceConditionPrincipal などの基本要素で構成されます。

パラメーター

説明

Effect

承認の効果。有効な値は次のとおりです。

  • Allow:権限を付与します。

  • Deny:権限を取り消します。

Action/NotAction

リソースに対する操作。ステートメントには、Action または NotAction のいずれかを指定する必要があります。

  • Action:許可または拒否される特定の操作。

  • NotAction:指定された操作の例外。NotAction で指定されたもの以外のすべての操作が許可または拒否されます。

Resource

ステートメントが対象とする 1 つ以上のオブジェクト。

Condition

ポリシーが有効になるために必要な条件。

Principal

リソースへのアクセスが許可または拒否されるエンティティ。この要素は、RAM ロールの信頼ポリシーなど、リソースベースのポリシーでのみ使用されます。

Effect

必須の Effect 要素は、ステートメントがアクセスを許可するか拒否するかを指定します。

有効な値は AllowDeny です。

説明

権限ポリシーに AllowDeny の両方の Effect が含まれている場合、Deny が優先されます。

例:

"Effect": "Allow"

Action/NotAction

Action 要素は許可または拒否する操作を指定します。NotAction 要素は、Allow または Deny の効果から除外される操作を指定します。ステートメントには、Action または NotAction 要素のいずれかを含める必要があります。

値は、Alibaba Cloud サービスの API 操作の名前です。

Action/NotAction 要素の形式は <ram-code>:<action-name> です。

  • ram-code:Alibaba Cloud サービスの RAM コード。詳細については、「RAMと連携するサービス」の[RAMコード] 列をご参照ください。

  • action-name:API 操作の名前。

Action および NotAction の値は通常、大文字と小文字を区別しません。ただし、一貫した動作を保証するために、各 Alibaba Cloud サービスのドキュメントで指定されているとおり、正確なサービスプレフィックス <ram-code> とアクション名 <action-name> を使用してください。

例:

  • Action の例

    "Action": [
      "oss:ListBuckets",
      "ecs:Describe*",
      "rds:Describe*"
    ]
  • NotAction の例

    次の例では、RAM 操作を除くすべての操作を許可します。許可されるすべてのアクションをリストアップするよりも、NotAction を使用して除外されたアクション (ram:*) のみをリストアップする方がステートメントは短くなります。ただし、このアプローチは広範な権限を付与する可能性があるため、NotAction は慎重に使用してください。

    {
    	"Effect": "Allow",
    	"NotAction": "ram:*",
    	"Resource": "*"
    }

Resource

必須の Resource 要素は、ステートメントが対象とする 1 つ以上のオブジェクトを指定し、アイデンティティベースのポリシーで使用されます。

値は、Alibaba Cloud サービスの Aliyun Resource Name (ARN) です。

リソース ARN の形式は acs:<ram-code>:<region>:<account-id>:<relative-id> です。各 Alibaba Cloud サービスの認可ドキュメントで指定されているとおり、正確なリソース ARN を使用してください。

次の表で形式を説明します。

  • acs:Alibaba Cloud Service の略で、Alibaba Cloud パブリッククラウドプラットフォームを示します。

  • ram-code:Alibaba Cloud サービスの RAM コード。詳細については、「RAMと連携するサービス」の[RAMコード] 列をご参照ください。

  • region: リージョンです。リージョンを指定せずにアクセスできるグローバルリソースについては、このフィールドにアスタリスク (*) を使用します。 詳細については、「リージョンとアベイラビリティゾーン」をご参照ください。

  • account-id:Alibaba Cloud アカウントの ID。例:123456789012****

  • relative-id:サービスに関連するリソース記述の部分。そのセマンティクスは特定のクラウドサービスによって指定されます。この部分の形式は、ツリーのような構造 (ファイルパスに似ています) をサポートします。たとえば、OSS オブジェクトの形式は relative-id = "mybucket/dir1/object1.jpg" です。

例:

"Resource": [
  "acs:ecs:*:*:instance/inst-001",
  "acs:ecs:*:*:instance/inst-002",
  "acs:oss:*:*:mybucket",
  "acs:oss:*:*:mybucket/*"
]

Condition

オプションの Condition 要素は、ポリシーが有効になるために必要な条件を指定します。

Condition 要素は条件ブロックとも呼ばれます。これは 1 つ以上の条件句で構成されます。条件句は、条件演算子、条件キー、および条件値で構成されます。

条件块判断逻辑

説明

Condition 要素はオプションであるため、システムは検証を行いません。条件を含める場合は、スペルと大文字と小文字が正しいことを確認してください。

条件キーの 名前 (キー) は大文字と小文字を厳密に区別し、条件値 (値) が大文字と小文字を区別するかどうかは、使用する条件演算子によって異なります。たとえば、文字列型の条件キーの場合、StringEquals 演算子はポリシーの値とリクエストの値を大文字と小文字を区別して照合します。StringEqualsIgnoreCase 演算子は大文字と小文字を区別せずに照合します。

Condition 要素の詳細は次のとおりです:

  • 評価ロジック

    • 条件一致:条件キーには 1 つ以上の値を設定できます。リクエストのキーの値がポリシーで指定されたいずれかの値と一致する場合、条件が満たされます (論理 OR)。

    • 条件句一致:条件句は、そのすべての条件キーが満たされた場合にのみ満たされます (論理 AND)。

    • 条件ブロック一致:条件ブロックは、そのすべての条件句が満たされた場合にのみ満たされます (論理 AND)。

  • 条件演算子

    条件演算子の種類には、StringNumberDate and timeBooleanIP address があります。条件演算子の意味と例の詳細については、「条件演算子」をご参照ください。

  • 条件キー

    • グローバル条件キーの形式は acs:<condition-key> です。

      グローバル条件キー

      タイプ

      説明

      acs:CurrentTime

      日時

      Web サーバーがリクエストを受信した時刻。

      説明

      時刻は UTC で、ISO 8601 標準に準拠しています。 

      たとえば、2023年1月10日 20:00:00 (UTC+8) は、2023-01-10T20:00:00+08:00 または 2023-01-10T12:00:00Z と表されます。

      acs:SecureTransport

      ブール

      リクエストが HTTPS などのセキュアなチャネル経由で送信されたかどうかを指定します。

      acs:SourceIp

      IPアドレス

      リクエストが送信されたクライアント IP アドレス。

      説明

      acs:SourceIp の値は、特定の IP アドレスまたは CIDR ブロックにすることができます。特定の IP アドレスを CIDR 形式で記述しないでください。たとえば、10.0.0.110.0.0.1/32 と記述できません。

      acs:MFAPresent

      ブール

      ユーザーが多要素認証 (MFA) を使用してログインしたかどうかを指定します。

      説明

      RAM ユーザーの MFA for RAM user sign-in 設定が 通常とは異なるログインに対してのみ必要 に設定されている場合、acs:MFAPresent 条件は有効になりません。詳細については、「RAMユーザーのセキュリティ設定の管理」をご参照ください。

      acs:PrincipalARN

      文字列

      リクエストを行うプリンシパルのアイデンティティ。この条件キーは、Resource Directory のコントロールポリシーと RAM ロールの信頼ポリシーでのみ使用できます。例:acs:ram:*:*:role/*resourcedirectory*

      説明

      現在、RAM ロールの ARN のみを指定でき、ARN は小文字である必要があります。RAM ロールの ARN は、RAM コンソールのロール詳細ページで表示できます。

      acs:PrincipalRDId

      文字列

      プリンシパルの Alibaba Cloud アカウントが属する Resource Directory の ID。この条件キーは、RAM ロールの信頼ポリシーと OSS バケットポリシーでのみ使用できます。

      acs:PrincipalRDPath

      文字列

      Resource Directory 内のプリンシパルの Alibaba Cloud アカウントのパス。この条件キーは、RAM ロールの信頼ポリシーと OSS バケットポリシーでのみ使用できます。

      acs:RequestTag/<tag-key>

      文字列

      リクエストで渡されるタグ情報。<tag-key> はタグキーです。実際の値に置き換えてください。サポートされているクラウドサービスとリソースタイプについては、「タグをサポートするクラウドサービス」の[リソースタイプの認証] 情報をご参照ください。

      acs:ResourceTag/<tag-key>

      文字列

      リクエストされたリソースに付加されているタグに関する情報を指定します。<tag-key> はタグキーです。実際の値に置き換えてください。サポートされているクラウドサービスとリソースタイプについては、「タグをサポートするクラウドサービス」の[リソースタイプの認可] 情報をご参照ください。

    • サービス固有の条件キーの形式は <ram-code>:<condition-key> です。

      たとえば、OSS 条件キー oss:Delimiter は、ListObjects リクエストでオブジェクト名をグループ化するための文字を指定します。

      各 Alibaba Cloud サービスの条件キーについては、そのサービスの認可ドキュメントをご参照ください。

  • 条件の例

    単一のステートメント内の条件は、論理 AND を使用して評価されます。条件に論理 OR を使用したい場合は、それらを別のステートメントに配置する必要があります。

    例 1:RAM ユーザーが MFA を有効にしているかつ、IP アドレス 203.0.113.2 からアクセスリクエストを開始した場合にのみ、ECS インスタンスへのアクセスを許可します。

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "ecs:*",
          "Resource": "*",
          "Condition": {
            "IpAddress": {
              "acs:SourceIp": [
                "203.0.113.2"
              ]
            },
            "Bool": {
              "acs:MFAPresent": [
                "true"
              ]
            }
          }
        }
      ]
    }

    例 2:RAM ユーザーが MFA を有効にしているまたは、IP アドレス 203.0.113.2 からアクセスリクエストを開始した場合にのみ、ECS インスタンスへのアクセスを許可します。

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "ecs:*",
                "Resource": "*",
                "Condition": {
                    "IpAddress": {
                        "acs:SourceIp": [
                            "203.0.113.2"
                        ]
                    }
                }
            },
            {
                "Effect": "Allow",
                "Action": "ecs:*",
                "Resource": "*",
                "Condition": {
                    "Bool": {
                        "acs:MFAPresent": [
                            "true"
                        ]
                    }
                }
            }
        ]
    }

Principal

リソースベースのポリシーで必須の Principal 要素は、アクセスが許可または拒否されるエンティティを指定します。たとえば、RAM ロールの信頼ポリシーでは、Principal 要素を使用して、どのエンティティがロールを引き受けることができるかを指定します。

説明

アイデンティティベースのポリシーでは Principal 要素を使用できません。アイデンティティベースのポリシーでは、ポリシーがアタッチされている RAM エンティティ (RAM ユーザー、ユーザーグループ、または RAM ロール) が暗黙のプリンシパルになります。

Principal 要素には複数のプリンシパルタイプを追加でき、各タイプに複数のプリンシパルを指定できます。異なるプリンシパルタイプを区切るには、カンマ (,) を使用します。複数の値を持つ単一のプリンシパルタイプの場合、角括弧 ([ ]) を使用し、値をカンマ (,) で区切ります。複数のプリンシパル間の関係は論理 OR であり、ポリシーで指定されたすべてのプリンシパルに権限が付与されることを意味します。

Principal の例:

"Principal": {
  "RAM": [
    "acs:ram::123456789012****:root",
    "acs:ram::987654321098****:root"
  ],
  "Service": "ecs.aliyuncs.com"
}

プリンシパルは認証された RAM エンティティです。次のいずれかのタイプになります。

  • Alibaba Cloud アカウント

    Alibaba Cloud アカウントをプリンシパルとして設定できます。これにより、そのアカウント配下の RAM ユーザーおよび RAM ロールに権限が付与されます。Alibaba Cloud アカウントを指定する場合、その ARN (acs:ram::<account-id>:root) を使用する必要があります。例:

    "Principal": {
        "RAM": "acs:ram::123456789012****:root"
    }
    説明

    この ARN はアカウント自体を表し、特定のルートユーザーのアイデンティティを表すものではありません。

  • RAM ユーザー

    RAM ユーザーをプリンシパルとして設定できます。RAM ユーザーの ARN (acs:ram::<account-id>:user/<user-name>) を指定する必要があり、<user-name> は RAM ユーザーの名前と一致する必要があります。例:

    "Principal": {
      "RAM": [
        "acs:ram::123456789012****:user/<user1-name>",
        "acs:ram::123456789012****:user/<user2-name>"
      ]
    }

    Principal 要素で RAM ユーザーを指定する場合、部分一致にワイルドカード文字 (*) を使用することはできません。正確な RAM ユーザーを指定する必要があります。

    重要

    RAM ロールの信頼ポリシーで、Principal 要素に特定の RAM ユーザーの ARN が含まれている場合、信頼ポリシーを保存すると、システムはこの ARN を ID (例:29695932303672****) に変換します。通常、この ID を意識することはありません。この ID が信頼ポリシーに表示されるのは、RAM ユーザーが削除された場合のみです。この場合、ID を削除するか、正しい RAM ユーザーの ARN に修正することができます。このアプローチは、セキュリティリスクを軽減するのに役立ちます。さらに、信頼ポリシーを作成または更新する際、システムが自動的に標準 ARN に変換するため、<user-name> の大文字と小文字の区別を気にする必要はありません。

  • RAM ロール

    RAM ロールをプリンシパルとして設定できます。RAM ロールの ARN (acs:ram::<account-id>:role/<role-name>) を指定する必要があり、<role-name> は RAM ロールの名前と一致する必要があります。例:

    "Principal": {
      "RAM": [
        "acs:ram::123456789012****:role/<role-name>"
      ]
    }

    Principal 要素で RAM ロールを指定する場合、部分一致にワイルドカード文字 (*) を使用することはできません。正確な RAM ロールを指定する必要があります。

    重要

    RAM ロールの信頼ポリシーで、Principal 要素に指定された RAM ロールの ARN が含まれている場合、信頼ポリシーを保存すると、システムはこの ARN を ID (38915594982675**** など) に変換します。通常、この ID を意識することはありません。指定された RAM ロールが削除された場合にのみ、信頼ポリシーに表示されます。この場合、ID を削除するか、正しい RAM ロールの ARN に置き換えることができます。このアプローチは、セキュリティリスクを軽減するのに役立ちます。さらに、信頼ポリシーを作成または更新する際、システムが自動的に標準 ARN に変換するため、<role-name> の大文字と小文字の区別を気にする必要はありません。

  • Alibaba Cloud サービス

    Alibaba Cloud サービスをプリンシパルとして設定できます。そのサービスのサービス名を指定する必要があります。サービス名は Alibaba Cloud サービスの識別子であり、通常は <service-name>.aliyuncs.com の形式に従います。<service-name> には、特定の Alibaba Cloud サービスによって提供される完全なサービス名を使用します。例:

    "Principal": {
      "Service": [
        "ecs.aliyuncs.com"
      ]
    }
  • ID プロバイダー

    ID プロバイダー (IdP) をその ARN を使用してプリンシパルとして指定できます。Alibaba Cloud は、SAML 2.0 および OIDC を介したシングルサインオン (SSO) をサポートしています。SAML SSO の場合、SAML ID プロバイダーの ARN を使用します。対応する ARN は acs:ram::<account-id>:saml-provider/<provider-name> です。OIDC に基づく SSO を使用するには、OIDC ID プロバイダーを作成する必要があります。対応する ARN は acs:ram::<account-id>:oidc-provider/<provider-name> です。Principal 要素では、ARN 値は大文字と小文字を区別します。システムによって提供される ID プロバイダーの標準 ARN を使用してください。

    "Principal": {
      "Federated": [
        "acs:ram::123456789012****:saml-provider/<provider-name>"
      ]
    }