Azure で仮想マシンをセキュリティで保護し、ポリシーを使用するSecure and use policies on virtual machines in Azure

実行するアプリケーションの仮想マシン (VM) は、常に安全な状態に保つ必要があります。It's important to keep your virtual machine (VM) secure for the applications that you run. VM の安全を確保する手段としては、Azure のサービスや機能を通じて、VM へのアクセスやデータのストレージにセキュリティを確保する方法が挙げられます。Securing your VMs can include one or more Azure services and features that cover secure access to your VMs and secure storage of your data. この記事では、VM とアプリケーションのセキュリティを維持するうえで役に立つ情報を提供します。This article provides information that enables you to keep your VM and applications secure.

マルウェア対策Antimalware

最近のクラウド環境に対する脅威は変化が激しく、コンプライアンスとセキュリティの要件を満たすために効果的な保護を維持しなければならないという圧力はますます大きくなっています。The modern threat landscape for cloud environments is dynamic, increasing the pressure to maintain effective protection in order to meet compliance and security requirements. Azure に対する Microsoft マルウェア対策は、ウイルス、スパイウェアなどの悪意のあるソフトウェアの特定や駆除に役立つリアルタイムの保護機能です。Microsoft Antimalware for Azure is a free real-time protection capability that helps identify and remove viruses, spyware, and other malicious software. 悪意のあることまたは望ましくないことが確認されているソフトウェアが VM 上で実行されようとしていたり、自らインストールを試みたりした場合に、その事実を把握できるようにアラートを構成することができます。Alerts can be configured to notify you when known malicious or unwanted software attempts to install itself or run on your VM. Linux または Windows Server 2008 を実行している VM ではサポートされていません。It is not supported on VMs running Linux or Windows Server 2008.

Azure Security CenterAzure Security Center

Azure Security Center は、VM に対する脅威の防御、検出、対応を可能にする機能です。Azure Security Center helps you prevent, detect, and respond to threats to your VMs. Security Center は、Azure サブスクリプション全体に統合セキュリティの監視とポリシーの管理を提供し、気付かない可能性がある脅威を検出し、セキュリティ ソリューションの広範なエコシステムと連動します。Security Center provides integrated security monitoring and policy management across your Azure subscriptions, helps detect threats that might otherwise go unnoticed, and works with a broad ecosystem of security solutions.

Security Center の Just-In-Time アクセスは、VM のデプロイ全体に適用できます。これによって Azure VM へのインバウンド トラフィックをロックダウンし、VM への接続が必要な場合は簡単にアクセスできるようにしつつ、攻撃に対する露出を減らすことができます。Security Center's just-in-time access can be applied across your VM deployment to lock down inbound traffic to your Azure VMs, reducing exposure to attacks while providing easy access to connect to VMs when needed. Just-In-Time が有効で、ユーザー要求が VM にアクセスする場合、ユーザーが VM に対してどのアクセス許可を持っているかが Security Center によって確認されます。When just-in-time is enabled and a user requests access to a VM, Security Center checks what permissions the user has for the VM. ユーザーが適切なアクセス許可を持っている場合は要求が承認され、Security Center では、選択したポートへのインバウンド トラフィックを制限時間内だけで許可するように、ネットワーク セキュリティ グループ (NSG) が自動的に構成されます。If they have the correct permissions, the request is approved and Security Center automatically configures the Network Security Groups (NSGs) to allow inbound traffic to the selected ports for a limited amount of time. 指定された時間が経過すると、Security Center により NSG が以前の状態に復元されます。After the time has expired, Security Center restores the NSGs to their previous states.

暗号化Encryption

マネージド ディスクには、2つの暗号化方式が用意されています。Two encryption methods are offered for managed disks. ひとつは、Azure Disk Encryption と呼ばれる OS レベルでの暗号化、そしてもうひとつは、サーバー側で暗号化を行うプラットフォーム レベルでの暗号化です。Encryption at the OS-level, which is Azure Disk Encryption, and encryption at the platform-level, which is server-side encryption.

サーバー側暗号化Server-side encryption

