Translated ['src/pentesting-cloud/aws-security/aws-services/aws-organiza

This commit is contained in:
Translator
2025-02-17 17:14:59 +00:00
parent 1514d11eee
commit 0246aa4149
11 changed files with 42 additions and 42 deletions
@@ -4,13 +4,13 @@
## 기본 정보
AWS Organizations는 추가 비용 없이 새로운 AWS 계정을 생성할 수 있도록 합니다. 리소스쉽게 할당할 수 있으며, 계정 효율적으로 그룹화고, 개별 계정이나 그룹에 거버넌스 정책을 적용하여 조직 내 관리 및 통제를 강화합니다.
AWS Organizations는 추가 비용 없이 새로운 AWS 계정을 생성할 수 있도록 합니다. 리소스는 손쉽게 할당할 수 있으며, 계정 효율적으로 그룹화할 수 있고, 개별 계정이나 그룹에 거버넌스 정책을 적용하여 조직 내 관리 및 통제를 강화합니다.
주요 사항:
- **새 계정 생성**: AWS Organizations는 추가 요금 없이 새로운 AWS 계정을 생성할 수 있습니다.
- **리소스 할당**: 계정 간 리소스를 할당하는 과정을 간소화합니다.
- **계정 그룹화**: 계정을 함께 그룹화하여 관리원활해집니다.
- **계정 그룹화**: 계정을 함께 그룹화하여 관리간소화합니다.
- **거버넌스 정책**: 계정이나 계정 그룹에 정책을 적용하여 조직 전반에 걸쳐 준수 및 거버넌스를 보장합니다.
자세한 정보는 다음에서 확인할 수 있습니다:
@@ -4,7 +4,7 @@
## SQS
Amazon Simple Queue Service (SQS)는 **완전 관리형 메시지 큐 서비스**로 제공됩니다. 이 서비스의 주요 기능은 마이크로서비스, 분산 시스템 및 서버리스 애플리케이션의 확장 및 분리를 지원하는 것입니다. 이 서비스는 종종 복잡하고 자원을 많이 소모하는 메시지 지향 미들웨어를 관리하고 운영할 필요성을 제거하도록 설계되었습니다. 이러한 복잡성의 제거는 개발자가 자신의 작업에서 더 혁신적이고 차별화된 측면에 노력을 집중할 수 있도록 합니다.
Amazon Simple Queue Service (SQS)는 **완전 관리형 메시지 큐 서비스**로 제공됩니다. 이 서비스의 주요 기능은 마이크로서비스, 분산 시스템 및 서버리스 애플리케이션의 확장 및 분리를 지원하는 것입니다. 이 서비스는 종종 복잡하고 자원 집약적인 메시지 지향 미들웨어를 관리하고 운영할 필요성을 제거하도록 설계되었습니다. 이러한 복잡성의 제거는 개발자가 작업의 보다 혁신적이고 차별화된 측면에 노력을 집중할 수 있도록 합니다.
### Enumeration
```bash
@@ -4,7 +4,7 @@
## Queue
자세한 정보는 다음을 확인하세요:
자세한 내용은 다음을 확인하세요:
{{#ref}}
../az-services/az-queue-enum.md
@@ -20,7 +20,7 @@ az storage message peek --queue-name <queue_name> --account-name <storage_accoun
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/process/action`
이 권한을 통해 공격자는 Azure Storage Queue에서 메시지를 검색하고 처리할 수 있습니다. 이는 그들이 메시지 내용을 읽고 이를 처리된 것으로 표시하여 합법적인 시스템에서 숨길 수 있음을 의미합니다. 이로 인해 민감한 데이터가 노출되거나 메시지 처리 방식에 중단이 발생하거나, 메시지를 의도된 사용자에게 사용할 수 없게 만들어 중요한 워크플로가 중단될 수 있습니다.
이 권한을 통해 공격자는 Azure Storage Queue에서 메시지를 검색하고 처리할 수 있습니다. 이는 그들이 메시지 내용을 읽고 이를 처리된 것으로 표시하여 합법적인 시스템에서 숨길 수 있음을 의미합니다. 이로 인해 민감한 데이터가 노출되거나 메시지 처리 방식에 중단이 발생하거나, 메시지를 의도된 사용자에게 사용할 수 없게 만들어 중요한 워크플로가 중단될 수 있습니다.
```bash
az storage message get --queue-name <queue_name> --account-name <storage_account>
```
@@ -32,7 +32,7 @@ az storage message put --queue-name <queue-name> --content "Injected malicious m
```
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/write`
이 권한은 공격자가 Azure Storage Queue에 새로운 메시지를 추가하거나 기존 메시지를 업데이트할 수 있게 해줍니다. 이를 사용하여 해로운 콘텐츠를 삽입하거나 기존 메시지를 변경할 수 있으며, 이는 큐에 의존하는 애플리케이션을 오도하거나 시스템에서 원치 않는 동작을 유발할 수 있습니다.
이 권한은 공격자가 Azure Storage Queue에 새로운 메시지를 추가하거나 기존 메시지를 업데이트할 수 있게 해줍니다. 이를 사용하여 해로운 콘텐츠를 삽입하거나 기존 메시지를 변경할 수 있으며, 이는 큐에 의존하는 시스템에서 애플리케이션을 오도하거나 원치 않는 동작을 유발할 수 있습니다.
```bash
az storage message put --queue-name <queue-name> --content "Injected malicious message" --account-name <storage-account>
@@ -46,7 +46,7 @@ az storage message update --queue-name <queue-name> \
```
### Actions: `Microsoft.Storage/storageAccounts/queueServices/queues/delete`
이 권한은 공격자가 스토리지 계정 내의 큐를 삭제할 수 있게 해줍니다. 이 기능을 활용함으로써 공격자는 큐와 그에 연결된 모든 메시지를 영구적으로 제거할 수 있으며, 이는 워크플로우에 심각한 중단을 초래하고 영향을 받는 큐에 의존하는 애플리케이션에 중요한 데이터 손실을 초래할 수 있습니다. 이 작업은 시스템의 필수 구성 요소를 제거하여 서비스를 방해하는 데에도 사용될 수 있습니다.
이 권한은 공격자가 스토리지 계정 내의 큐를 삭제할 수 있게 니다. 이 기능을 활용함으로써 공격자는 큐와 그에 연결된 모든 메시지를 영구적으로 제거할 수 있으며, 이는 워크플로우에 심각한 중단을 초래하고 영향을 받는 큐에 의존하는 애플리케이션에 중요한 데이터 손실을 초래할 수 있습니다. 이 작업은 시스템의 필수 구성 요소를 제거하여 서비스를 방해하는 데에도 사용될 수 있습니다.
```bash
az storage queue delete --name <queue-name> --account-name <storage-account>
```
@@ -4,7 +4,7 @@
## Service Bus
자세한 정보는 다음을 확인하세요:
자세한 내용은 다음을 확인하세요:
{{#ref}}
../az-services/az-servicebus-enum.md
@@ -36,7 +36,7 @@ az servicebus topic subscription delete --resource-group <ResourceGroupName> --n
```
### Actions: `Microsoft.ServiceBus/namespaces/queues/write` (`Microsoft.ServiceBus/namespaces/queues/read`)
Azure Service Bus 큐를 생성하거나 수정할 수 있는 권한이 있는 공격자는 이를 이용해 데이터를 가로채거나, 워크플로를 방해하거나, 무단 접근을 가능하게 할 수 있습니다. 그들은 악의적인 엔드포인트로 메시지를 전달하도록 설정하거나, 메시지 TTL을 조정하여 데이터를 부적절하게 유지하거나 삭제하거나, 오류 처리를 방해하기 위해 데드레터링을 활성화하는 등 중요한 구성을 변경할 수 있습니다. 또한, 큐 크기, 잠금 기간 또는 상태를 조작하여 서비스 기능을 방해하거나 탐지를 피할 수 있어, 이는 중요한 사후 활용 위험이 됩니다.
Azure Service Bus 큐를 생성하거나 수정할 수 있는 권한이 있는 공격자는 데이터를 가로채거나, 워크플로를 방해하거나, 무단 액세스를 가능하게 하는 데 이를 악용할 수 있습니다. 그들은 악 엔드포인트로 메시지를 전달하거나, 메시지 TTL을 조정하여 데이터를 부적절하게 유지하거나 삭제하거나, 오류 처리를 방해하기 위해 데드레터링을 활성화하는 등 중요한 구성을 변경할 수 있습니다. 또한, 큐 크기, 잠금 기간 또는 상태를 조작하여 서비스 기능을 방해하거나 탐지를 피할 수 있어, 이는 중요한 포스트 익스플로잇 위험입니다.
```bash
az servicebus queue create --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --name <QueueName>
az servicebus queue update --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --name <QueueName>
@@ -50,7 +50,7 @@ az servicebus topic update --resource-group <ResourceGroupName> --namespace-name
```
### Actions: `Microsoft.ServiceBus/namespaces/topics/subscriptions/write` (`Microsoft.ServiceBus/namespaces/topics/subscriptions/read`)
구독을 생성하거나 수정할 수 있는 권한이 있는 공격자는 Azure Service Bus 주제 내에서 구독을 수정하기 위해 Action: `Microsoft.ServiceBus/namespaces/topics/subscriptions/read`도 필요합니다. 이를 이용해 메시지 워크플로를 가로채거나, 재배치하거나, 방해할 수 있습니다. az servicebus topic subscription update와 같은 명령을 사용하여 메시지를 전환하기 위해 데드 레터링을 활성화하거나, 메시지를 무단 엔드포인트로 전달하거나, TTL 및 잠금 기간을 수정하여 메시지 전달을 유지하거나 방해할 수 있습니다. 또한, 상태 또는 최대 전달 수 설정을 변경하여 운영을 방해하거나 탐지를 피할 수 있으며, 구독 제어는 사후 활용 시나리오에서 중요한 측면이 됩니다.
구독을 생성하거나 수정할 수 있는 권한이 있는 공격자는 Azure Service Bus 주제 내에서 구독을 수정하기 위해 Action: `Microsoft.ServiceBus/namespaces/topics/subscriptions/read`도 필요합니다. 이를 해 메시지 워크플로를 가로채거나, 재배치하거나, 방해할 수 있습니다. az servicebus topic subscription update와 같은 명령을 사용하여 메시지를 전환하기 위해 데드 레터링을 활성화하거나, 메시지를 무단 엔드포인트로 전달하거나, TTL 및 잠금 기간을 수정하여 메시지 전달을 유지하거나 방해할 수 있습니다. 또한, 상태 또는 최대 전달 수 설정을 변경하여 작업을 방해하거나 탐지를 피할 수 있으며, 구독 제어는 사후 활용 시나리오에서 중요한 측면이 됩니다.
```bash
az servicebus topic subscription create --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --topic-name <TopicName> --name <SubscriptionName>
az servicebus topic subscription update --resource-group <ResourceGroupName> --namespace-name <NamespaceName> --topic-name <TopicName> --name <SubscriptionName>
@@ -4,7 +4,7 @@
## SQL Database Post Exploitation
SQL Database에 대한 자세한 내용은 다음을 확인하세요:
SQL Database에 대한 자세한 정보는 다음을 확인하세요:
{{#ref}}
../az-services/az-sql.md
@@ -12,7 +12,7 @@ SQL Database에 대한 자세한 내용은 다음을 확인하세요:
### `Microsoft.Sql/servers/databases/read`, `Microsoft.Sql/servers/read` && `Microsoft.Sql/servers/databases/write`
이 권한을 통해 공격자는 손상된 환경 내에서 데이터베이스를 생성하고 업데이트할 수 있습니다. 이 후속 활동은 공격자가 악성 데이터를 추가하거나 데이터베이스 구성을 수정하거나 추가적인 지속성을 위한 백도어를 삽입할 수 있게 하여, 운영을 방해하거나 추가적인 악의적인 행동을 가능하게 할 수 있습니다.
이 권한을 통해 공격자는 손상된 환경 내에서 데이터베이스를 생성하고 업데이트할 수 있습니다. 이 사후 활용 활동은 공격자가 악성 데이터를 추가하거나 데이터베이스 구성을 수정하거나 추가적인 지속성을 위한 백도어를 삽입할 수 있게 하여, 운영을 방해하거나 추가적인 악의적인 행동을 가능하게 할 수 있습니다.
```bash
# Create Database
az sql db create --resource-group <resource-group> --server <server-name> --name <new-database-name>
@@ -86,7 +86,7 @@ az sql db export \
```
### `Microsoft.Sql/servers/databases/import/action`
이 권한을 사용하면 Azure SQL Server에 데이터베이스를 가져올 수 있습니다. 이 권한을 가진 공격자 또는 승인된 사용자는 악의적이거나 조작된 데이터베이스를 업로드할 수 있습니다. 이는 민감한 데이터에 대한 제어를 얻거나 가져온 데이터베이스 내에 해로운 스크립트나 트리거를 삽입하는 결과를 초래할 수 있습니다. 추가로, Azure의 자신의 서버로 가져올 수 있습니다. 참고: 서버는 Azure 서비스와 리소스가 서버에 접근할 수 있도록 허용해야 합니다.
이 권한을 사용하면 Azure SQL Server에 데이터베이스를 가져올 수 있습니다. 이 권한을 가진 공격자 또는 승인된 사용자는 악성 또는 조작된 데이터베이스를 업로드할 수 있습니다. 이는 민감한 데이터에 대한 제어를 얻거나 가져온 데이터베이스 내에 유해한 스크립트나 트리거를 삽입하는 결과를 초래할 수 있습니다. 추가로, Azure의 자신의 서버로 가져올 수 있습니다. 참고: 서버는 Azure 서비스와 리소스가 서버에 접근할 수 있도록 허용해야 합니다.
```bash
az sql db import --admin-user <admin-user> \
--admin-password <admin-password> \
@@ -20,7 +20,7 @@ az storage message peek --queue-name <queue_name> --account-name <storage_accoun
### DataActions: `Microsoft.Storage/storageAccounts/queueServices/queues/messages/process/action`
이 권한을 통해 공격자는 Azure Storage Queue에서 메시지를 검색하고 처리할 수 있습니다. 이는 그들이 메시지 내용을 읽고 이를 처리된 것으로 표시하여 합법적인 시스템에서 숨길 수 있음을 의미합니다. 이로 인해 민감한 데이터가 노출되거나 메시지 처리 방식에 중단이 발생하거나, 메시지를 의도된 사용자에게 사용할 수 없게 만들어 중요한 워크플로가 중단될 수 있습니다.
이 권한을 통해 공격자는 Azure Storage Queue에서 메시지를 검색하고 처리할 수 있습니다. 이는 그들이 메시지 내용을 읽고 이를 처리된 것으로 표시하여 합법적인 시스템에서 숨길 수 있음을 의미합니다. 이로 인해 민감한 데이터가 노출되거나 메시지 처리 방식에 중단이 발생하거나, 메시지를 의도된 사용자에게 사용할 수 없게 만들어 중요한 워크플로가 중단될 수 있습니다.
```bash
az storage message get --queue-name <queue_name> --account-name <storage_account>
```
@@ -46,7 +46,7 @@ az storage message update --queue-name <queue-name> \
```
### Action: `Microsoft.Storage/storageAccounts/queueServices/queues/write`
이 권한은 공격자가 스토리지 계정 내에서 큐 및 그 속성을 생성하거나 수정할 수 있게 해줍니다. 이를 통해 무단 큐를 생성하거나 메타데이터를 수정하거나 접근 제어 목록(ACL)을 변경하여 접근을 허용하거나 제한할 수 있습니다. 이 기능은 워크플로를 방해하거나 악성 데이터를 주입하거나 민감한 정보를 유출하거나 큐 설정을 조작하여 추가 공격을 가능하게 할 수 있습니다.
이 권한은 공격자가 스토리지 계정 내에서 큐 및 그 속성을 생성하거나 수정할 수 있게 니다. 이를 통해 무단 큐를 생성하거나 메타데이터를 수정하거나 접근 제어 목록(ACL)을 변경하여 접근을 허용하거나 제한할 수 있습니다. 이 기능은 워크플로를 방해하거나 악성 데이터를 주입하거나 민감한 정보를 유출하거나 큐 설정을 조작하여 추가 공격을 가능하게 할 수 있습니다.
```bash
az storage queue create --name <new-queue-name> --account-name <storage-account>
@@ -41,7 +41,7 @@ az servicebus namespace authorization-rule update \
```
### Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/ListKeys/action OR Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/regenerateKeys/action
Service Bus 네임스페이스 내의 특정 주제와 큐는 자체 권한 부여 규칙을 가질 수 있으며, 이를 통해 엔터티에 대한 접근을 제어할 수 있습니다. 이러한 권한을 통해 **이러한 로컬 권한 부여 규칙의 키를 검색하거나 재생성할 수 있으며**, 이를 통해 엔터티로 인증하고 메시지를 보내거나 받을 수 있으며, 구독을 관리하거나 시스템과 상호작용하여 운영을 방해하거나 유효한 사용자를 가장하거나 메시징 워크플로에 악성 데이터를 주입할 수 있습니다.
Service Bus 네임스페이스 내의 특정 주제와 큐는 자체 권한 부여 규칙을 가질 수 있으며, 이를 통해 엔터티에 대한 액세스를 제어할 수 있습니다. 이러한 권한을 통해 **이러한 로컬 권한 부여 규칙의 키를 검색하거나 재생성할 수 있으며**, 이를 통해 엔터티로 인증하고 메시지를 보내거나 받을 수 있으며, 구독을 관리하거나 시스템과 상호작용하여 운영을 방해하거나 유효한 사용자를 가장하거나 메시징 워크플로에 악성 데이터를 주입할 수 있습니다.
```bash
# List keys (topics)
az servicebus topic authorization-rule keys list --resource-group <res-group> --namespace-name <namespace-name> --topic-name <topic-name> --name <auth-rule-name>
@@ -66,9 +66,9 @@ az servicebus topic authorization-rule create --resource-group <res-group> --nam
az servicebus queue authorization-rule create --resource-group <res-group> --namespace-name <namespace-name> --queue-name <queue-name> --name <auth-rule-name> --rights Manage Listen Send
```
>[!WARNING]
>이 명령은 키로 응답하지 않으므로 권한 상승을 위해 이전 명령(및 권한)으로 키를 가져와야 합니다.
>이 명령은 키로 응답하지 않으므로, 권한 상승을 위해 이전 명령(및 권한)으로 키를 가져와야 합니다.
또한, 해당 명령(`Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/read`)을 통해 Azure CLI를 사용하여 이 작업을 수행하면 기존 권한 규칙을 업데이트하고 다음 명령으로 더 많은 권한을 부여할 수 있습니다(부족한 경우).
또한, 해당 명령(`Microsoft.ServiceBus/namespaces/[queues|topics]/authorizationRules/read`)을 Azure CLI를 통해 수행하면, 기존 권한 규칙을 업데이트하고 다음 명령으로 더 많은 권한을 부여할 수 있습니다(부족한 경우).
```bash
# In a topic
az servicebus topic authorization-rule update --resource-group <res-group> --namespace-name <namespace-name> --topic-name <topic-name> --name <auth-rule-name> --rights Manage Listen Send
@@ -131,7 +131,7 @@ az rest --method post \
```
### Receive with keys (Microsoft.ServiceBus/namespaces/authorizationRules/listkeys/action OR Microsoft.ServiceBus/namespaces/authorizationRules/regenerateKeys/action)
PrimaryConnectionString를 검색할 수 있으며, 이는 Service Bus 네임스페이스의 자격 증명 역할을 합니다. 이 연결 문자열을 사용하여 네임스페이스 내의 모든 큐 또는 구독에서 메시지를 수신할 수 있으며, 이는 잠재적으로 민감하거나 중요한 데이터에 대한 접근을 허용하고, 데이터 유출을 가능하게 하거나 메시지 처리 및 애플리케이션 워크플로에 간섭할 수 있습니다. 이 방법은 `--disable-local-auth`가 false로 설정된 경우에 작동합니다.
PrimaryConnectionString를 검색할 수 있으며, 이는 Service Bus 네임스페이스의 자격 증명 역할을 합니다. 이 연결 문자열을 사용하여 네임스페이스 내의 모든 큐 또는 구독에서 메시지를 수신할 수 있으며, 이는 잠재적으로 민감하거나 중요한 데이터에 대한 접근을 허용하고, 데이터 유출을 가능하게 하거나, 메시지 처리 및 애플리케이션 워크플로에 간섭할 수 있습니다. 이 방법은 `--disable-local-auth`가 false로 설정된 경우에 작동합니다.
```python
import asyncio
from azure.servicebus.aio import ServiceBusClient
@@ -12,7 +12,7 @@ SQL Database에 대한 자세한 정보는 다음을 확인하세요:
### `Microsoft.Sql/servers/read` && `Microsoft.Sql/servers/write`
이 권한을 가진 사용자는 Azure SQL 서버를 업데이트하거나 생성하고, 관리 자격 증명을 포함한 중요한 구성을 수정하여 권한 상승을 수행할 수 있습니다. 이 권한은 사용자가 SQL 서버 관리자 비밀번호를 포함한 서버 속성을 업데이트할 수 있게 하여, 서버에 대한 무단 접근 또는 제어를 가능하게 합니다. 또한 새로운 서버를 생성할 수 있어, 악의적인 목적으로 그림자 인프라를 도입할 수 있습니다. "Microsoft Entra Authentication Only"가 비활성화된 환경에서는 SQL 기반 인증을 악용하여 무제한 접근을 얻을 수 있으므로 특히 중요해집니다.
이 권한을 가진 사용자는 Azure SQL 서버를 업데이트하거나 생성하고, 관리 자격 증명을 포함한 중요한 구성을 수정하여 권한 상승을 수행할 수 있습니다. 이 권한은 사용자가 SQL 서버 관리자 비밀번호를 포함한 서버 속성을 업데이트할 수 있게 하여, 무단 접근 또는 서버에 대한 제어를 가능하게 합니다. 또한 새로운 서버를 생성할 수 있어, 악의적인 목적으로 그림자 인프라를 도입할 수 있습니다. "Microsoft Entra Authentication Only"가 비활성화된 환경에서는 SQL 기반 인증을 악용하여 무제한 접근을 얻을 수 있으므로 특히 중요해집니다.
```bash
# Change the server password
az sql server update \
@@ -28,14 +28,14 @@ az sql server create \
--admin-user <admin_username> \
--admin-password <admin_passwor d>
```
또한 비공개 엔드포인트가 아닌 곳에서 접근하려면 공 액세스를 활성화해야 합니다. 활성화하려면:
또한 비공개 엔드포인트가 아닌 곳에서 접근하려면 공 액세스를 활성화해야 합니다. 활성화하려면:
```bash
az sql server update \
--name <server-name> \
--resource-group <resource-group> \
--enable-public-network true
```
또한, 권한을 통해 할당된 ID를 활성화하고 서버에 연결된 관리 ID로 작업할 수 있습니다. 예를 들어, Azure Storage에 접근할 수 있는 관리 ID가 있는 경우:
또한, 권한을 사용하여 할당된 ID를 활성화하고 서버에 연결된 관리 ID로 작업할 수 있습니다. 예를 들어, Azure Storage에 접근할 수 있는 관리 ID가 있는 경우:
```bash
az sql server update \
--name <server-name> \
@@ -62,7 +62,7 @@ GO
```
### `Microsoft.Sql/servers/firewallRules/write`
공격자는 Azure SQL 서버의 방화벽 규칙을 조작하여 무단 액세스를 허용할 수 있습니다. 이를 통해 특정 IP 주소 전체 IP 범위, 공용 IP를 포함하여 서버를 열 수 있으며, 악의적인 행위자에게 접근을 가능하게 합니다. 이 사후 활용 활동은 기존 네트워크 보안 제어를 우회하고, 지속성을 확립하거나, 민감한 리소스를 노출시켜 환경 내에서 수평 이동을 촉진하는 데 사용될 수 있습니다.
공격자는 Azure SQL 서버의 방화벽 규칙을 조작하여 무단 액세스를 허용할 수 있습니다. 이를 통해 특정 IP 주소 또는 전체 IP 범위, 공용 IP를 포함하여 서버를 열 수 있으며, 악의적인 행위자에게 접근을 가능하게 합니다. 이 사후 활용 활동은 기존 네트워크 보안 제어를 우회하거나 지속성을 확립하거나 민감한 리소스를 노출시켜 환경 내에서 수평 이동을 촉진하는 데 사용될 수 있습니다.
```bash
# Create Firewall Rule
az sql server firewall-rule create \
@@ -85,7 +85,7 @@ az sql server firewall-rule update \
### `Microsoft.Sql/servers/ipv6FirewallRules/write`
이 권한을 사용하면 Azure SQL Server에서 IPv6 방화벽 규칙을 생성, 수정 또는 삭제할 수 있습니다. 이는 공격자나 권한이 있는 사용자가 기존 네트워크 보안 구성을 우회하고 서버에 무단으로 접근할 수 있게 할 수 있습니다. 모든 IPv6 주소에서 트래픽을 허용하는 규칙을 추가함으로써, 공격자는 서버를 외부 접근에 열 수 있습니다.
이 권한을 사용하면 Azure SQL Server에서 IPv6 방화벽 규칙을 생성, 수정 또는 삭제할 수 있습니다. 이는 공격자나 권한이 있는 사용자가 기존 네트워크 보안 구성을 우회하고 서버에 무단으로 접근할 수 있게 할 수 있습니다. 모든 IPv6 주소에서 트래픽을 허용하는 규칙을 추가함으로써, 공격자는 서버를 외부 접근에 열 수 있습니다.
```bash
az sql server firewall-rule create \
--server <server_name> \
@@ -4,7 +4,7 @@
## Service Bus
Azure Service Bus는 신뢰할 수 있는 **애플리케이션의 다양한 부분 또는 별도의 애플리케이션 간의 통신**을 가능하게 하기 위해 설계된 클라우드 기반 **메시징 서비스**입니다. 이는 안전한 중개자로 작용하여 메시지가 안전하게 전달되도록 보장하며, 발신자와 수신자가 동시에 작동하지 않더라도 메시지를 전달합니다. 시스템을 분리함으로써 애플리케이션이 독립적으로 작동하면서도 데이터나 지침을 교환할 수 있게 합니다. 이는 여러 작업자 간의 부하 분산, 신뢰할 수 있는 메시지 전달 또는 순서대로 작업을 처리하거나 안전하게 접근을 관리해야 하는 복잡한 조정이 필요한 시나리오에 특히 유용합니다.
Azure Service Bus는 신뢰할 수 있는 **애플리케이션의 다양한 부분 또는 별도의 애플리케이션 간의 통신**을 가능하게 하기 위해 설계된 클라우드 기반 **메시징 서비스**입니다. 이는 안전한 중개자로 작용하여 발신자와 수신자가 동시에 작동하지 않더라도 메시지가 안전하게 전달되도록 보장합니다. 시스템을 분리함으로써 애플리케이션이 독립적으로 작동하면서도 데이터나 지침을 교환할 수 있게 합니다. 이는 여러 작업자 간의 부하 분산, 신뢰할 수 있는 메시지 전달 또는 작업을 순서대로 처리하거나 안전하게 접근을 관리하는 것과 같은 복잡한 조정이 필요한 시나리오에 특히 유용합니다.
### Key Concepts
@@ -14,8 +14,8 @@ Azure Service Bus는 신뢰할 수 있는 **애플리케이션의 다양한 부
- 풀 모드(요청 시 검색)로 전달됩니다.
- 포인트 투 포인트 통신을 지원합니다.
3. **Topics:** 방송을 위한 게시-구독 메시징입니다.
- 여러 독립적인 구독자가 메시지의 복사본을 받습니다.
- 구독자는 전달을 제어하거나 메타데이터를 추가하기 위한 규칙/필터를 가질 수 있습니다.
- 여러 독립적인 구독 메시지의 복사본을 수신합니다.
- 구독 전달을 제어하거나 메타데이터를 추가하기 위한 규칙/필터를 가질 수 있습니다.
- 다대다 통신을 지원합니다.
The service bus endpoint/connection string is:
@@ -19,13 +19,13 @@ Azure SQL Server는 데이터 작업을 위해 Transact-SQL을 사용하는 관
#### Network
**Network Connectivity**: 공용 엔드포인트 또는 개인 엔드포인트를 통해 액세스를 활성화할지 선택합니다. 액세스를 선택하지 않으면 수동으로 구성될 때까지 엔드포인트가 생성되지 않습니다:
**Network Connectivity**: 공용 엔드포인트 또는 개인 엔드포인트를 통해 액세스를 활성화할지 선택합니다. No access를 선택하면 수동으로 구성될 때까지 엔드포인트가 생성되지 않습니다:
- No access: 엔드포인트가 구성되지 않아 수동으로 설정될 때까지 수신 연결이 차단됩니다.
- Public endpoint: 방화벽 규칙 및 기타 보안 구성에 따라 공용 인터넷을 통한 직접 연결을 허용합니다.
- Private endpoint: 개인 네트워크에 대한 연결을 제한합니다.
**Connection Policy**: 클라이언트가 SQL 데이터베이스 서버와 통신하는 방을 정의합니다:
- Default: Azure 내부의 모든 클라이언트 연결(개인 엔드포인트를 사용하는 경우 제외)에 대해 리디렉션 정책을 사용하고 Azure 외부의 연결에 대해 프록시 정책을 사용합니다.
**Connection Policy**: 클라이언트가 SQL 데이터베이스 서버와 통신하는 방을 정의합니다:
- Default: Azure 내부의 모든 클라이언트 연결(Private Endpoints를 사용하는 경우 제외)에 대해 Redirect 정책을 사용하고, Azure 외부의 연결에 대해 Proxy 정책을 사용합니다.
- Proxy: 모든 클라이언트 연결을 Azure SQL Database 게이트웨이를 통해 라우팅합니다.
- Redirect: 클라이언트가 데이터베이스를 호스팅하는 노드에 직접 연결합니다.
@@ -38,7 +38,7 @@ Azure SQL은 데이터베이스 액세스를 보호하기 위해 다양한 인
#### Security features
SQL 서버는 **Managed Identities**를 가지고 있습니다. 관리형 ID는 서버가 자격 증명을 저장하지 않고도 다른 Azure 서비스에 안전하게 인증할 수 있도록 합니다. 이는 시스템 할당 관리형 ID를 통해 다른 서비스에 접근할 수 있게 하며, 사용자 할당 관리형 ID를 통해 다른 ID로 접근할 수 있습니다. SQL이 접근할 수 있는 서비스에는 Azure Storage Account(V2), Azure Data Lake Storage Gen2, SQL Server, Oracle, Teradata, MongoDB 또는 MongoDB용 Cosmos DB API, Generic ODBC, Bulk Operations 및 S3 호환 객체 저장소가 포함됩니다.
SQL 서버는 **Managed Identities**를 가지고 있습니다. 관리형 ID는 서버가 자격 증명을 저장하지 않고도 다른 Azure 서비스에 안전하게 인증할 수 있도록 합니다. 이는 시스템 할당 관리형 ID를 통해 다른 서비스에 접근할 수 있며, 사용자 할당 관리형 ID를 통해 다른 ID로 접근할 수 있습니다. SQL이 접근할 수 있는 서비스에는 Azure Storage Account(V2), Azure Data Lake Storage Gen2, SQL Server, Oracle, Teradata, MongoDB 또는 MongoDB용 Cosmos DB API, Generic ODBC, Bulk Operations 및 S3 호환 객체 저장소가 포함됩니다.
SQL 서버가 가진 다른 보안 기능은 다음과 같습니다:
@@ -63,19 +63,19 @@ Azure SQL Database는 다양한 요구에 맞는 유연한 배포 옵션을 지
#### Key Features
- **Always Up-to-Date**: 최신 안정 버전의 SQL Server에서 실행되며 새로운 기능과 패치를 자동으로 받습니다.
- **Always Up-to-Date**: 최신 안정 버전의 SQL Server에서 실행되며, 새로운 기능과 패치를 자동으로 받습니다.
- **PaaS Capabilities**: 내장된 고가용성, 백업 및 업데이트.
- **Data Flexibility**: 관계형 및 비관계형 데이터(예: 그래프, JSON, 공간 및 XML)를 지원합니다.
#### Network
**Network Connectivity**: 공용 엔드포인트 또는 개인 엔드포인트를 통해 액세스를 활성화할지 선택합니다. 액세스를 선택하지 않으면 수동으로 구성될 때까지 엔드포인트가 생성되지 않습니다:
**Network Connectivity**: 공용 엔드포인트 또는 개인 엔드포인트를 통해 액세스를 활성화할지 선택합니다. No access를 선택하면 수동으로 구성될 때까지 엔드포인트가 생성되지 않습니다:
- No access: 엔드포인트가 구성되지 않아 수동으로 설정될 때까지 수신 연결이 차단됩니다.
- Public endpoint: 방화벽 규칙 및 기타 보안 구성에 따라 공용 인터넷을 통한 직접 연결을 허용합니다.
- Private endpoint: 개인 네트워크에 대한 연결을 제한합니다.
**Connection Policy**: 클라이언트가 SQL 데이터베이스 서버와 통신하는 방을 정의합니다:
- Default: Azure 내부의 모든 클라이언트 연결(개인 엔드포인트를 사용하는 경우 제외)에 대해 리디렉션 정책을 사용하고 Azure 외부의 연결에 대해 프록시 정책을 사용합니다.
**Connection Policy**: 클라이언트가 SQL 데이터베이스 서버와 통신하는 방을 정의합니다:
- Default: Azure 내부의 모든 클라이언트 연결(Private Endpoints를 사용하는 경우 제외)에 대해 Redirect 정책을 사용하고, Azure 외부의 연결에 대해 Proxy 정책을 사용합니다.
- Proxy: 모든 클라이언트 연결을 Azure SQL Database 게이트웨이를 통해 라우팅합니다.
- Redirect: 클라이언트가 데이터베이스를 호스팅하는 노드에 직접 연결합니다.
@@ -90,14 +90,14 @@ Azure SQL Database는 다양한 요구에 맞는 유연한 배포 옵션을 지
#### Purchasing Models / Service Tiers
- **vCore-based**: 컴퓨팅, 메모리 및 저장소를 독립적으로 선택합니다. 일반 목적, 비즈니스 크리티컬(OLTP 앱에 대한 높은 복원력 및 성능) 및 최대 128TB 저장소로 확장됩니다.
- **DTU-based**: 컴퓨팅, 메모리 및 I/O를 고정 계층으로 묶습니다. 일반 작업을 위한 균형 잡힌 리소스입니다.
- Standard: 일반 작업을 위한 균형 잡힌 리소스입니다.
- Premium: 요구가 많은 작업을 위한 높은 성능입니다.
- **DTU-based**: 컴퓨팅, 메모리 및 I/O를 고정 계층으로 묶습니다. 일반 작업에 대한 균형 잡힌 리소스입니다.
- Standard: 일반 작업에 대한 균형 잡힌 리소스입니다.
- Premium: 요구가 많은 작업에 대한 높은 성능입니다.
#### Scalable performance and pools
- **Single Databases**: 각 데이터베이스는 격리되어 있으며 전용 컴퓨팅, 메모리 및 저장소 리소스를 가집니다. 리소스는 다운타임 없이 동적으로(상향 또는 하향) 확장할 수 있습니다(1128 vCores, 32GB4TB 저장소, 최대 128TB).
- **Elastic Pools**: 여러 데이터베이스가 풀 내에서 리소스를 공유하여 효율성을 극대화하고 비용을 절감합니다. 리소스는 전체 풀에 대해 동적으로 확장할 수도 있습니다.
- **Elastic Pools**: 여러 데이터베이스 간에 리소스를 공유하여 효율성을 극대화하고 비용을 절감합니다. 리소스는 전체 풀에 대해 동적으로 확장할 수도 있습니다.
- **Service Tier Flexibility**: 일반 목적 계층에서 단일 데이터베이스로 소규모로 시작합니다. 필요에 따라 비즈니스 크리티컬 또는 하이퍼스케일 계층으로 업그레이드합니다.
- **Scaling Options**: 동적 확장 또는 자동 확장 대안.
@@ -281,7 +281,7 @@ $Connection.Close()
invoke-sql 'Select Distinct TABLE_NAME From information_schema.TABLES;'
```
데이터베이스에 접근하기 위해 sqlcmd를 사용할 수도 있습니다. 서버가 공용 연결을 허용하는지 아는 것이 중요합니다 `az sql server show --name <server-name> --resource-group <resource-group>` 그리고 방화벽 규칙이 우리의 IP 접근할 수 있도록 허용하는지도 확인해야 합니다:
데이터베이스에 접근하기 위해 sqlcmd를 사용할 수도 있습니다. 서버가 공용 연결을 허용하는지 아는 것이 중요합니다 `az sql server show --name <server-name> --resource-group <resource-group>` 그리고 방화벽 규칙이 우리의 IP 접근 허용하는지도 확인해야 합니다:
```bash
sqlcmd -S <sql-server>.database.windows.net -U <server-user> -P <server-passworkd> -d <database>
```
@@ -8,7 +8,7 @@ Google Cloud Compute Instances는 **구글의 클라우드 인프라에서 사
### Confidential VM
Confidential VM은 **메모리 암호화 및 안전한 암호화 가상화를 포함 최신 세대의 AMD EPYC 프로세서** 제공하는 **하드웨어 기반 보안 기능**을 사용합니다. 이러한 기능은 VM이 처리하고 저장된 데이터를 호스트 운영 체제 및 하이퍼바이저로부터 보호할 수 있게 합니다.
Confidential VM은 **메모리 암호화 및 안전한 암호화 가상화를 포함하는 최신 세대의 AMD EPYC 프로세서**에서 제공하는 **하드웨어 기반 보안 기능**을 사용합니다. 이러한 기능은 VM이 처리하고 저장된 데이터를 호스트 운영 체제 및 하이퍼바이저로부터 보호할 수 있게 합니다.
Confidential VM을 실행하려면 **기계의 유형**, 네트워크 **인터페이스**, **부팅 디스크 이미지**와 같은 것들을 **변경**해야 할 수 있습니다.
@@ -19,7 +19,7 @@ Confidential VM을 실행하려면 **기계의 유형**, 네트워크 **인터
- 디스크의 **크기** 선택
- **OS** 선택
- 인스턴스가 삭제될 때 **디스크를 삭제할지 여부** 표시
- **암호화**: 기본적으로 **Google 관리 키**가 사용되지만, **KMS에서 키를 선택**하거나 **사용할 원시 키**를 지정할 수 있습니다.
- **암호화**: 기본적으로 **Google 관리 키**가 사용되지만, **KMS에서 키를 선택**하거나 **사용할 원시 키**를 지정할 수 있습니다.
### Deploy Container