
- TOP
- ã¿ã°äžèЧ
- Nginx
Nginx
ã€ãã³ã
該åœããã³ã³ãã³ããèŠã€ãããŸããã§ãã
ãã¬ãžã³

æè¡ããã°
ã¯ããã« åå ã¯ãKubernetesã®ããã¯ã¢ããããŒã«ã§ããVeleroã®ã€ã³ã¹ããŒã«ãšãMinIOãä¿åå
ãšããåæèšå®ã«ã€ããŠè§£èª¬ããŸãã ã ååã®ãã³ãºãªã³ãçµãã£ãŠããã°ãç°å¢æ§ç¯ãå®äºããVeleroãµãŒããŒãã¯ã©ã¹ã¿ãŒå
ã§æ£åžžã«çšŒåããŠããç¶æ
ã«ãªã£ãŠããããšæããŸãã æ¬èšäºã§ã¯ãPersistentVolume (PV) ã䌎ããªãã¹ããŒãã¬ã¹ãªã¢ããªã±ãŒã·ã§ã³ã察象ã«ãã¯ã©ã¹ã¿ãŒãªãœãŒã¹ïŒKubernetesãªããžã§ã¯ãã®å®çŸ©ïŒã®ããã¯ã¢ããæé ã解説ããŸãã PVãå«ãã¹ããŒããã«ãªããŒã¿ã®ããã¯ã¢ããã«ã€ããŠã¯ã次å以éã®èšäºã§è©³ããåãæ±ãäºå®ã§ãã ç°å¢æ§ç¯ã®åæ æ¬æé ã¯ãååã®èšäºã§æ§ç¯ãã以äžã®ç°å¢ãåäœããŠããããšãåæãšããŸãã Kubernetesã¯ã©ã¹ã¿ãŒ: Minikube (v1.36.0) ãèµ·åäžã§ããããš Velero: v1.17.1 ãã€ã³ã¹ããŒã«æžã¿ã§ãMinIOãžã®æ¥ç¶èšå®ãå®äºããŠããããš CLIããŒã«: kubectl ããã³ velero ã³ãã³ããå©çšå¯èœã§ããããš MinIO: RELEASE.2025-09-07T16-13-09Zãèµ·åäžã§ããããš ããã¯ã¢ãã察象ãªãœãŒã¹ã®ããã〠ã¢ããªã±ãŒã·ã§ã³ã®äœæ ãŸãã¯ããã¯ã¢ããã®æ€èšŒçšãšããŠãDeploymentãServiceãConfigMapãå«ãã·ã³ãã«ãªNginxã¢ããªã±ãŒã·ã§ã³ãäœæããŸããä»åã¯æ°žç¶ããªã¥ãŒã ïŒPV / PVCïŒãå«ãŸãªãæ§æãšããŸãã demo-app.yaml apiVersion: v1 kind: Namespace metadata: name: demo --- apiVersion: v1 kind: ConfigMap metadata: name: nginx-config namespace: demo labels: app: nginx data: index.html: | <html> <head><title>Velero Demo</title></head> <body> <h1>Hello, Velero!</h1> <p>This is a cluster resource backup demo.</p> </body> </html> --- apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment namespace: demo labels: app: nginx spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:latest ports: - containerPort: 80 volumeMounts: - name: html-volume mountPath: /usr/share/nginx/html volumes: - name: html-volume configMap: name: nginx-config --- apiVersion: v1 kind: Service metadata: name: nginx-service namespace: demo labels: app: nginx spec: selector: app: nginx ports: - protocol: TCP port: 80 targetPort: 80 type: ClusterIP ã¢ããªã±ãŒã·ã§ã³ã®ãããã€ãšç¢ºèª 次ã¯ãäœæãããããã§ã¹ããé©çšãããªãœãŒã¹ãäœæãããããšã確èªããŸãã $ kubectl apply -f demo-app.yaml $ kubectl get all -n demo # åºåäŸ NAME READY STATUS RESTARTS AGE pod/nginx-deployment-856dc6c76b-v6crd 1/1 Running 0 8s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/nginx-service ClusterIP 10.43.107.135 <none> 80/TCP 8s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/nginx-deployment 1/1 1 1 8s NAME DESIRED CURRENT READY AGE replicaset.apps/nginx-deployment-856dc6c76b 1 1 1 8s 以äžã§ ã¢ããªã±ãŒã·ã§ã³ã®æºåãã§ããã®ã§ãVeleroã䜿çšããŠããã¯ã¢ãããååŸããŸãã åºæ¬çãªããã¯ã¢ããã³ãã³ãã®å®è¡ ããã¯ã¢ããã®å®è¡ ããã§ã¯Namespaceå
ã®ããŒã¿ãããã¯ã¢ããããŸãããã®ãããvelero backup createã³ãã³ãã«–include-namespaces ãªãã·ã§ã³ãã€ããŠå¯Ÿè±¡ã®Namespaceãæå®ããŸãã $ velero backup create demo-resource-backup --include-namespaces demo # åºåäŸ Backup request "demo-resource-backup" submitted successfully. Run `velero backup describe demo-resource-backup` or `velero backup logs demo-resource-backup` for more details. ã³ãã³ããå®è¡ãããšããBackup request “demo-resource-backup” submitted successfully.ããšè¡šç€ºãããããã¯ã¢ããåŠçãããã¯ã°ã©ãŠã³ãã§éå§ãããŸãã ç¶æ
ã®ç¢ºèª ããã¯ã¢ãããæ£åžžã«å®äºããã確èªããã«ã¯ velero backup describe ã³ãã³ãã䜿çšããŸããåºåçµæã® Phase ã Completed ã«ãªã£ãŠããã°æåã§ãã $ velero backup describe demo-resource-backup # åºåäŸ Name: demo-resource-backup Namespace: velero Labels: velero.io/storage-location=default-backup-storage-location Annotations: velero.io/resource-timeout=10m0s velero.io/source-cluster-k8s-gitversion=v1.32.3+rke2r1 velero.io/source-cluster-k8s-major-version=1 velero.io/source-cluster-k8s-minor-version=32 Phase: Completed ... 詳现ãªãã°ã確èªãããå Žåã¯ã以äžã®ã³ãã³ããå®è¡ããŸãã $ velero backup logs demo-resource-backup ããã¯ã¢ããããŒã¿ã®ãªããžã§ã¯ãã¹ãã¬ãŒãžã§ã®ç¢ºèª Veleroãæ£ããMinIOãžããŒã¿ãä¿åã§ããŠããã確èªããŸãã ååã®èšäºã§äœæãã minio-client Pod ã䜿çšããŠããã±ããã®äžèº«ã確èªããŸãã $ kubectl exec -it minio-client -- /bin/sh # ãã±ããå
ã®ããã¯ã¢ããããŒã¿ã確èªïŒãšã€ãªã¢ã¹ 'myminio' ã¯èšå®æžã¿ãšããïŒ $ mc ls -r myminio/minio-bucket/backups/demo-resource-backup 以äžã®ããã«ãJSON圢åŒã®ã¡ã¿ããŒã¿ãã¡ã€ã«ãããªãœãŒã¹å®çŸ©ãå«ãŸããå§çž®ãã¡ã€ã«ã衚瀺ãããã°ããªããžã§ã¯ãã¹ãã¬ãŒãžãžã®ä¿åã¯æåããŠããŸãã [202X-XX-XX XX:XX:XX UTC] 4KB velero-backup.json [202X-XX-XX XX:XX:XX UTC] 2KB demo-resource-backup-logs.gz [202X-XX-XX XX:XX:XX UTC] 15KB demo-resource-backup-resource-list.json.gz ⊠ãªãœãŒã¹ã®çµã蟌ã¿ãšé€å€åå空é å®éçšã§ã¯ãNamespaceäžžããšã§ã¯ãªããç¹å®ã®ãªãœãŒã¹ã®ã¿ã察象ã«ããããéã«ç¹å®ã®ãªãœãŒã¹ãé€å€ãããå Žé¢ããããŸãã ã©ãã«ã«ããçµã蟌㿠–selector ãªãã·ã§ã³ã䜿çšãããšãKubernetesã®Label Selectorã®èšæ³ã§å¯Ÿè±¡ãçµã蟌ããŸãã # app=nginx ã©ãã«ãä»äžããããªãœãŒã¹ã®ã¿ãããã¯ã¢ãã $ velero backup create nginx-only --selector app=nginx --include-namespaces demo ç¹å®ãªãœãŒã¹ã®é€å€ äŸãã°ããEventæ
å ±ã¯äžèŠããšãã£ãã±ãŒã¹ã§ –exclude-resources ã䜿çšããŸãã $ velero backup create no-events --include-namespaces demo --exclude-resources events ã·ã¹ãã Namespaceã®é€å€ ããã¯ã¢ãããåãéãkube-system ã velero èªèº«ãå«ãããšããªã¹ãã¢æã«ç«¶åçã®ãã©ãã«ã«ãªãããšããããŸããããããé€å€ããã«ã¯ –exclude-namespaces ã䜿çšããŸãã $ velero backup create cluster-resources --exclude-namespaces kube-system,velero Hookã®æŽ»çš Veleroã®Hookæ©èœã䜿ããšãããã¯ã¢ããå®è¡ã®ååŸã«ã³ã³ããå
ã§ä»»æã®ã³ãã³ããå®è¡ã§ããŸããä»åã¯ããã¯ã¢ããå®è¡ã®èšé²ãæ®ãã·ã³ãã«ãªäŸã玹ä»ããŸãã Hookã¯å¯Ÿè±¡ã®Podã«ã¢ãããŒã·ã§ã³ãä»äžããããšã§èšå®ããŸãã $ kubectl annotate pod -n demo -l app=nginx \ pre.hook.backup.velero.io/command='["/bin/sh", "-c", "echo [$(date)] Backup started >> /tmp/backup.log"]' \ pre.hook.backup.velero.io/container=nginx ãã®èšå®åŸã«ããã¯ã¢ãããååŸãããšã察象Podå
ã® /tmp/backup.log ã«å®è¡æ¥æãèšé²ãããŸããããã¯ããã¯ã¢ããåŠçãæ£ããPodã«ã¢ã¯ã»ã¹ã§ããŠãããã®çé確èªãšããŠãå©çšã§ããŸãã ã¹ã±ãžã¥ãŒã«ããã¯ã¢ããã®èšå® æ¥æ¬¡ã鱿¬¡ãªã©ã宿çãªããã¯ã¢ãããèªååããã«ã¯ velero schedule create ã³ãã³ãã䜿çšããŸããèšå®æ¹æ³ã¯Linuxã®Cronèšæ³ãšåæ§ã§ãããããã©ã«ãã®ã¿ã€ã ãŸãŒã³ãUTCã«ãªã£ãŠãããããæå»ã¯UTCã§æå®ããå¿
èŠãããç¹ã«ã¯æ³šæããŠãã ããã # æ¯æ¥åå3æïŒUTCïŒã« demo ããŒã ã¹ããŒã¹ãããã¯ã¢ãã $ velero schedule create daily-demo --schedule="0 3 * * *" --include-namespaces demo èšå®ããã¹ã±ãžã¥ãŒã«ã¯ä»¥äžã§ç¢ºèªã§ããŸãã $ velero schedule get # åºåäŸ NAME STATUS CREATED SCHEDULE BACKUP TTL LAST BACKUP SELECTOR PAUSED daily-demo Enabled 2026-08-04 01:43:39 +0000 UTC 0 3 * * * 0s n/a <none> false ã¹ã±ãžã¥ãŒã«ã«åºã¥ããŠå®è¡ãããããã¯ã¢ããã¯ãdaily-demo-<ã¿ã€ã ã¹ã¿ã³ã> ãšããåœåèŠåã§ä¿åãããŠãããŸãã ãŸãšã æ¬èšäºã§ã¯ãPersistentVolumeãå«ãŸãªãã¯ã©ã¹ã¿ãŒãªãœãŒã¹ïŒDeploymentãServiceãConfigMapïŒã«çŠç¹ãåœãŠãVeleroã«ããããã¯ã¢ããææ³ã解説ããŸããã velero backup create ã§Namespaceåäœã®ããã¯ã¢ãããå¯èœ ããã¯ã¢ããããŒã¿ã¯ãªããžã§ã¯ãã¹ãã¬ãŒãžïŒMinIOïŒã«æ ŒçŽããã ã©ãã«ã»ã¬ã¯ã¿ãé€å€èšå®ã«ãããå¿
èŠãªãªãœãŒã¹ã ããæè»ã«ç®¡çã§ãã æ¬¡åã¯ãä»åååŸããããã¯ã¢ããããã®ãªã¹ãã¢ã«ã€ããŠæ·±æãããŠãããŸãã ã芧ããã ãããããšãããããŸãïŒ ãã®æçš¿ã¯ã圹ã«ç«ã¡ãŸãããïŒ åœ¹ã«ç«ã£ã 圹ã«ç«ããªãã£ã 0人ããã®æçš¿ã¯åœ¹ã«ç«ã£ããšèšã£ãŠããŸãã The post Veleroå®è·µïŒã¯ã©ã¹ã¿ãŒãªãœãŒã¹ã®ããã¯ã¢ãã first appeared on SIOS Tech Lab .
æ¬ããã°ã¯ 2026 幎 7 æ 30 æ¥ã«å
¬éããã AWS Blog â Extend Amazon Inspector SBOM Generator with Plugins â ã翻蚳ãããã®ã§ãã Amazon Inspector ã¯ã Amazon Web Services (AWS) ã®ã¯ãŒã¯ããŒããç¶ç¶çã«ã¹ãã£ã³ããŠãœãããŠã§ã¢ã®è匱æ§ãæ€åºãããèªååãããè匱æ§ç®¡çãµãŒãã¹ã§ããAmazon Inspector ã®è匱æ§ç®¡çæ©èœã¯ã Amazon Inspector SBOM Generator (inspector-sbomgen) ãšåŒã°ããè³ç£ã€ã³ãã³ããªãšã³ãžã³ã«ãã£ãŠæ¯ããããŠããŸããããã¯ã¹ã¿ã³ãã¢ãã³ã®ã³ãã³ãã©ã€ã³ããŒã«ã§ãã³ã³ããã€ã¡ãŒãžããã£ã¬ã¯ããªãã¢ãŒã«ã€ããããŒã«ã«ã·ã¹ãã ãã³ã³ãã€ã«æžã¿ãã€ããªãªã©ãã ãœãããŠã§ã¢éšå衚 (SBOM) ãçæããŸããéå» 2 幎éã§ãAWS 㯠inspector-sbomgen ã®ã«ãã¬ããžãæ°åã®ããã°ã©ãã³ã°èšèªãšã³ã·ã¹ãã ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãåºãå°å
¥ãããŠããã¢ããªã±ãŒã·ã§ã³ãžãšæ¡å€§ããŠããŸããã ä»åãinspector-sbomgen ãå©çšãããã«ããŒåãã®æ°æ©èœãšããŠãç¬èªã®ã«ã¹ã¿ã ããã±ãŒãžã³ã¬ã¯ã¿ãŒãèšè¿°ã§ãã ãã©ã°ã€ã³ã·ã¹ãã ãçºè¡šããŸãããœãŒã¹ã³ãŒãã®ã³ã³ãã€ã«ãå
¬åŒãªãªãŒã¹ãåŸ
ã€å¿
èŠã¯ãªããããã«äœ¿ãå§ããããšãã§ããŸãã inspector-sbomgen ã®ææ°ããŒãžã§ã³ã¯ã Amazon Inspector ãŠãŒã¶ãŒã¬ã€ã ããããŠã³ããŒãã§ããŸãã ãã®èšäºã§ã¯ãinspector-sbomgen ãã©ã°ã€ã³ã·ã¹ãã ã§ã§ããããšããããæ§ç¯ããçç±ããããŠæ°åã§æåã®ãã©ã°ã€ã³ãæžãæ¹æ³ã玹ä»ããŸããããããŠããã©ã°ã€ã³ãçæããããã±ãŒãžã³ã³ããŒãã³ãã Amazon Inspector ã®è匱æ§ã¹ãã£ã³ãšçµ±åããæ¹æ³ããã»ãã¥ãªãã£ã匷åãããäºæž¬å¯èœãªãã©ã°ã€ã³åäœãå®çŸãããã©ã°ã€ã³ã®å®å
šæ§ã¢ãã«ã«ã€ããŠã解説ããŸãã ãã©ã°ã€ã³ã·ã¹ãã ãæ§ç¯ããçç± ãœãããŠã§ã¢ã®ãšã³ã·ã¹ãã ã¯åçã§ããæ°ããèšèªããã±ãŒãžãããŒãžã£ãŒãããã¯ãã¡ã€ã«åœ¢åŒããšã³ããŠãŒã¶ãŒã¢ããªã±ãŒã·ã§ã³ãçµ¶ãããªãªãŒã¹ããããã®å€ãã¯è¿
éã«æ¡çšãããŸããäžã«ã¯ã»ãã¥ãªãã£ã®æ€èšŒãã»ãšãã©è¡ãããªããŸãŸäœ¿ããããã®ããããŸãããã®çµæãã»ãã¥ãªãã£ããŒã ã«ã¯å¯èŠæ§ã®ã®ã£ãããæ®ããŸããã€ãŸããSBOM ããŒã«ããŸã èªèã§ããªããœãããŠã§ã¢ãæ¬çªã¯ãŒã¯ããŒãã§åããŠãããšããç¶æ
ã§ããã客æ§ããã¯ããããããšã³ã·ã¹ãã ã®å€ããçŽæ¥ã€ã³ãã³ããªåããããšããèŠæãããã ããŠããŸãããæè¿ãŸã§ããããå®çŸããå¯äžã®æ¹æ³ã¯ãæ©èœãªã¯ãšã¹ããåºã㊠inspector-sbomgen ããŒã ããšã³ã·ã¹ãã ã«å¯Ÿå¿ããæ°ãããªãªãŒã¹ããããã€ããã®ãåŸ
ã€ããšã§ããã inspector-sbomgen ãã©ã°ã€ã³ã·ã¹ãã ã¯ããã®ç¶æ³ãå€ããŸãããã©ã°ã€ã³ã䜿ããšã次ã®ããšãã§ããŸãã inspector-sbomgen ãæšæºã§ã¯å¯Ÿå¿ããŠããªããšã³ã·ã¹ãã ãžã®å¯Ÿå¿ â æ°ãããªãŒãã³ãœãŒã¹ãšã³ã·ã¹ãã ãããããŸãã¯å€åã®éãããã±ãŒãžåœ¢åŒãçµç¹ç¬èªã®ããŒã«ãªã©ãinspector-sbomgen ã倿Žããããšãªãã€ã³ãã³ããªåã§ããŸã ãšã³ã·ã¹ãã æ€åºã®è¿
éãªãããã¿ã€ãã³ã° â éçºè
ã«ã AI ã³ãŒãã£ã³ã°ã¢ã·ã¹ã¿ã³ãã«ãæ±ãããããã©ã°ã€ã³ã·ã¹ãã ãèšèšããŸããããã©ã°ã€ã³ã¯ Lua ã§èšè¿°ãããå®è¡æã«ããŒãããããããGo ããŒã«ãã§ãŒã³ãã³ã³ãã€ã«ãäžèŠã§ããçµã¿èŸŒã¿ã®ãã¹ãããŒãã¹ã䜿ã£ãŠãã©ã°ã€ã³ãç¹°ãè¿ãæ¹åããããã«çµæã確èªã§ããŸã å®å®ããåºç€ã®äžã§ã®æ§ç¯ â ãã©ã°ã€ã³ API ã¯ã¢ãŒãã£ãã¡ã¯ãã®çš®é¡ã«ããéããæœè±¡åãããããæ€åºããžãã¯ãäžåºŠæžãã ãã§ãã³ã³ããã€ã¡ãŒãžãã¢ãŒã«ã€ããããŒã«ã«ã·ã¹ãã ãªã©ã§ã·ãŒã ã¬ã¹ã«åäœããŸãããŸãããã©ã°ã€ã³ã¯ sbomgen ã®å
éšæ§é ããåé¢ãããŠãããããã³ã¢ããŒã«ã§ãªã°ã¬ãã·ã§ã³ãçºçããå Žåã®åœ±é¿ç¯å²ãå°ããæããããŸã å®éãç§ãã¡èªèº«ããã®ãã©ã°ã€ã³ã·ã¹ãã ãå
éšã§æŽ»çšããæ°ãããšã³ã·ã¹ãã ã®ã«ãã¬ããžã以åããéãæäŸã§ããããã«ãªããŸããã 1.13 ãªãªãŒã¹ ã§ã¯ãApache TomcatãNGINXãMySQLãRedisãWordPressãOpenSSH ããŒã«ãã§ãŒã³ãªã©ããããŸã§ Go ã§å®è£
ãããŠãã 20 以äžã®ãšã³ã·ã¹ãã ãããã©ã°ã€ã³ãšã㊠sbomgen ãã€ããªã«çµã¿èŸŒãŸããŠããŸããåããªãªãŒã¹ã§ã¯ãApache CassandraãApache StrutsãCondaãSwift ããã±ãŒãžãAI ãšãŒãžã§ã³ãã³ã¬ã¯ã¿ãŒ (Amazon Q DeveloperãKiro CLIãClaude CodeãGitHub CopilotãOllama) ãªã©ã10 ãè¶
ããæ°ãããšã³ã·ã¹ãã ããã©ã°ã€ã³ãšããŠè¿œå ãããŸããã inspector-sbomgen ãã©ã°ã€ã³ã®ä»çµã¿ sbomgen ãã©ã°ã€ã³ã¯ 2 段éã®ãã€ãã©ã€ã³ã§åäœããŸãã æ€åº (discovery) â ã¢ãŒãã£ãã¡ã¯ãã®ãã¡ã€ã«ã·ã¹ãã ãã¹ãã£ã³ããã€ã³ã¹ããŒã«æžã¿ããã±ãŒãžã®ã¡ã¿ããŒã¿ãå«ããã¡ã€ã«ãç¹å®ããŸã åé (collection) â æ€åºãããåãã¡ã€ã«ãéãããã¡ã€ã«ã®å
容ãè§£æããŠãçµæã SBOM ã«ãããªãã·ã¥ããŸã å
éšã§ã¯ãã€ãã³ããã¹ãæ€åºãã©ã°ã€ã³ãšåéãã©ã°ã€ã³ãã€ãªãã§ããŸããæ€åºãã©ã°ã€ã³ã¯æ€åºãããã¡ã€ã«ã®äžèЧãã€ãã³ããšããŠãããªãã·ã¥ãã1 ã€ä»¥äžã®åéãã©ã°ã€ã³ããã®ã€ãã³ãããµãã¹ã¯ã©ã€ãããŠãããã±ãŒãžåéãããªã¬ãŒããŸããéçºè
ã«ãšã£ãŠã¯ããã㯠ãªãã¶ãŒããŒãã¿ãŒã³ ãšããŠããªãã¿ã®åäœã§ãããã ãã®åé¢ã«ããã1 ã€ã®æ€åºãã©ã°ã€ã³ãè€æ°ã®ã³ã¬ã¯ã¿ãŒã«ããŒã¿ãäŸçµŠã§ããŸããäŸãã°ãããã³ã¬ã¯ã¿ãŒã¯ããã±ãŒãžã¡ã¿ããŒã¿ãæœåºããå¥ã®ã³ã¬ã¯ã¿ãŒã¯ã·ãŒã¯ã¬ãããã¹ãã£ã³ããããã«å¥ã®ã³ã¬ã¯ã¿ãŒã¯ããªã·ãŒããã§ãã¯ããããšãã£ãæ§æãå¯èœã§ããååéãã©ã°ã€ã³ã¯ãèšç®ã³ã¹ãã®é«ãã¢ãŒãã£ãã¡ã¯ããã¡ã€ã«ã·ã¹ãã ã®åèµ°æ»ãè¡ãããšãªããåããã¡ã€ã«ãªã¹ããå©çšã§ããŸãã 5 åã§æžããæåã®ãã©ã°ã€ã³ inspector-sbomgen ã䜿ãã°ããã©ã°ã€ã³ç°å¢ãç°¡åã«ã»ããã¢ããã§ããŸãã plugin new ã³ãã³ãã§ sbomgen ã«æ°ãããã©ã°ã€ã³ã¯ãŒã¯ã¹ããŒã¹ãäœæããã --with-example ãã©ã°ãæå®ãããšãããã«å®è¡ã§ããæ€åºãã©ã°ã€ã³ãšåéãã©ã°ã€ã³ã®ãã¢ãã¯ãŒã¯ã¹ããŒã¹ã«çšæãããŸãã inspector-sbomgen plugin new --with-example äžèšã®ã³ãã³ããå®è¡ãããšããã©ã°ã€ã³åãšããã©ã°ã€ã³ã¯ãŒã¯ã¹ããŒã¹ãæ ŒçŽãããã£ã¬ã¯ããªã®å
¥åãæ±ããããŸããã«ã¹ã¿ã å€ãæå®ããããšããããã©ã«ãå€ããã®ãŸãŸäœ¿ãããšãã§ããŸãã Plugin name (identifies the software ecosystem your plugin will inventory, e.g. debian-dpkg, rhel-rpm, python-pip, cmake) [my-custom-ecosystem]: <enter> Project directory [my-sbomgen-plugins]: <enter> Created plugin "my-custom-ecosystem" in my-sbomgen-plugins/ ãªãã察å¿ããã³ãã³ãã©ã€ã³ã€ã³ã¿ãŒãã§ã€ã¹ (CLI) åŒæ°ã§ãã©ã°ã€ã³åãšãã£ã¬ã¯ããªãæå®ããã°ã察話圢åŒã®ããã³ãããã¹ãããã§ããŸãã inspector-sbomgen plugin new \ --with-example \ --name my-custom-ecosystem \ --path my-sbomgen-plugins ãã©ã°ã€ã³ã¯ãŒã¯ã¹ããŒã¹ãäœæãããšãinspector-sbomgen ã¯æ¬¡ã®ã¹ããããæ¡å
ããç»é¢ã衚瀺ããŸããéçºè
ã AI ã³ãŒãã£ã³ã°ã¢ã·ã¹ã¿ã³ãã«å¯ŸããŠã倿Žãå¿
èŠãªãœãŒã¹ãã¡ã€ã«ãé¢é£ããã¥ã¡ã³ãã®å Žæã瀺ããŠãããŸãã Next steps: Get started: 1. Open plugin folder in a code editor (VS Code recommended) 2. Add test files that your plugin will discover and parse (e.g., config files, lockfiles, binaries, etc.): my-sbomgen-plugins/discovery/cross-platform/extra-ecosystems/my-custom-ecosystem/_testdata/ Develop: 3. Edit discovery: my-sbomgen-plugins/discovery/cross-platform/extra-ecosystems/my-custom-ecosystem/init.lua 4. Edit collection: my-sbomgen-plugins/collection/cross-platform/extra-ecosystems/my-custom-ecosystem/init.lua Test: 5. Write unit tests: my-sbomgen-plugins/discovery/cross-platform/extra-ecosystems/my-custom-ecosystem/init_test.lua 6. Run unit tests: inspector-sbomgen plugin test --path my-sbomgen-plugins Deploy: 7. Distribute your plugin directory wherever you run inspector-sbomgen: inspector-sbomgen <arguments> --plugin-dir /path/to/my-sbomgen-plugins Example: inspector-sbomgen container --image alpine:latest -o /tmp/sbom.json --plugin-dir /path/to/my-sbomgen-plugins For code completion, install the VS Code Lua language server extension: https://luals.github.io/#vscode-install For more information: - Plugin guide: my-sbomgen-plugins/docs/sbomgen-plugin-developer-guide.md - Testing guide: my-sbomgen-plugins/docs/sbomgen-plugin-testing-guide.md - API reference: my-sbomgen-plugins/docs/sbomgen-plugin-api-reference.md - Documentation: https://docs.aws.amazon.com/inspector/latest/user/sbom-generator.html ãã©ã°ã€ã³ã¯ãŒã¯ã¹ããŒã¹ãã§ããã®ã§ããã®äžèº«ã詳ããèŠãŠã¿ãŸãããã tree my-sbomgen-plugins âââ AGENTS.md âââ collection â âââ cross-platform â âââ extra-ecosystems â âââ my-custom-ecosystem â âââ init.lua âââ discovery â âââ cross-platform â âââ extra-ecosystems â âââ my-custom-ecosystem â âââ _testdata â â âââ empty â â âââ example.lock â âââ init_test.lua â âââ init.lua âââ docs â âââ sbomgen-plugin-api-reference.md â âââ sbomgen-plugin-developer-guide.md â âââ sbomgen-plugin-testing-guide.md âââ library â âââ sbomgen.lua âââ README.md ã¹ãã£ãã©ãŒã«ãã£ã³ã°ããããããžã§ã¯ãã«ã¯ãåäœããæ€åºãã©ã°ã€ã³ãšåéãã©ã°ã€ã³ã®ãã¢ã _testdata/ é
äžã®ãã¹ããã£ã¯ã¹ãã£ã䜿ã£ãŠãã¹ãããŠããããã¹ããçµ±åéçºç°å¢ (IDE) 飿ºçšã® .vscode/settings.json ãéçºè
ããã¥ã¡ã³ãã®ããŒã«ã«ã³ããŒãå«ãŸããŠããŸãã ã¹ãã£ãã©ãŒã«ãã£ã³ã°ã¯ã人éãš AI ã³ãŒãã£ã³ã°ã¢ã·ã¹ã¿ã³ãã®äž¡æ¹ãèªã¿ãããããã«ãæå³çã«ç°¡æœã§å®çµããå
容ã«ãªã£ãŠããŸããåãã¡ã€ã«ã«ã¯ãããããã®é¢æ°ã®åœ¹å²ãšããã©ã°ã€ã³äœæè
ãèšè¿°ãã¹ãç®æã説æããæç¢ºãªã³ã¡ã³ããä»ããŠããŸãã ãã©ã°ã€ã³ããã¹ãããã«ã¯ããŸãããã±ãŒãžããã¯ãã¡ã€ã«ãã³ã³ãã€ã«æžã¿ãã€ããªãªã©ãã¹ãã£ã³å¯Ÿè±¡ãšãªããã®ãå¿
èŠã§ãããµã³ãã«ãã©ã°ã€ã³ã¯ã次ã®å
容ãæã€æ¶ç©ºã® example.lock ãã€ã³ãã³ããªåããŸãã my-package-alpha==1.0.0 my-package-beta==2.3.1 my-package-gamma==0.9.5 ä»å±ã®æ€åºãã©ã°ã€ã³ã¯ãã¢ãŒãã£ãã¡ã¯ãã®ãã¡ã€ã«ã·ã¹ãã å
ã§ example.lock ã®ã€ã³ã¹ã¿ã³ã¹ãæ¢ãæ¹æ³ãç¥ã£ãŠããŸãã -- my-custom-ecosystem discovery plugin -- Discovers example.lock files in the artifact file list. function discover() return sbomgen.find_files_by_name({"example.lock"}) end ãããŠãä»å±ã®åéãã©ã°ã€ã³ã¯ã example.lock ã®å
容ãè§£æããããã±ãŒãžæ
å ±ãåºå SBOM ã«ãããªãã·ã¥ããæ¹æ³ãç¥ã£ãŠããŸãã -- my-custom-ecosystem collection plugin -- Parses example.lock files and extracts package name and version. function collect(file_path) local content = sbomgen.read_file(file_path) if content == nil then return end for line in content:gmatch("[^\n]+") do local name, ver = line:match("^(.+)==(.+)$") if name and ver then sbomgen.push_package({ name = name, version = ver, purl_type = "generic", namespace = "my-custom-ecosystem", component_type = sbomgen.component_types.APPLICATION, }) end end end ãã¹ãã®å®è¡ ãã©ã°ã€ã³ã«ã¯ãã¹ããã¬ãŒã ã¯ãŒã¯ãçµã¿èŸŒãŸããŠãããããå®éã®ã¢ãŒãã£ãã¡ã¯ããã¹ãã£ã³ããåã«ããžãã¯ãæ€èšŒã§ããŸãããã¹ã㯠Lua ã§èšè¿°ãããã©ã°ã€ã³ãšåãå Žæã® init_test.lua ã«é
眮ããŠã _testdata/ å
ã®ãã£ã¯ã¹ãã£ããŒã¿ãåç
§ããŸãã function test_discovers_packages() local result = testing.scan_directory("_testdata") testing.assert_equals(3, #result.findings) testing.assert_equals("my-package-alpha", result.findings[1].name) testing.assert_equals("1.0.0", result.findings[1].version) end function test_no_findings_for_empty_directory() local result = testing.scan_directory("_testdata/empty") testing.assert_equals(0, #result.findings) end 次ã®ã³ãã³ãã§ãã¹ããå®è¡ããŸãã inspector-sbomgen plugin test --path my-sbomgen-plugins -v === RUN my-custom-ecosystem/discovery/init_test/test_discovers_packages --- PASS: my-custom-ecosystem/discovery/init_test/test_discovers_packages (0.04s) === RUN my-custom-ecosystem/discovery/init_test/test_no_findings_for_empty_directory --- PASS: my-custom-ecosystem/discovery/init_test/test_no_findings_for_empty_directory (0.04s) ok 2 tests passed ããã¯ãç§ãã¡ãèšèšãåŸãæãçãéçºã«ãŒãã§ããGo ããŒã«ãã§ãŒã³ããåãã«ãããã³ã³ããã®èµ·åãäžèŠã§ãããã¹ããæžããå®è¡ããç¹°ãè¿ãæ¹åããã ãã§ãã å®éã®ã¢ãŒãã£ãã¡ã¯ãã®ã¹ãã£ã³ ãã©ã°ã€ã³ãçµæãçæããã«ã¯ããã©ã°ã€ã³ãæ¢ããã¡ã€ã«ãå«ãã¢ãŒãã£ãã¡ã¯ãã inspector-sbomgen ã«äžããå¿
èŠããããŸãããµã³ãã«ãã©ã°ã€ã³ã®å Žåã example.lock ãã¡ã€ã«ãå«ãä»»æã®ãã£ã¬ã¯ããªã察象ã«ãªããŸããå
ã»ã©çæãããã£ã¯ã¹ãã£ãã¡ããã©è¯ã顿ã§ãã inspector-sbomgen directory \ --plugin-dir ./my-sbomgen-plugins \ --path ./my-sbomgen-plugins/discovery/cross-platform/extra-ecosystems/my-custom-ecosystem/_testdata \ -o sbom.json --plugin-dir ãã©ã°ã¯ãLua ãã©ã°ã€ã³ã®èªã¿èŸŒã¿å
ã inspector-sbomgen ã«äŒããŸããçæããã SBOM ã«ã¯ã example.lock å
ã® 3 ã€ã®ããã±ãŒãžããããã«å¯Ÿå¿ãã CycloneDX ã³ã³ããŒãã³ããå«ãŸããŸããäŸã以äžã«ç€ºããŸãã { "bom-ref": "comp-2", "type": "application", "name": "my-package-alpha", "version": "1.0.0", "scope": "optional", "purl": "pkg:generic/my-sbomgen-plugin/my-package-alpha@1.0.0", "properties": [ { "name": "amazon:inspector:sbom_generator:source_path", "value": "./my-sbomgen-plugins/example.lock" } ] } ãã©ã°ã€ã³ãçæãããã¹ãŠã®ã³ã³ããŒãã³ãã«ã¯ãåéå
ã®ãã¡ã€ã«ãèšé²ãã amazon:inspector:sbom_generator:source_path ããããã£ãä»ããŠããŸãããã®ãããã³ã³ããŒãã³ããçæå
ã®ã¢ãŒãã£ãã¡ã¯ããŸã§åžžã«ãã©ãããšãã§ããŸãã Amazon Inspector ã«ããè匱æ§ã¹ãã£ã³ ãã©ã°ã€ã³ãçæããããã±ãŒãžæ
å ±ã¯ãä»ã®ã³ã³ããŒãã³ããšåçã®æ£åŒãª SBOM ã³ã³ããŒãã³ããšããŠæ±ãããŸããAmazon Inspector ãå«ããCycloneDX SBOM ãèªã¿åãããããäžæµã®ããŒã«ã§å©çšã§ããŸããSBOM ã Amazon Inspector ã«éä¿¡ããŠè匱æ§åæãè¡ãã«ã¯ã --scan-sbom ãã©ã°ã远å ããŸã (æå¹ãª AWS ã¢ã«ãŠã³ããå¿
èŠã§ã)ã inspector-sbomgen directory \ --path ./my-sbomgen-plugins/discovery/cross-platform/extra-ecosystems/my-custom-ecosystem/_testdata \ --plugin-dir ./my-sbomgen-plugins \ --scan-sbom \ --aws-profile your_profile \ --aws-region your_region \ -o /tmp/sbom.json ãŸã£ããæ°ãããšã³ã·ã¹ãã ã«å¯Ÿå¿ããéã®éèŠãªæ³šæç¹ : ãã©ã°ã€ã³äœæè
ã¯ä»»æã®ãšã³ã·ã¹ãã ãã€ã³ãã³ããªåã§ããŸãããAmazon Inspector ãè匱æ§ãå ±åã§ããã®ã¯ãã¢ããã€ã¶ãªãååšããã³ã³ããŒãã³ãã«éãããŸããã¢ããã€ã¶ãªãã£ãŒãã«ãŸã å«ãŸããŠããªããšã³ã·ã¹ãã ã®ã³ã³ããŒãã³ãã Amazon Inspector ã«æž¡ããšãAmazon Inspector 㯠Component skipped: no supported rules found (ã³ã³ããŒãã³ãã¯ã¹ããããããŸãã: ãµããŒããããã«ãŒã«ãèŠã€ãããŸãã) ãšããããããã£ä»ãã§ã³ã³ããŒãã³ããè¿ããŸãã以äžã«äŸã瀺ããŸãã { "bom-ref": "comp-1", "name": "my-package-alpha", "properties": [ { "name": "amazon:inspector:sbom_scanner:path", "value": "my-sbomgen-plugins/discovery/cross-platform/extra-ecosystems/my-custom-ecosystem/_testdata/example.lock" }, { "name": "amazon:inspector:sbom_scanner:info", "value": "Component skipped: no supported rules found." } ], "purl": "pkg:generic/my-custom-ecosystem/my-package-alpha@1.0.0", "type": "application", "version": "1.0.0" } ããã¯ãšã©ãŒã§ã¯ãªããæ³å®ã©ããã®åäœã§ããSBOM ã¯æ£ããçæãããã³ã³ããŒãã³ãã¯åŒãç¶ã远跡ããã source_path ã«ãã£ãŠã©ã®ãã¡ã€ã«ããçæãããããæ£ç¢ºã«ææ¡ã§ããŸããAmazon Inspector ããã®ãšã³ã·ã¹ãã ã®ã¢ããã€ã¶ãªã«ãã¬ããžã远å ããã°ããã©ã°ã€ã³ãäžå倿Žããããšãªããåã SBOM ããè匱æ§ã®æ€åºçµæãçæãããããã«ãªããŸããAmazon Inspector ããã§ã«ãµããŒãããŠãããšã³ã·ã¹ãã ã«ã€ããŠã¯ããã©ã°ã€ã³ãçæããã³ã³ããŒãã³ãã¯çµã¿èŸŒã¿ã¹ãã£ããŒãçæããã³ã³ããŒãã³ããšåºå¥ãªãæ±ãããŸãã ãã¡ãŒã¹ãã¯ã©ã¹ã® IDE ãµããŒã AWS ã¯ããã©ã°ã€ã³ãæžããšãã®çç£æ§ãšå¹çãéèŠããŠããŸãããªãŒãã³ã³ããªãŒãã®ãããªã¢ãã³ãªäŸ¿å©æ©èœãªãã§ Lua ãæžãã®ã¯å¿«é©ãšã¯èšããŸããããã®ããã plugin new ã³ãã³ãã§ã¹ãã£ãã©ãŒã«ãã£ã³ã°ããããã¹ãŠã®ãã©ã°ã€ã³ãããžã§ã¯ãã«ã¯ã library/sbomgen.lua å®çŸ©ãã¡ã€ã«ãšãããã VS Code ã® Lua Language Server æ¡åŒµæ©èœã«èªåçã«æ¥ç¶ãã .vscode/settings.json ãä»å±ããŸãã ã³ãŒãè£å®ãš IDE ãµããŒããå©çšããã«ã¯ããŸã sumneko.lua æ¡åŒµæ©èœãã€ã³ã¹ããŒã«ããVS Code ã§ãã©ã°ã€ã³ãããžã§ã¯ããéããŸããããã«ããããã¹ãŠã® sbomgen.* 颿°ã§æ¬¡ã®æ©èœã䜿ããããã«ãªããŸãã åæ
å ±ä»ãã®ãã©ã¡ãŒã¿ãã³ã ãããŒæã®ããã¥ã¡ã³ã衚瀺 宿°ã®ãªãŒãã³ã³ããªãŒã ( sbomgen.component_types.* ã sbomgen.groups.* ã sbomgen.platform.* ) 颿°åŒã³åºãã®åãã§ã㯠push_package() ã«å¿
é ãã£ãŒã«ããæ¬ ããŠããå Žåã®ã€ã³ã©ã€ã³èŠå ãã®å®çŸ©ãã¡ã€ã«ã®ãããã§ãAI ã³ãŒãã£ã³ã°ã¢ã·ã¹ã¿ã³ãã«ãããã©ã°ã€ã³éçºãããŸãæ©èœããŸããåæ
å ±ãšããã¥ã¡ã³ããããŒã«ã§èªã¿åãã圢åŒã§åã蟌ãŸããŠãããããã¢ã·ã¹ã¿ã³ãã¯ãçŽ ã® Lua ã§èšè¿°ããå Žåã«æ¯ã¹ãŠã¯ããã«å°ãªã人æã®ç¢ºèªã§æ£ãããã©ã°ã€ã³ã³ãŒããçæã§ããŸãã å®å
šãªåºç€ ãã©ã°ã€ã³ã¯ inspector-sbomgen ãšåãããã»ã¹å
ã§å®éã®ã³ãŒããå®è¡ããããããã®ã³ãŒããå®å®ããã»ãã¥ãªãã£ã匷åãããç¶æ
ãä¿ãŠãããã«å®è¡ç°å¢ãèšèšããŸããããã¹ãŠã® Lua ãã©ã°ã€ã³ã¯éé¢ããããµã³ãããã¯ã¹å
ã§å®è¡ãããŸããå Lua ä»®æ³ãã·ã³ (VM) ã¯ãå®å
šãªæäœã®ã¿ãèš±å¯ãããããã«ãLua æšæºã©ã€ãã©ãªã®å¶éããããµãã»ããã«ã®ã¿ã¢ã¯ã»ã¹ã§ããŸãã ãã¡ã€ã«ã·ã¹ãã ãžã®çŽæ¥ã¢ã¯ã»ã¹ã®çŠæ¢ â Lua ã® io ã©ã€ãã©ãªã¯ããŒããããŸããããã¹ãŠã®ãã¡ã€ã«æäœã¯ sbomgen.* 颿°ãçµç±ã㊠sbomgen ã®å
éšåŠçã«ã«ãŒãã£ã³ã°ãããããããã£ã¹ã¯äžã®ãã£ã¬ã¯ããªãã³ã³ããã€ã¡ãŒãžãå§çž®ã¢ãŒã«ã€ããããŠã³ããããããªã¥ãŒã ã®ããããã¹ãã£ã³ããå Žåã§ãããã©ã°ã€ã³ã¯åãããã«åäœããŸã ãµãããã»ã¹ã®å®è¡ãç°å¢ã®å€æŽã®çŠæ¢ â Lua ã® os ã©ã€ãã©ãªã¯ãããã¯ãããŠããããããã©ã°ã€ã³ã¯ããã»ã¹ã®èµ·åãç°å¢å€æ°ã®å€æŽãã¢ãŒãã£ãã¡ã¯ãå€ã®ãã¡ã€ã«ãžã®ã¢ã¯ã»ã¹ãã§ããŸãã VM ã®ã€ã³ããã¹ãã¯ã·ã§ã³ã®çŠæ¢ â Lua ã® debug ã©ã€ãã©ãªã¯ãããã¯ãããŠããŸã ç¡å¶éãªã³ãŒãããŒãã®çŠæ¢ â dofile ã loadfile ã loadstring ã¯åé€ãããŠããŸãã require() ã¯å©çšã§ããŸããããã©ã°ã€ã³èªèº«ã®ãã£ã¬ã¯ããªããªãŒã«å¶éãããŠããããããã©ã°ã€ã³ã¯èªèº«ã®ãã«ããŒã¢ãžã¥ãŒã«ãå
±æã§ããäžæ¹ãä»ã®ãã©ã°ã€ã³ãã·ã¹ãã ãã¹ããã³ãŒããããŒãããããšã¯ã§ããŸãã ãã©ã°ã€ã³ãæªåŠçã® Lua ãšã©ãŒãçºçãããå Žåãinspector-sbomgen ã¯èŠåããã°ã«èšé²ããæ¬¡ã®ãã¡ã€ã«ãŸãã¯ãã©ã°ã€ã³ã®åŠçãç¶è¡ããŸãã1 ã€ã®äžå
·åã®ãããã©ã°ã€ã³ãä»ã®ãã©ã°ã€ã³ã®å®è¡ã劚ããããšã¯ãããŸããããŸãããã©ã°ã€ã³ã inspector-sbomgen ã®çµã¿èŸŒã¿ããã±ãŒãžã³ã¬ã¯ã¿ãŒãäžæžãããããšããããŸããããã¹ãŠã®ãã©ã°ã€ã³ã¯äžæã®ååã宣èšããå¿
èŠããããã«ã¹ã¿ã ãã©ã°ã€ã³ãå
¬åŒã®çµã¿èŸŒã¿ãã©ã°ã€ã³ã§ãã§ã«äœ¿ãããŠããååã䜿çšããå Žåããã®ã«ã¹ã¿ã ãã©ã°ã€ã³ã¯èŠåä»ãã§ã¹ããããããŸããçµã¿èŸŒã¿ãã©ã°ã€ã³ãåžžã«åªå
ããããããã«ã¹ã¿ã ãã©ã°ã€ã³ãããŒã«èªèº«ã®æ€åºåäœãã²ããã«çœ®ãæãããé ãããããããšã¯ã§ããŸããã æ¬¡ã®ã¹ããã ä»ããç¬èªã®ãã©ã°ã€ã³ã®æ§ç¯ãå§ããã«ã¯ãæ¬¡ã®æé ã«åŸã£ãŠãã ããã Amazon Inspector ãŠãŒã¶ãŒã¬ã€ã ããææ°ã® inspector-sbomgen ãã€ã³ã¹ããŒã«ããŸã inspector-sbomgen plugin new --with-example ãå®è¡ããããã³ããã«åŸããŸã inspector-sbomgen plugin test --path ./my-sbomgen-plugins -v ãå®è¡ãããµã³ãã«ãã¹ãããã¹ããããšã確èªããŸã ãµã³ãã«ã®ããžãã¯ããç¬èªã®ãšã³ã·ã¹ãã åãã®æ€åºããžãã¯ã«çœ®ãæããŸã ãã¹ãŠã®é¢æ°ã宿°ãã³ãã³ãã«ã€ããŠã¯ã以äžã®å®å
šãªãªãã¡ã¬ã³ã¹ããã¥ã¡ã³ãã§è©³ãã説æããŠããŸãã Lua ãã©ã°ã€ã³éçºè
ã¬ã€ã : ãã©ã°ã€ã³ã®æŠå¿µããã£ã¬ã¯ããªæ§é ãã©ã€ããµã€ã¯ã« Lua ãã©ã°ã€ã³ãã¹ãã¬ã€ã : ãã¹ããã¬ãŒã ã¯ãŒã¯ã®ãªãã¡ã¬ã³ã¹ãšãã£ã¯ã¹ãã£ã®èŠçŽ Lua ãã©ã°ã€ã³ API ãªãã¡ã¬ã³ã¹ : sbomgen.* API ã®å®å
šãªã«ã¿ãã° ãŸãšã çµç¹ç¬èªã®ããã¯ãã¡ã€ã«åœ¢åŒãžã®å¯Ÿå¿ã®è¿œå ãæ°ãããªãŒãã³ãœãŒã¹ãšã³ã·ã¹ãã åãæ€åºã®ãããã¿ã€ãã³ã°ããããã¯èªäœã¹ãã£ããŒããçµç¹å
šäœã§å€§èŠæš¡ã«éçšã§ããä»çµã¿ãžã®çœ®ãæããªã©ãã©ã®ãããªçšéã§ãã£ãŠãããã®ãã©ã°ã€ã³ã·ã¹ãã ã¯ãã¢ã€ãã¢ããåäœãã SBOM ãŸã§ã®éã®ããã§ããéãçãããããã«èšèšãããŠããŸããçãããããã䜿ã£ãŠäœãäœãã®ãããšãŠã楜ãã¿ã«ããŠããŸãã ãã®èšäºã«é¢ããã質åãããå Žåã¯ã AWS ãµããŒãã«ãåãåãããã ãã ã Michael Long Michael 㯠AWS ã® Amazon Inspector æ
åœ Senior Security Researcher ã§ããAmazon Inspector SBOM Generator ãš Amazon Inspector for GitHub Actions ã®ç ç©¶éçºãçããŠããŸããAWS å
¥ç€Ÿåã¯ãMITRE ATT&CK ããŒã ã§ principal adversary emulation engineer ãåããŠããŸããããŸããU.S. Army (ç±³åœéžè») ã§çŽ 10 幎éãè»äºæ
å ±ããã³ãµã€ããŒäœæŠã«åŸäºããŸããã Charlie Bacon Charlie 㯠AWS ã® Amazon Inspector æ
åœ Head of Security Engineering and Research ã§ããAmazon Inspector ãä»ã® Amazon Security ã®è匱æ§ç®¡çããŒã«ãæ¯ããè匱æ§ã¹ãã£ã³ããã³ã€ã³ãã³ããªåéãµãŒãã¹ãæ
åœããããŒã ãçããŠããŸããAWS å
¥ç€Ÿåã¯ãéèæ¥çãšã»ãã¥ãªãã£æ¥çã§ 20 幎éã«ããããç ç©¶ãšè£œåéçºã®äž¡åéã§äžçŽè·ãåããŸããã Anthony Verleysen Anthony 㯠Amazon Inspector æ
åœã® Senior Technical Product Management ã§ããAmazon Inspector ã®åã¯ãAWS Systems Manager ã® Product Manager ãšã㊠Node Management æ©èœãæ
åœããŠããŸãããä»äºä»¥å€ã§ã¯ãããã¹ãšãµãã«ãŒã«ç±å¿ã«åãçµãã§ããŸãã æ¬ããã°ã¯ Security Solutions Architect ã® äžå³¶ ç« å ã翻蚳ããŸããã
â» ãã®èšäºã¯ãçè
ã AI ãšãŒãžã§ã³ã(Claude Code)ãšå¯Ÿè©±ããªããå·çããŸãããèªäº ...
åç»
該åœããã³ã³ãã³ããèŠã€ãããŸããã§ãã










