2016-05-29 8 views
0

私はGitHubでオープンソースプロジェクトとして公開したいC#とF#の組み合わせでWebロールを作成しました。Azure Web Role - オープンソースプロジェクトを保護する方法は?

は、ここに私のServiceConfiguration.Cloud.cscfgファイルです:

<?xml version="1.0" encoding="utf-8"?> 
<ServiceConfiguration serviceName="My.Cloud.Service" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="4" osVersion="*" schemaVersion="2015-04.2.6"> 
    <Role name="My.Web.Role"> 
    <Instances count="1" /> 
    <ConfigurationSettings> 
     <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=<<myaccountkey>>" /> 
     <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.Enabled" value="true" /> 
     <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountUsername" value="roblyndon" /> 
     <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountEncryptedPassword" value="<<my encrypted password>>" /> 
     <Setting name="Microsoft.WindowsAzure.Plugins.RemoteAccess.AccountExpiration" value="2017-05-17T23:59:59.0000000+01:00" /> 
     <Setting name="Microsoft.WindowsAzure.Plugins.RemoteForwarder.Enabled" value="true" /> 
     <Setting name="APPINSIGHTS_INSTRUMENTATIONKEY" value="205ceb49-275d-4c1c-a42c-fd7e55be0229" /> 
    </ConfigurationSettings> 
    <Certificates> 
     <Certificate name="Microsoft.WindowsAzure.Plugins.RemoteAccess.PasswordEncryption" thumbprint="35DE0821166BCB100B2BA7FF339436DA0CBC089F" thumbprintAlgorithm="sha1" /> 
    </Certificates> 
    </Role> 
</ServiceConfiguration> 

私は<<my encrypted password>>を隠さない誘惑た - それはSHA-1とはいえ、すべての後に、暗号化されます。

私のリモートアクセスパスワードは暗号化されていますが、自分のストレージアカウントを指す診断接続文字列は直接公開されています。実際には、ストレージアカウントへのプライマリアクセスキーの暗号化されていないバージョンが含まれています。

これをオープンソースプロジェクトに入れると、私はcscfgファイルを含めることにしますが、明らかに私のプライベートデータを露骨に公開している間にそれを行うことはできません。 .gitignoreに入れておくと、リポジトリを複製しようとする人のためにコンパイルの頭痛が発生します。

私のcscfgファイルを安全にする方法はありますか?

編集:これは、オープンソースプロジェクトの機密データを隠すことに関する一般的な質問ではありません。これを行うための戦略は、使用しているプロジェクトの種類によって異なります。 Webの役割については、これらの標準的なソリューションのいずれかを実装することは非常に難しく、そうしようとするとビルドを破る可能性があります。明白な答えは全体のccprojクラウドサービスプロジェクトになり、共同作業者には関連するWebプロジェクトのみにアクセスできるようになります。

+0

これはAzureに固有です。診断接続文字列が生成されます。その質問に対する受け入れられた答えは、異なる言語の異なる環境を指します。他のものはあまりにも一般的であり、関心が持てません。 –

+0

App Settingsでこれらのものを保存しないのはなぜですか? –

+0

私はこの質問で混乱しています。なぜあなたはオープンソースプロジェクトなので、サブスクリプションにキーを公開する必要があると思いますか?これは意味がありません。 –

答えて

0

答えはそれほど面倒ではありません。クラウドサービスを使用しないでください。

ウェブプロジェクトでは、.gitignoreファイルで明示的に無視される設定変換を使用できます。 Webロールとの間に明確な分離はありません。

Azureポータルでは、クラウドサービスに「(クラシック)」という告発が追加されています。これは、マイクロソフト製品チームが誓いを込めるほど近くにあります。開発者は、代わりにアプリサービスを構築することを強く推奨しています。これらは、機密データを隠しながらソースコードを公開しておくための、より豊富なツールを提供します。私は今アップグレードしており、長期的には多くのトラブルを救えると思う。

関連する問題