| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | ||||||||||||||||||||||||||
2 | ||||||||||||||||||||||||||
3 | 2024.06.14 현재 | |||||||||||||||||||||||||
4 | Provider | VPC | Subnet | SecurityGroup | VM KeyPair | VM | Disk | MyImage (Snapshot) | NLB | NLB VMGroup | Cluster (K8S) | Cluster NodeGroup | 동일 자원 대상으로 Tag 키워드 검색 | 모든 자원 대상으로 Tag 키워드 검색 | 특이사항/제약사항 등 | |||||||||||
5 | 설명 | * 현재 Spider가 연동 제공하는 자원들에 대해서 API 기준으로 Tag 기능 제공 여부 분석 - 예시: 생성한 vpc-01에 대해 Tag 생성/Tag 목록/Tag 삭제를 API로 제공하는 경우 => VPC Cell에 O | * 동일 자원 대상 Tag 키워드 검색 - 예시: VPC 자원에 대해서 "abc" Tag 키워드 검색 (Key나 Value에 "abc"를 포함하는 Tag 정보 목록 제공) | * 모든 자원 대상 Tag 키워드 검색 - 예시: 모든 자원에 대해서 "abc" Tag 키워드 검색 (Key나 Value에 abc 포함하는 Tag 목록 제공) | ||||||||||||||||||||||
6 | AWS | O | O | O | O | O | O | O | O | O | O | O | O (NLB/K8s 등을 제외한 Resource에 대해서만 제공) | O (NLB/K8s 등을 제외한 Resource에 대해서만 제공) | - EC2 리소스 태깅 지원 여부 및 시점 : https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html - IAM 정책 설정 필요 [tag:GetResources tag:TagResources tag:UntagResources tag:GetTagKeys tag:GetTagValues] - 기본 요청 syntax (https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html) { "ExcludeCompliantResources": boolean, "IncludeComplianceDetails": boolean, "PaginationToken": "string", "ResourceARNList": [ "string" ], "ResourcesPerPage": number, "ResourceTypeFilters": [ "string" ], "TagFilters": [ { "Key": "string", "Values": [ "string" ] } ], "TagsPerPage": number } - 기본 응답 syntax (https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html) { "PaginationToken": "string", "ResourceTagMappingList": [ { "ComplianceDetails": { "ComplianceStatus": boolean, "KeysWithNoncompliantValues": [ "string" ], "NoncompliantKeys": [ "string" ] }, "ResourceARN": "string", "Tags": [ { "Key": "string", "Value": "string" } ] } ] } - 지원되는 서비스 목록 (https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/supported-services.html) | |||||||||||
7 | Azure | O | X | O | O | O | O | O | O | X | O | X | O | O | 일부 리소스에 한하여 지원 : Azure 리소스에 대한 태그 지원 태그 리소스에 필요한 권한 필요 | |||||||||||
8 | GCP | X | X | X | X | O | O | X | X | X | O | X | O (일부 resource) | X | * GCP 는 Tag 와 Label 이 같이 사용되나 둘의 사용 사례는 명확하게 다르다. - Label : 리소스 조직화 및 분류 목적으로 GCP 리소스에 맞춤 메타데이터를 추가하는 데 사용(현재 분석 중인 Tag 기능과 맵핑) - Tag : 가상 네트워크 내에서 리소스 간 접근 제어하는 데 사용 (대상 예시: organization, folder, project 등) 지원되는 라벨 서비스 목록 - setLabel 에는 리소스 get() 을 요청해서 받아올 수 있는 fingerprint가 존재. - fingerprint 를 리소스 레벨에서 제공하는 setLabel 요청할 때 전달 필수. | |||||||||||
9 | Alibaba | △ (생성시만) | △ (생성시만) | O | O | O | O | O | O | X | X | X | O (Resource ID 만 제공) | O (ARN 만 제공) | 태그 리소스 : 페이지 - 모든 자원 리소스 검색 결과는 ARN 이기 때문에 추가적으로 리소스에 대한 상세 사항이 필요한 경우 추가 arn 을 통한 추가 조회 필요 검색 결과 resource 부분 응답 예시 : { "ResourceARN": "arn:acs:ecs:cn-hongkong:5513479151634744:securitygroup/sg-j6c7wz6nla290nhmhqad", "Tags": [ { "Category": "Custom", "Value": "dev", "Key": "env" } ] } - 동일 자원 리소스 검색은 ALIYUN::VPC::VSWITCH 이와 같이 resource type 을 통해 검색하며, 응답은 resource id 만 제공 검색 결과 resource 부분 응답 예시 : { "ResourceId": "vsw-j6cm3gserqz7wsutj25pt" } | |||||||||||
10 | Tencent | O | O | O | O | O | O | O | O | X | O | X | O | O | 태그 리소스 : 페이지 - 검색 결과 예시 : { "Response": { "Limit": 15, "Offset": 0, "RequestId": "ef632ba0-cc78-42d0-98be-e05a0da4556a", "Rows": [ { "Category": null, "ResourceId": "img-6f63ylsn", "ServiceType": "cvm", "TagKey": "CB-VMSNAPSHOT-SOURCEVM-ID", "TagKeyMd5": "53f760b224f0ebeb37ccdfa928e8604f", "TagValue": "ins-kbmj4rzx", "TagValueMd5": "008fd95985b6eafa9f31bf82d2748bb9" } ], "TotalCount": 1 } } | |||||||||||
11 | IBM VPC | O | O | O | O | O | O | O | O | X | O | X | O | O | o 태그 관리 페이지 : https://cloud.ibm.com/account/tags - Tag 생성은 key:value 형식으로 생성 가능 | |||||||||||
12 | OpenStack | O | O | O | X | O | X | X | O | O | NA | NA | O | X | * compute API Ref : https://docs.openstack.org/api-ref/compute/ * network API Ref : https://docs.openstack.org/api-ref/network/v2/index.html * loadbalancer API Ref : https://docs.openstack.org/api-ref/load-balancer/v2/index.html * image : 업로드한 Image의 경우->glance API, 볼륨의 스냅샷인 경우 -> cinder API * 업로드한 Image에 대해서만 Tag 지원 | |||||||||||
13 | NHN | X | * Tag 기능 제공하지 않음 (※ Gophercloud Tag API 추가 확인: 404 반환) | |||||||||||||||||||||||
14 | NCP Classic | X | X | X | X | O | X | X | X | X | X | X | O (일부 resource) | X | - VM 대상으로만 key/value 형태로 tagging 기능 제공 | |||||||||||
15 | NCP VPC | X | * Tag 기능 제공하지 않음 | |||||||||||||||||||||||
16 | KT Classic | X | X | X | X | O | O | O | △(제외) | X | X | X | O (일부 resource) | O (VM, Disk, MyImage만 해당. NLB 제외) | - VM, Disk, MyImage 대상으로 tag 전용 API로 key/value 형태로 제공 - NLB 경우는 특정 NLB 대상으로 단일 string 형태 tag 생성 ( #1289 참고) | |||||||||||
17 | KT VPC | X | * Tag 기능 제공하지 않음 (※ API 문서상 NLB 대상 tagging 기능이 있으나 실제로는 미지원. 향후 지원 예정이라고함.) | |||||||||||||||||||||||
18 | ||||||||||||||||||||||||||
19 | 추상화 후보 (CSP별 제공 자원 한정) | O | O | O | O | O | O | O | O | X | O | X | O | O (X의 경우: 서버에서 제공) | [2가지 Tag Type 지원 고려] * CSP Tag: CSP별 Tag 제공 자원 한정 지원 (비용 최적화 플랫폼 등 Spider를 통하지 않는 경우에도 활용 가능) * Spider Tag: Driver 무관, 서버에서 메타 정보로 제공, 검색 빠름, 모든 자원 Tag 기능 제공 가능 (Spider 통하지 않는 경우 활용 불가) ※ Spider Tag + CSP Tag 통합 제공 방식 관련: - 메타 정보와 CSP Tag 정보 동기화 문제로 잠재적 오류 발생 가능 (Tag 관리는 비용 최적화 플랫폼 등 제3의 도구들이 공유할 수 있음) - 대부분의 사용자가 Tag를 지원하지 않는 자원에도 Tag를 기대할 수 있어, 혼란 스러울 수 있음 => 2가지 Type을 사용자에게 가이드 후 사용자가 용도에 맞게 잘 활용할 수 있게 제공 * 지원 순서: CSP Tag 후 Spider Tag 지원 여부 고려 | |||||||||||
20 | ||||||||||||||||||||||||||
21 | ||||||||||||||||||||||||||
22 | ||||||||||||||||||||||||||
23 | ||||||||||||||||||||||||||
24 | ||||||||||||||||||||||||||
25 | ||||||||||||||||||||||||||
26 | ||||||||||||||||||||||||||
27 | ||||||||||||||||||||||||||
28 | ||||||||||||||||||||||||||
29 | ||||||||||||||||||||||||||
30 | ||||||||||||||||||||||||||
31 | ||||||||||||||||||||||||||
32 | ||||||||||||||||||||||||||
33 | ||||||||||||||||||||||||||
34 | ||||||||||||||||||||||||||
35 | ||||||||||||||||||||||||||
36 | ||||||||||||||||||||||||||
37 | ||||||||||||||||||||||||||
38 | ||||||||||||||||||||||||||
39 | ||||||||||||||||||||||||||
40 | ||||||||||||||||||||||||||
41 | ||||||||||||||||||||||||||
42 | ||||||||||||||||||||||||||
43 | ||||||||||||||||||||||||||
44 | ||||||||||||||||||||||||||
45 | ||||||||||||||||||||||||||
46 | ||||||||||||||||||||||||||
47 | ||||||||||||||||||||||||||
48 | ||||||||||||||||||||||||||
49 | ||||||||||||||||||||||||||
50 | ||||||||||||||||||||||||||
51 | ||||||||||||||||||||||||||
52 | ||||||||||||||||||||||||||
53 | ||||||||||||||||||||||||||
54 | ||||||||||||||||||||||||||
55 | ||||||||||||||||||||||||||
56 | ||||||||||||||||||||||||||
57 | ||||||||||||||||||||||||||
58 | ||||||||||||||||||||||||||
59 | ||||||||||||||||||||||||||
60 | ||||||||||||||||||||||||||
61 | ||||||||||||||||||||||||||
62 | ||||||||||||||||||||||||||
63 | ||||||||||||||||||||||||||
64 | ||||||||||||||||||||||||||
65 | ||||||||||||||||||||||||||
66 | ||||||||||||||||||||||||||
67 | ||||||||||||||||||||||||||
68 | ||||||||||||||||||||||||||
69 | ||||||||||||||||||||||||||
70 | ||||||||||||||||||||||||||
71 | ||||||||||||||||||||||||||
72 | ||||||||||||||||||||||||||
73 | ||||||||||||||||||||||||||
74 | ||||||||||||||||||||||||||
75 | ||||||||||||||||||||||||||
76 | ||||||||||||||||||||||||||
77 | ||||||||||||||||||||||||||
78 | ||||||||||||||||||||||||||
79 | ||||||||||||||||||||||||||
80 | ||||||||||||||||||||||||||
81 | ||||||||||||||||||||||||||
82 | ||||||||||||||||||||||||||
83 | ||||||||||||||||||||||||||
84 | ||||||||||||||||||||||||||
85 | ||||||||||||||||||||||||||
86 | ||||||||||||||||||||||||||
87 | ||||||||||||||||||||||||||
88 | ||||||||||||||||||||||||||
89 | ||||||||||||||||||||||||||
90 | ||||||||||||||||||||||||||
91 | ||||||||||||||||||||||||||
92 | ||||||||||||||||||||||||||
93 | ||||||||||||||||||||||||||
94 | ||||||||||||||||||||||||||
95 | ||||||||||||||||||||||||||
96 | ||||||||||||||||||||||||||
97 | ||||||||||||||||||||||||||
98 | ||||||||||||||||||||||||||
99 | ||||||||||||||||||||||||||
100 | ||||||||||||||||||||||||||