3
0

AWS Backupでタグ指定バックアップを行う際の注意点 (BackupSelectionプロパティのListOfTagsとConditionsの違い)

Posted at

AWS Backup用CloudFormationを作成し、リソースに付与されているタグを指定してバックアップを行った際に、指定通りのバックアップが実行されないことを確認しました。
原因は、AWS::Backup::BackupSelectionListOfTagsConditions の違いが十分に理解できていなかったことでした。
ListOfTagsとConditionsは複数条件によって挙動が異なるため、その違いについてまとめます。

ConditionsとListOfTagsの違い

  • Conditions: 複数の条件を指定する場合、すべての条件に一致するリソースのみを割り当てます (AND ロジックを使用)。
  • ListOfTags: 複数の条件を指定する場合は、少なくとも 1 つの条件に一致するすべてのリソースを割り当てます(OR ロジックを使用)。

詳細は AWS公式ドキュメント を参照してください。

Conditionsの例

"Conditions": {
  "StringEquals": [
    {"ConditionKey": "aws:ResourceTag/Test", "ConditionValue": "true"},
    {"ConditionKey": "aws:ResourceTag/Prod", "ConditionValue": "true"},
  ]
}
  • 両方のタグが付与されているリソースのみバックアップされる
  • どちらか片方のタグが付与されているリソースはバックアップされない
  • 上記の例ではKey: Test、Value: True 及び Key: Prod、Value: true の両方のタグが付与されているリソースのみ対象になります。
    1.Key: Test、Value: TrueとKey: Prod、Value: True両方付与されているリソースがバックアップされる
    2.Key: Test、Value: Trueのみ付与されているリソースはバックアップされない
    3.Key: Prod、Value: Trueのみ付与されているリソースはバックアップされない

ListOfTagsの例

"ListOfTags":[
  {
    "ConditionType":"StringEquals",
    "ConditionKey":"Test",
    "ConditionValue":"True"
  },
  {
    "ConditionType":"StringEquals",
    "ConditionKey":"Prod",
    "ConditionValue":"True"
  }
]
  • どちらか片方のタグが付与されているリソースがバックアップされる
  • 両方のタグが付与されているリソースもバックアップされる
  • 上記の例ではKey: Test、Value: True または Key: Prod、Value: True のタグを持つリソースが対象となります。
    1.Key: Test、Value: TrueとKey: Prod、Value: True両方付与されているリソースがバックアップされる
    2.Key: Test、Value: Trueのみ付与されているリソースがバックアップされる
    3.Key: Prod、Value: Trueのみ付与されているリソースがバックアップされる

条件が一つの場合のバックアップ対象リソース

Conditions と ListOfTags のどちらを使用しても、条件が一つの場合は、条件に一致するリソースのみがバックアップ対象となります。

Conditions の例

"Conditions": {
  "StringEquals": [
    {"ConditionKey": "aws:ResourceTag/Test", "ConditionValue": "true"},
  ]
}

この例では、Key: Test、Value: True に一致するリソースのみがバックアップ対象となります。

ListOfTags の例

"ListOfTags": [
  {
    "ConditionType": "StringEquals",
    "ConditionKey": "Test",
    "ConditionValue": "True"
  }
]

この例でも、Key: Test、Value: True に一致するリソースのみがバックアップ対象となります。

まとめ

タグ指定バックアップを行う際は、複数タグを指定する場合は完全一致を求める場合は Conditions を使用し、一部条件一致の場合は ListOfTags を使用しましょう。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0