カスタムアクセス制御ポリシーを作成または更新する前に、アクセス制御ポリシーの基本要素を理解する必要があります。アクセス制御ポリシーは、Effect、ActionまたはNotAction、Resource、およびConditionという基本要素で構成されています。
要素 | 説明 |
Effect | ステートメントの結果が明示的な許可か明示的な拒否かを指定します。有効な値:
|
ActionまたはNotAction | 許可または拒否される1つ以上のAPI操作を記述します。ポリシーでは、ActionまたはNotActionのいずれかを指定できます。
|
Resource | ステートメントが対象とする1つ以上のオブジェクトを指定します。 |
Condition | ポリシーを有効にするために必要な条件を指定します。 |
Effect
Effect要素は、ステートメントの結果が明示的な許可か明示的な拒否かを指定します。この要素は必須です。
有効な値:許可と拒否。
RAMポリシーに許可ステートメントと拒否ステートメントの両方が含まれている場合、拒否ステートメントが許可ステートメントよりも優先されます。
例:
"Effect": "Allow"Action/NotAction
Action要素は、許可または拒否される1つ以上のAPI操作を指定します。 NotAction要素は、操作が許可または拒否されるときに除外される操作を指定します。つまり、NotActionで指定された操作を除き、他のすべての操作が許可または拒否されます。ポリシーステートメントには、これらの要素のいずれか1つだけを指定できます。この要素は必須です。
Action/NotAction要素の有効な値:Alibaba Cloud サービスによって定義されたAPI操作名。
Action/NotAction要素の形式: <ram-code>:<action-name>。
ram-code: Alibaba Cloud サービスのRAMコード。詳細については、「RAM をサポートする Alibaba Cloud サービス」の[RAM コード]列をご参照ください。action-name: 関連するAPI操作の名前。
ほとんどの場合、Action/NotAction要素の値は大文字と小文字が区別されません。ただし、一貫した動作を維持するために、Alibaba Cloud サービスの認証ドキュメントで指定されている正確な操作プレフィックス <ram-code> と操作名 <action-name> を使用してください。
例:
Action の例
"Action": [ "oss:ListBuckets", "ecs:Describe*", "rds:Describe*" ]NotAction の例
次の例では、RAM操作を除くすべての操作が許可されます。ポリシーステートメントには、許可されるすべての操作ではなく、除外される操作(ram: *)のみがリストされているため、ポリシーステートメントが短くなります。ただし、許可される操作の範囲は広くなります。ポリシーが期待どおりに動作することを確認するために、このアプローチは慎重に使用してください。
{ "Effect": "Allow", "NotAction": "ram:*", "Resource": "*" }
Resource
Resource要素は、ステートメントが対象とする1つ以上のオブジェクトを指定します。この要素は必須であり、IDベースのポリシーに対してのみ使用できます。
Resource要素の有効な値:リソースのAlibaba Cloud Resource Name(ARN)。
Resource要素の形式: acs:<ram-code>:<region>:<account-id>:<relative-id>。 Alibaba Cloud サービスの認証ドキュメントで指定されている正確なリソース ARN を使用してください。
Resource要素には、次のフィールドが含まれています。
acs: Alibaba Cloud Serviceの略語で、Alibaba Cloudのパブリッククラウドプラットフォームを示します。ram-code: Alibaba Cloud サービスのRAMコード。詳細については、「RAM をサポートする Alibaba Cloud サービス」の[RAM コード]列をご参照ください。region: リージョン情報。グローバルリソースの場合、このパラメーターはアスタリスク(*)に設定されます。グローバルリソースには、リージョンを指定せずにアクセスできます。詳細については、「リージョンとゾーン」をご参照ください。account-id: Alibaba Cloud アカウントのID。例:123456789012****。relative-id: サービスに関連するリソース記述部分。この部分のセマンティクスは、特定のAlibaba Cloud サービスによって指定されます。 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要素はオプションです。システムは、Condition要素が指定されているかどうかを確認しません。 Condition要素の値を指定する場合は、スペルと大文字小文字が正しいことを確認してください。
条件キーの名前(キー)は大文字と小文字が区別されます。条件値(値)の大文字と小文字の区別は、使用する条件演算子によって異なります。たとえば、条件キーが文字列型で、StringEquals条件演算子を使用する場合、システムはリクエストの値と条件値を比較することにより、大文字と小文字を区別する照合を実行します。キーが文字列型で、StringEqualsIgnoreCase条件演算子を使用する場合、システムはリクエストの値と条件値を比較することにより、大文字と小文字を区別しない照合を実行します。
Condition要素の詳細は次のとおりです。
ロジック
条件キーに1つ以上の値を指定できます。リクエストの値が指定された値のいずれかと一致する場合、条件は満たされます。
条件には、単一の条件演算子に関連付けられている複数のキーを含めることができます。このタイプの条件は、キーのすべての要件が満たされた場合にのみ満たされます。
条件ブロックは、すべての条件が満たされた場合にのみ満たされます。
条件演算子のカテゴリ
条件演算子は、文字列、数値、日付と時刻、ブール値、およびIPアドレスのカテゴリに分類できます。
条件演算子のカテゴリ
サポートされているタイプ
文字列
StringEquals
StringNotEquals
StringEqualsIgnoreCase
StringNotEqualsIgnoreCase
StringLike
StringNotLike
数値
NumericEquals
NumericNotEquals
NumericLessThan
NumericLessThanEquals
NumericGreaterThan
NumericGreaterThanEquals
日付と時刻
DateEquals
DateNotEquals
DateLessThan
DateLessThanEquals
DateGreaterThan
DateGreaterThanEquals
ブール値
Bool
IPアドレス
IpAddress
NotIpAddress
条件キー
Alibaba Cloud 共通条件キーの形式:
acs:<condition-key>。共通条件キー
タイプ
説明
acs:CurrentTime日付と時刻
Webサーバーがリクエストを受信した時刻。
説明ISO 8601規格で時刻を指定します。時刻はUTCである必要があります。
たとえば、UTC + 08:00の2023年1月10日午後8時00分は、
2023-01-10T20:00:00+08:00または2023-01-10T12:00:00Zと表現できます。acs:SecureTransportブール値
リクエストの送信にセキュアチャネルを使用するかどうかを指定します。たとえば、リクエストはHTTPS経由で送信できます。
acs:SourceIpIPアドレス
リクエストを送信するクライアントのIPアドレス。
説明acs:SourceIpの値は、特定の IP アドレスまたは CIDR ブロックにすることができます。値が単一の IP アドレスの場合は、CIDR ブロックではなく、特定の IP アドレスを指定する必要があります。たとえば、10.0.0.1/32 ではなく 10.0.0.1 を指定する必要があります。acs:MFAPresentブール値
ユーザーログイン中に多要素認証(MFA)が使用されるかどうかを指定します。
説明RAMユーザーのセキュリティ設定の[サインインに MFA が必要]パラメーターが[危険なサインインが検出された場合のみ]に設定されている場合、
acs:MFAPresent条件は無効になります。詳細については、「RAM ユーザーのセキュリティ設定を管理する」をご参照ください。acs:PrincipalARN文字列
リクエスト元のID。この条件キーは、リソースディレクトリのアクセス制御ポリシーとRAMロールの信頼ポリシーでのみ使用できます。例:
acs:ram:*:*:role/*resourcedirectory*。説明指定されたRAMロールのARNのみを指定できます。名前には小文字のみを使用できます。 RAM ロールの ARN は、RAM コンソールのロールの詳細ページで確認できます。
acs:PrincipalRDId文字列
リクエスト元のAlibaba Cloud アカウントが属するリソースディレクトリのID。この条件キーは、RAMロールの信頼ポリシーとOSSバケットポリシーでのみ使用できます。
acs:PrincipalRDPath文字列
リクエスト元のAlibaba Cloud アカウントが属するリソースディレクトリ内のパス。この条件キーは、RAMロールの信頼ポリシーとOSSバケットポリシーでのみ使用できます。
acs:RequestTag/<tag-key>文字列
リクエストで渡されるタグ。 <tag-key> はタグキーを示します。 <tag-key> を実際のタグキーに置き換えます。この条件キーをサポートする Alibaba Cloud サービスとリソースタイプの詳細については、「タグをサポートする Alibaba Cloud サービス」の[リソースタイプ認証]情報をご参照ください。
acs:ResourceTag/<tag-key>文字列
リクエストされたリソースにバインドされているタグ。 <tag-key> はタグキーを示します。 <tag-key> を実際のタグキーに置き換えます。この条件キーをサポートする Alibaba Cloud サービスとリソースタイプの詳細については、「タグをサポートする Alibaba Cloud サービス」の[リソースタイプ認証]情報をご参照ください。
Alibaba Cloud サービスレベルの条件キーの形式:
<ram-code>:<condition-key>。たとえば、OSS条件キー
oss:Delimiterは、ListObjectsリクエストが送信されたときにオブジェクト名をグループ化するために使用されます。各クラウドサービスの条件キーの詳細については、各クラウドサービスの認証ドキュメントをご参照ください。
例
ステートメント内の2つの条件の論理関係はANDです。条件間の論理関係をORに設定する場合は、2つのステートメントで条件を個別に指定する必要があります。
例1:MFAを有効にしていて、かつ IPアドレス 203.0.113.2 からのRAMユーザーのみがECSインスタンスにアクセスできるようにします。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "ecs:*", "Resource": "*", "Condition": { "IpAddress": { "acs:SourceIp": [ "203.0.113.2" ] }, "Bool": { "acs:MFAPresent": [ "true" ] } } } ] }例2:MFAを有効にしているか、または IPアドレス 203.0.113.2 からのRAMユーザーが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" ] } } } ] }
参照
アクセス制御ポリシーの構文と構造は、RAMの権限ポリシーの構文と構造に似ています。詳細については、「ポリシーの構造と構文」をご参照ください。