ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。

シークレットスキャンニングについて

GitHub はリポジトリをスキャンして既知のシークレットのタイプを探し、誤ってコミットされたシークレットの不正使用を防止します。

Secret scanningはパブリックリポジトリ及びAdvanced Securityライセンスを持つOrganizationが所有するプライベートリポジトリで利用できます。 詳しい情報については、「GitHub Advanced Security について」を参照してください。

ここには以下の内容があります:

プロジェクトを外部サービスと通信させる場合、認証にトークンまたは秘密鍵を使用できます。 トークンや秘密鍵は、サービスプロバイダが発行できるシークレットです。 リポジトリにシークレットをチェックインする場合、リポジトリへの読み取りアクセスを持つすべてのユーザがシークレットを使用して、自分の権限で外部サービスにアクセスできます。 シークレットは、プロジェクトのリポジトリの外の、安全な専用の場所に保存することをお勧めします。

Service providers can partner with GitHub to provide their secret formats for scanning. For more information, see "Secret scanning."

If someone checks a secret from a GitHub partner into a public or private repository on GitHub, secret scanning catches the secret as it's checked in, and helps you mitigate the impact of the leak. Repository administrators are notified about any commit that contains a secret, and they can quickly view all detected secrets in the Security tab for the repository.

パブリックリポジトリの secret scanning について

パブリックリポジトリでは、Secret scanningは自動的に有効になります。 パブリックリポジトリにプッシュすると、GitHub がコミットの内容をスキャンしてシークレットを探します。 プライベートリポジトリをパブリックに切り替えると、GitHub はリポジトリ全体をスキャンしてシークレットを探します。

secret scanning が認証情報一式を検出すると、弊社はそのシークレットを発行したサービスプロバイダに通知します。 サービスプロバイダは認証情報を検証し、シークレットを取り消すか、新しいシークレットを発行するか、または直接連絡する必要があるかを決定します。これは、ユーザまたはサービスプロバイダに関連するリスクに依存します。 トークン発行パートナーと弊社との連携の概要については、「シークレットスキャンを行う」を参照してください。

現在 GitHub は、パブリックリポジトリをスキャンして、次のサービスプロバイダが発行したシークレットを探します。

PartnerSupported secret
Adafruit IOAdafruit IO Key
Alibaba CloudAlibaba Cloud Access Key ID and Access Key Secret pair
Amazon Web Services (AWS)Amazon AWS Access Key ID and Secret Access Key pair
AtlassianAtlassian API Token
AtlassianAtlassian JSON Web Token
AzureAzure DevOps Personal Access Token
AzureAzure SAS Token
AzureAzure Service Management Certificate
AzureAzure SQL Connection String
AzureAzure Storage Account Key
ClojarsClojars Deploy Token
CloudBees CodeShipCloudBees CodeShip Credential
DatabricksDatabricks Access Token
DatadogDatadog API Key
DiscordDiscord Bot Token
DopplerDoppler Personal Token
DopplerDoppler Service Token
DopplerDoppler CLI Token
DopplerDoppler SCIM Token
DropboxDropbox Access Token
DropboxDropbox Short Lived Access Token
DynatraceDynatrace Access Token
DynatraceDynatrace Internal Token
FinicityFinicity App Key
Frame.ioFrame.io JSON Web Token
Frame.ioFrame.io Developer Token
GitHubGitHub SSH Private Key
GitHubGitHub Personal Access Token
GitHubGitHub App Installation Access Token
GoCardlessGoCardless Live Access Token
GoCardlessGoCardless Sandbox Access Token
Google CloudGoogle API Key
Google CloudGoogle Cloud Private Key ID
Hashicorp TerraformTerraform Cloud / Enterprise API Token
HubspotHubspot API Key
MailchimpMailchimp API Key
MailchimpMandrill API Key
MailgunMailgun API Key
MessageBirdMessageBird API Key
npmnpm Access Token
NuGetNuGet API Key
PalantirPalantir JSON Web Token
PlivoPlivo Auth Token
PostmanPostman API Key
ProctorioProctorio Consumer Key
ProctorioProctorio Linkage Key
ProctorioProctorio Registration Key
ProctorioProctorio Secret Key
PulumiPulumi Access Token
PyPIPyPI API Token
RubyGemsRubyGems API Key
SamsaraSamsara API Token
SamsaraSamsara OAuth Access Token
ShopifyShopify App Shared Secret
ShopifyShopify Access Token
ShopifyShopify Custom App Access Token
ShopifyShopify Private App Password
SlackSlack API Token
SlackSlack Incoming Webhook URL
SlackSlack Workflow Webhook URL
SSLMateSSLMate API Key
SSLMateSSLMate Cluster Secret
StripeStripe Live API Secret Key
StripeStripe Test API Secret Key
StripeStripe Live API Restricted Key
StripeStripe Test API Restricted Key
Tencent CloudTencent Cloud Secret ID
TwilioTwilio Account String Identifier
TwilioTwilio API Key

プライベートリポジトリの secret scanning について

リポジトリの管理者または Organization のオーナーは、Organization が所有するプライベートなリポジトリで secret scanning を有効化できます。 You can enable secret scanning for all your repositories, or for all new repositories within your organization. Secret scanning is not available for user-owned private repositories. For more information, see "Managing security and analysis settings for your repository" and "Managing security and analysis settings for your organization."

secret scanningが有効化されているプライベートリポジトリにコミットをプッシュすると、GitHub はコミットの内容をスキャンしてシークレットを探します。

secret scanning が プライベートリポジトリでシークレットを検出した場合、GitHub はアラートを生成します。

  • GitHub は、リポジトリ管理者と Organizationのオーナーにメールアラートを送信します。

  • GitHub sends an email alert to the contributor who committed the secret to the repository, with a link to the related secret scanning alert. The commit author can then view the alert in the repository, and resolve the alert.

  • GitHub displays an alert in the repository.

