Condition 要素の演算子は、条件キーと値を組み合わせて条件付きステートメントを作成します。リクエストがこの条件を満たすと、ポリシーが適用されます。演算子は、文字列、数値、日時、ブール値、IP アドレスの 5 種類に分類されます。このトピックでは、Resource Access Management (RAM) がサポートする演算子について説明し、例を示します。
文字列
条件操作 | 演算子 | 説明 |
文字列 | StringEquals | 文字列が一致 (大文字と小文字を区別)。 |
StringNotEquals | 文字列が一致しない (大文字と小文字を区別)。 | |
StringEqualsIgnoreCase | 文字列が一致 (大文字と小文字を区別しない)。 | |
StringNotEqualsIgnoreCase | 文字列が一致しない (大文字と小文字を区別しない)。 | |
StringLike | 部分的な文字列が一致 (大文字と小文字を区別、ワイルドカード文字
| |
StringNotLike | 部分的な文字列が一致しない (大文字と小文字を区別、ワイルドカード文字
|
例:
StringEquals の例
このポリシーでは、RAM ユーザーは team:dev タグを持つ ECS インスタンスのみを管理できます。このポリシーでは、Condition 要素で StringEquals 演算子と acs:ResourceTag 条件キーを使用します。
{
"Effect": "Allow",
"Action": "ecs:*",
"Resource": "*",
"Condition": {
"StringEquals": {
"acs:ResourceTag/team": [
"dev"
]
}
}
}StringLike の例
このポリシーでは、RAM ユーザーは OSS コマンドラインインターフェイスを使用して myphotos/hangzhou/2015/ フォルダにアクセスし、そこに含まれるファイルを一覧表示できます。このポリシーでは、Condition 要素で StringLike 演算子と oss:Prefix 条件キーを使用します。これにより、`hangzhou/2015/` プレフィックスを持つオブジェクトのみが一覧表示されるようになります。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"oss:GetObject"
],
"Resource": [
"acs:oss:*:*:myphotos/hangzhou/2015/*"
]
},
{
"Effect": "Allow",
"Action": [
"oss:ListObjects"
],
"Resource": [
"acs:oss:*:*:myphotos"
],
"Condition":{
"StringLike":{
"oss:Prefix":"hangzhou/2015/*"
}
}
}
]
}数値
条件操作の種類 | 演算子 | 説明 |
数値 | NumericEquals | 数値が一致。 |
NumericNotEquals | 数値が一致しない。 | |
NumericLessThan | より小さい | |
NumericLessThanEquals | 数値が以下。 | |
NumericGreaterThan | 数値がより大きい。 | |
NumericGreaterThanEquals | 数値が以上。 |
例:
このポリシーは、回復ウィンドウが 10 日以下に設定されている場合に、すべての RAM ユーザーと RAM ロールが KMS 認証情報を削除することを拒否します。このポリシーでは、Condition 要素で NumericLessThanEquals 演算子と kms:RecoveryWindowInDays 条件キーを使用します。
{
"Statement": [
{
"Effect": "Deny",
"Action": "kms:DeleteSecret",
"Principal": "*",
"Resource": "*",
"Condition": {
"NumericLessThanEquals": {
"kms:RecoveryWindowInDays": "10"
}
}
}
]
}
日時
条件操作 | 演算子 | 説明 |
日時 | DateEquals | 日付が一致。 |
DateNotEquals | 日付が一致しない。 | |
DateLessThan | 日付がより早い。 | |
DateLessThanEquals | 日付が指定の値以前です。 | |
DateGreaterThan | 日付がより遅い。 | |
DateGreaterThanEquals | 日付が以降。 |
例:
このポリシーでは、RAM ユーザーは 2019 年 8 月 12 日 17:00 (UTC + 08:00) より前にのみ ECS インスタンスにアクセスできます。このポリシーでは、Condition 要素で DateLessThan 演算子と acs:CurrentTime 条件キーを使用します。
{
"Statement": [
{
"Action": "ecs:*",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"DateLessThan": {
"acs:CurrentTime": "2019-08-12T17:00:00+08:00"
}
}
}
],
"Version": "1"
}ブール値
条件操作 | 演算子 | 説明 |
ブール値 | Bool | ブール値 ( |
例:
このポリシーでは、多要素認証 (MFA) が有効になっている RAM ユーザーのみが ECS インスタンスにアクセスできます。このポリシーでは、Condition 要素で Bool 演算子と acs:MFAPresent 条件キーを使用します。
{
"Statement": [
{
"Action": "ecs:*",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"Bool": {
"acs:MFAPresent": "true"
}
}
}
],
"Version": "1"
}IP アドレス
条件演算子 | 演算子 | 説明 |
IP アドレス | IpAddress | IP アドレスが値と等しい (開始と終了の境界値を除く)。 |
NotIpAddress | 指定された IP アドレスまたは IP アドレス範囲と一致しません。 | |
IpAddressIncludeBorder | 指定された IP アドレスまたは IP アドレス範囲に一致します (境界値を含む)。 説明 一部のプロダクトでのみサポートされています。使用前にこの演算子をテストしてください。 | |
NotIpAddressIncludeBorder | 指定された IP アドレスまたは IP アドレス範囲に一致しません (境界値を含む)。 説明 一部のプロダクトでのみサポートされています。使用前にこの演算子をテストしてください。 |
例:
このポリシーでは、RAM ユーザーは `192.0.2.0/24` および `203.0.113.2` の IP アドレスからのみ ECS インスタンスにアクセスできます。このポリシーでは、Condition 要素で IpAddress 演算子と acs:SourceIp 条件キーを使用します。
{
"Statement": [
{
"Action": "ecs:*",
"Effect": "Allow",
"Resource": "*",
"Condition": {
"IpAddress": {
"acs:SourceIp": [
"192.0.2.0/24",
"203.0.113.2"
]
}
}
}
],
"Version": "1"
}