Azure マネージド ディスクは、データをクラウドに永続化するときに、既定で自動的にデータを暗号化します。Azure managed disks automatically encrypt your data by default when persisting it to the cloud. サーバー側の暗号化によってデータが保護され、組織のセキュリティおよびコンプライアンス コミットメントを満たすのに役立ちます。Server-side encryption protects your data and helps you meet your organizational security and compliance commitments. Azure マネージド ディスク内のデータは、利用できる最も強力なブロック暗号の 1 つである 256 ビット AES 暗号化を使って透過的に暗号化され、FIPS 140-2 に準拠しています。Data in Azure managed disks is encrypted transparently using 256-bit AES encryption, one of the strongest block ciphers available, and is FIPS 140-2 compliant.

暗号化はマネージド ディスクのパフォーマンスに影響しません。Encryption does not impact the performance of managed disks. 暗号化に追加コストはかかりません。There is no additional cost for the encryption.

プラットフォーム マネージド キーを利用してお使いのマネージド ディスクを暗号化することも、お使いの独自のキーを使用して暗号化を管理することもできます。You can rely on platform-managed keys for the encryption of your managed disk, or you can manage encryption using your own keys. 独自のキーを使用して暗号化を管理する場合は、マネージド ディスク内のすべてのデータの暗号化と暗号化解除に使用するカスタマー マネージド キーを指定できます。If you choose to manage encryption with your own keys, you can specify a customer-managed key to use for encrypting and decrypting all data in managed disks.

サーバー側の暗号化の詳細については、Windows または Linux の記事を参照してください。To learn more about server-side encryption, refer to either the articles for Windows or Linux.

Azure Disk EncryptionAzure Disk Encryption

仮想マシン (Windows VM および Linux VM) のセキュリティとコンプライアンスを強化するために、Azure の仮想ディスクを暗号化できます。For enhanced Windows VM and Linux VM security and compliance, virtual disks in Azure can be encrypted. Windows VM の仮想ディスクは、BitLocker を使って保存時に暗号化されます。Virtual disks on Windows VMs are encrypted at rest using BitLocker. Linux VM の仮想ディスクは、dm-crypt を使って暗号化します。Virtual disks on Linux VMs are encrypted at rest using dm-crypt.

Azure の仮想ディスクを暗号化するための料金はかかりません。There is no charge for encrypting virtual disks in Azure. 暗号化キーは、ソフトウェア保護を使って Azure Key Vault に格納されます。または、FIPS 140-2 レベル 2 標準に認定された Hardware Security Module (HSM) でキーをインポートまたは生成することもできます。Cryptographic keys are stored in Azure Key Vault using software-protection, or you can import or generate your keys in Hardware Security Modules (HSMs) certified to FIPS 140-2 level 2 standards. これらの暗号化キーは、VM に接続された仮想ディスクの暗号化/暗号化解除に使われます。These cryptographic keys are used to encrypt and decrypt virtual disks attached to your VM. これらの暗号化キーの制御を維持し、その使用を監査することができます。You retain control of these cryptographic keys and can audit their use. Azure Active Directory サービス プリンシパルは、VM の電源がオンまたはオフになったときにこれらの暗号化キーを発行するためのセキュリティで保護されたメカニズムを提供します。An Azure Active Directory service principal provides a secure mechanism for issuing these cryptographic keys as VMs are powered on and off.

Key Vault と SSH キーKey Vault and SSH Keys

シークレットと証明書は、リソースとしてモデル化して Key Vault で提供することができます。Secrets and certificates can be modeled as resources and provided by Key Vault. Windows VM のキー コンテナーは Azure PowerShell で、Linux VM のキー コンテナーは Azure CLI で作成できます。You can use Azure PowerShell to create key vaults for Windows VMs and the Azure CLI for Linux VMs. 暗号化用のキーを作成することもできます。You can also create keys for encryption.

キー コンテナー アクセス ポリシーでは、キー、シークレット、証明書へのアクセス許可を個別に付与します。Key vault access policies grant permissions to keys, secrets, and certificates separately. たとえば、ユーザーにキーのみのアクセス権を付与し、シークレットのアクセス権は付与しないようにすることができます。For example, you can give a user access to only keys, but no permissions for secrets. ただし、キー、シークレット、または証明書へのアクセス権は、コンテナー レベルで付与されます。However, permissions to access keys or secrets or certificates are at the vault level. つまり、キー コンテナー アクセス ポリシーでは、オブジェクト レベルのアクセス許可がサポートされません。In other words, key vault access policy does not support object level permissions.