For more information about viewing and resolving secret scanning alerts, see "Managing alerts from secret scanning."

Repository administrators and organization owners can grant users and teams access to secret scanning alerts. 詳しい情報については「リポジトリのセキュリティ及び分析の設定の管理」を参照してください。

To monitor results from secret scanning across your private repositories or your organization, you can use the secret scanning API. For more information about API endpoints, see "Secret scanning."

GitHub currently scans private repositories for secrets issued by the following service providers.

PartnerSupported secretAPI slug
n/aJSON Web Tokenjson_web_token
n/aOAuth Client Credentialapi_credential_assignment
Adafruit IOAdafruit IO Keyadafruit_io_key
Alibaba CloudAlibaba Cloud Access Key IDalibaba_cloud_access_key_id
Alibaba CloudAlibaba Cloud Access Key Secretalibaba_cloud_access_key_secret
Amazon Web Services (AWS)Amazon AWS Access Key IDaws_access_key_id
Amazon Web Services (AWS)Amazon AWS Secret Access Keyaws_secret_access_key
AsanaAsana Personal Access Tokenasana_personal_access_token
AtlassianAtlassian API Tokenatlassian_api_token
AtlassianAtlassian JSON Web Tokenatlassian_jwt
AzureAzure DevOps Personal Access Tokenazure_devops_personal_access_token
AzureAzure SAS Tokenazure_sas_token
AzureAzure Service Management Certificateazure_management_certificate
AzureAzure SQL Connection Stringazure_sql_connection_string
AzureAzure Storage Account Keyazure_storage_account_key
ClojarsClojars Deploy Tokenclojars_deploy_token
CloudBees CodeShipCloudBees CodeShip Credentialcodeship_credential
DatabricksDatabricks Access Tokendatabricks_access_token
DiscordDiscord Bot Tokendiscord_bot_token
DopplerDoppler Personal Tokendoppler_personal_token
DopplerDoppler Service Tokendoppler_service_token
DopplerDoppler CLI Tokendoppler_cli_token
DopplerDoppler SCIM Tokendoppler_scim_token
DropboxDropbox Access Tokendropbox_access_token
DropboxDropbox Short Lived Access Tokendropbox_short_lived_access_token
DynatraceDynatrace Access Tokendynatrace_access_token
DynatraceDynatrace Internal Tokendynatrace_internal_token
FacebookFacebook Access Tokenfacebook_access_token
FinicityFinicity App Keyfinicity_app_key
Frame.ioFrame.io JSON Web Tokenframeio_jwt
Frame.ioFrame.io Developer Tokenframeio_developer_token
GitHubGitHub SSH Private Keygithub_ssh_private_key
GitHubGitHub Personal Access Tokengithub_personal_access_token
GitHubGitHub App Installation Access Tokengithub_app_installation_access_token
GoCardlessGoCardless Live Access Tokengocardless_live_access_token
GoCardlessGoCardless Sandbox Access Tokengocardless_sandbox_access_token
Google CloudGoogle API Keygoogle_api_key
Google CloudGoogle Cloud Private Key IDgoogle_cloud_private_key_id
GrafanaGrafana API Keygrafana_api_key
Hashicorp TerraformTerraform Cloud / Enterprise API Tokenterraform_api_token
HubspotHubspot API Keyhubspot_api_key
IntercomIntercom Access Tokenintercom_access_token
LobLob Live API Keylob_live_api_key
LobLob Test API Keylob_test_api_key
MailchimpMailchimp API Keymailchimp_api_key
MailgunMailgun API Keymailgun_api_key
npmnpm Access Tokennpm_access_token
NuGetNuGet API Keynuget_api_key
PalantirPalantir JSON Web Tokenpalantir_jwt
PostmanPostman API Keypostman_api_key
ProctorioProctorio Consumer Keyproctorio_consumer_key
ProctorioProctorio Linkage Keyproctorio_linkage_key
ProctorioProctorio Registration Keyproctorio_registration_key
ProctorioProctorio Secret Keyproctorio_secret_key
PulumiPulumi Access Tokenpulumi_access_token
PyPIPyPI API Tokenpypi_api_token
RubyGemsRubyGems API Keyrubygems_api_key
SamsaraSamsara API Tokensamsara_api_token
SamsaraSamsara OAuth Access Tokensamsara_oauth_access_token
SendGridSendGrid API Keysendgrid_api_key
ShopifyShopify App Shared Secretshopify_app_shared_secret
ShopifyShopify Access Tokenshopify_access_token
ShopifyShopify Custom App Access Tokenshopify_custom_app_access_token
ShopifyShopify Private App Passwordshopify_private_app_password
SlackSlack API Tokenslack_api_token
SlackSlack Incoming Webhook URLslack_incoming_webhook_url
SlackSlack Workflow Webhook URLslack_workflow_webhook_url
SSLMateSSLMate API Keysslmate_api_key
SSLMateSSLMate Cluster Secretsslmate_cluster_secret
StripeStripe API Keystripe_api_key
StripeStripe Live API Secret Keystripe_live_secret_key
StripeStripe Test API Secret Keystripe_test_secret_key
StripeStripe Live API Restricted Keystripe_live_restricted_key
StripeStripe Test API Restricted Keystripe_test_restricted_key
Tencent CloudTencent Cloud Secret IDtencent_cloud_secret_id
TwilioTwilio Account String Identifiertwilio_account_sid
TwilioTwilio API Keytwilio_api_key

注釈: Secret scanning では現在、シークレットを検出するための独自のパターンを定義することはできません。

参考リンク

Did this doc help you?

Privacy policy

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

OR, learn how to contribute.