<сильный>1. Идентификаторы
Начиная с aws-cli версии 2.2.11 для Linux, ключи имеют KeyPairId ... идентификаторы ресурсов.
<сильный>2. О пометке ключей
Да, вы можете использовать теги создания ec2. Использование create-key-pair довольно проблематично.
aws ec2 create-tags help
— это ссылка для приведенных ниже команд.
Общая команда и аргументы...
aws ec2 create-tags \
--resources "string" "string" --tags Key=string,Value=string ...
Пример.
Сначала опишите мои ключи, чтобы получить идентификаторы ресурсов... Идентификаторы пары ключей.
aws ec2 describe-key-pairs --profile-name adrianteri-devops
вывод
{
"KeyPairs": [
{
"KeyPairId": "key-044180521638ac88d",
"KeyFingerprint": "69:b4:71:46:65:40:37:59:7c:8c:5f:fa:c6:46:5a:e4:12:e0:46:54",
"KeyName": "adrianteri-devops",
"Tags": []
},
{
"KeyPairId": "key-0c010638921030fdc",
"KeyFingerprint": "21:6b:f8:05:bc:96:13:8d:ba:75:41:bb:5b:43:15:f7:9c:b0:a3:a4",
"KeyName": "ansible-devops",
"Tags": []
}
{
"KeyPairId": "key-0d047bbc242c7e0a2",
"KeyFingerprint": "69:2d:6f:6f:af:cf:45:d3:a9:d5:e7:63:b3:54:8b:85:32:67:9e:a0",
"KeyName": "test-keypair",
"Tags": []
}
]
}
(END)
Теперь создайте теги...
aws ec2 create-tags --resources key-044180521638ac88d key-0c010638921030fdc --tags Key=Project,Value=adrianteri-com Key=CreatedBy,Value=adrianteri --profile adrianteri-devops
Тестовая пара ключей имеет разные теги.
aws ec2 create-tags --resources key-0d047bbc242c7e0a2 --tags Key=Project,Value=Test Key=CreatedBy,Value=TestBot Key=Billing,Value=QualityAssuarance --profile adrianteri-live-devops
Результат повторного описания моих пар ключей:
{
"KeyPairs": [
{
"KeyPairId": "key-044180521638ac88d",
"KeyFingerprint": "69:b4:71:46:65:40:37:59:7c:8c:5f:fa:c6:46:5a:e4:12:e0:46:54",
"KeyName": "adrianteri-devops-keypair",
"Tags": [
{
"Key": "Project",
"Value": "adrianteri-com"
},
{
"Key": "CreatedBy",
"Value": "adrianteri"
}
]
},
{
"KeyPairId": "key-0c010638921030fdc",
"KeyFingerprint": "21:6b:f8:05:bc:96:13:8d:ba:75:41:bb:5b:43:15:f7:9c:b0:a3:a4",
"KeyName": "ansible-devops-keypair",
"Tags": [
{
"Key": "Project",
"Value": "adrianteri-com"
},
{
"Key": "CreatedBy",
"Value": "adrianteri"
}
]
},
{
"KeyPairId": "key-0d047bbc242c7e0a2",
"KeyFingerprint": "69:2d:6f:6f:af:cf:45:d3:a9:d5:e7:63:b3:54:8b:85:32:67:9e:a0",
"KeyName": "test-keypair",
"Tags": [
{
"Key": "Project",
"Value": "Test"
},
{
"Key": "CreatedBy",
"Value": "TestBot"
},
{
"Key": "Billing",
"Value": "QualityAssuarance"
}
]
}
]
}
(END)
<сильный>3. Фильтрация ключей по тегам
Также возможно использование --фильтров tag-key
и tag :<key>
.
tag-key
aws ec2 describe-key-pairs --filters Name=tag-key,Values=Billing --profile adrianteri-devops
вывод
{
"KeyPairs": [
{
"KeyPairId": "key-0d047bbc242c7e0a2",
"KeyFingerprint": "69:2d:6f:6f:af:cf:45:d3:a9:d5:e7:63:b3:54:8b:85:32:67:9e:a0",
"KeyName": "test-keypair",
"Tags": [
{
"Key": "Project",
"Value": "Test"
},
{
"Key": "CreatedBy",
"Value": "TestBot"
},
{
"Key": "Billing",
"Value": "QualityAssurance"
}
]
}
]
}
(END)
tag :<key>
aws ec2 describe-key-pairs --filters Name=tag:CreatedBy,Values=adrianteri -profile adrianteri-devops
вывод
{
"KeyPairs": [
{
"KeyPairId": "key-044180521638ac88d",
"KeyFingerprint": "69:b4:71:46:65:40:37:59:7c:8c:5f:fa:c6:46:5a:e4:12:e0:46:54",
"KeyName": "adrianteri-devops-keypair",
"Tags": [
{
"Key": "Project",
"Value": "adrianteri-com"
},
{
"Key": "CreatedBy",
"Value": "adrianteri"
}
]
},
{
"KeyPairId": "key-0c010638921030fdc",
"KeyFingerprint": "21:6b:f8:05:bc:96:13:8d:ba:75:41:bb:5b:43:15:f7:9c:b0:a3:a4",
"KeyName": "ansible-devops-keypair",
"Tags": [
{
"Key": "Project",
"Value": "adrianteri-com"
},
{
"Key": "CreatedBy",
"Value": "adrianteri"
}
]
}
]
}
(END)
person
AdrianTeri
schedule
11.06.2021
add-tags-to-resource
API, который принимает ресурс ARN, такой какarn:aws:ec2:us-east-1:123456789012:key-pair/my-keyname
, но EC2 API здесь, похоже, является исключением. Я бы предположил, что это одна из самых первых/старых вещей в AWS. - person Anton   schedule 03.04.2020