VM に接続するときは、公開キー暗号化を使用して、より安全な方法で VM にサインインできるようにする必要があります。When you connect to VMs, you should use public-key cryptography to provide a more secure way to sign in to them. このプロセスでは、ユーザー名とパスワードを使用する代わりに、SSH (Secure Shell) コマンドを使用して公開キーと秘密キーを交換して、自分を認証します。This process involves a public and private key exchange using the secure shell (SSH) command to authenticate yourself rather than a username and password. パスワードは、ブルートフォース攻撃に対して脆弱です。これは、特に Web サーバーなどのインターネットに接続された仮想マシンに当てはまります。Passwords are vulnerable to brute-force attacks, especially on Internet-facing VMs such as web servers. Secure Shell (SSH) キー ペアを使用すると、認証に SSH キーを使う Linux VM を作成でき、サインインするためのパスワードが不要になります。With a secure shell (SSH) key pair, you can create a Linux VM that uses SSH keys for authentication, eliminating the need for passwords to sign-in. Windows VM から SSH キーを使って Linux VM に接続することもできます。You can also use SSH keys to connect from a Windows VM to a Linux VM.

Azure リソースのマネージド IDManaged identities for Azure resources

クラウド アプリケーションの構築時における一般的な課題は、クラウド サービスへの認証用のコードで資格情報をどのように管理するかです。A common challenge when building cloud applications is how to manage the credentials in your code for authenticating to cloud services. 資格情報を安全に保つことは重要な課題です。Keeping the credentials secure is an important task. 資格情報は開発者のワークステーションに表示されないこと、またソース管理にチェックインされないことが理想です。Ideally, the credentials never appear on developer workstations and aren't checked into source control. 資格情報やシークレットなど、各種キーを安全に保管する手段としては Azure Key Vault がありますが、それらを取得するためには、コードから Key Vault に対して認証を行わなければなりません。Azure Key Vault provides a way to securely store credentials, secrets, and other keys, but your code has to authenticate to Key Vault to retrieve them.

この問題を解決するのが、Azure Active Directory (Azure AD) の Azure リソースのマネージド ID 機能です。The managed identities for Azure resources feature in Azure Active Directory (Azure AD) solves this problem. Azure AD で自動的に管理される ID を Azure サービスに提供する機能となります。The feature provides Azure services with an automatically managed identity in Azure AD. この ID を使用すれば、コードに資格情報を追加しなくても、Azure AD の認証をサポートするさまざまなサービス (Key Vault を含む) に対して認証を行うことができます。You can use the identity to authenticate to any service that supports Azure AD authentication, including Key Vault, without any credentials in your code. VM 上で実行されているコードは、VM 内からのみアクセス可能な次の 2 つのエンドポイントにトークンを要求できます。Your code that's running on a VM can request a token from two endpoints that are accessible only from within the VM. このサービスの詳細については、Azure リソースのマネージド ID の概要ページを確認してください。For more detailed information about this service, review the managed identities for Azure resources overview page.

ポリシーPolicies

社内の Windows VMLinux VM には、Azure ポリシーを使って必要な動作を定義することができます。Azure policies can be used to define the desired behavior for your organization's Windows VMs and Linux VMs. ポリシーを使用すると、さまざまな習慣や規則を企業全体に適用できます。By using policies, an organization can enforce various conventions and rules throughout the enterprise. 望ましい行動を強制することによって、組織の成功に貢献しつつ、リスクを軽減することができます。Enforcement of the desired behavior can help mitigate risk while contributing to the success of the organization.

ロールベースのアクセス制御Role-based access control

Azure ロールベースのアクセス制御 (Azure RBAC) を使用すると、チーム内の職務を分離し、VM 上のユーザーに自分の職務を実行するために必要な量のアクセスのみを付与できます。Using Azure role-based access control (Azure RBAC), you can segregate duties within your team and grant only the amount of access to users on your VM that they need to perform their jobs. すべてのユーザーに VM への無制限のアクセス許可を付与するのではなく、特定の操作のみを許可することができます。Instead of giving everybody unrestricted permissions on the VM, you can allow only certain actions. VM のアクセス制御は、Azure Portal で構成できるほか、Azure CLI または Azure PowerShell を使って構成することもできます。You can configure access control for the VM in the Azure portal, using the Azure CLI, orAzure PowerShell.

次のステップNext steps

  • Azure Security Center を使って Linux または Windows の仮想マシンのセキュリティを監視する手順を参照します。Walk through the steps to monitor virtual machine security by using Azure Security Center for Linux or Windows.