RAM では、権限ポリシーが権限を定義します。権限ポリシーは、Effect、Action/NotAction、Resource、Condition、Principal などの基本要素で構成されます。
パラメーター | 説明 |
Effect | 承認の効果。有効な値は次のとおりです。
|
Action/NotAction | リソースに対する操作。ステートメントには、
|
Resource | ステートメントが対象とする 1 つ以上のオブジェクト。 |
Condition | ポリシーが有効になるために必要な条件。 |
Principal | リソースへのアクセスが許可または拒否されるエンティティ。この要素は、RAM ロールの信頼ポリシーなど、リソースベースのポリシーでのみ使用されます。 |
Effect
必須の Effect 要素は、ステートメントがアクセスを許可するか拒否するかを指定します。
有効な値は Allow と Deny です。
権限ポリシーに Allow と Deny の両方の 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)。
条件演算子
条件演算子の種類には、
String、Number、Date and time、Boolean、IP 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:SourceIpIPアドレス
リクエストが送信されたクライアント IP アドレス。
説明acs:SourceIpの値は、特定の IP アドレスまたは CIDR ブロックにすることができます。特定の IP アドレスを CIDR 形式で記述しないでください。たとえば、10.0.0.1は10.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>" ] }