私は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プロジェクトのみにアクセスできるようになります。
これはAzureに固有です。診断接続文字列が生成されます。その質問に対する受け入れられた答えは、異なる言語の異なる環境を指します。他のものはあまりにも一般的であり、関心が持てません。 –
App Settingsでこれらのものを保存しないのはなぜですか? –
私はこの質問で混乱しています。なぜあなたはオープンソースプロジェクトなので、サブスクリプションにキーを公開する必要があると思いますか?これは意味がありません。 –