0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Azure DevOpsにおけるGitHub Secretsを使った安全な認証

Posted at

Azure DevOpsにおけるGitHub Secretsを使った安全な認証

青葉若葉が目に染みる季節、クラウドエンジニアの皆さん。今日は、GitHub ActionsからAzureリソースをデプロイする際の、セキュアな認証方法について解説します。

セキュリティ統合の全体像

GitHub Secretsが必要な理由

  • Azure リソースへの安全なアクセス
  • 認証情報の漏洩防止
  • CI/CDワークフローの自動化

Azure サービスプリンシパルの作成手順

# Azure CLIでサービスプリンシパルを作成
az ad sp create-for-rbac \
  --name "GitHubAzureDeployer" \
  --role contributor \
  --scopes /subscriptions/{subscription-id} \
  --sdk-auth

サービスプリンシパル認証情報の構造

GitHub Actionsのデプロイメント設定例

name: Azure Infrastructure Deployment

on:
  push:
    branches:
      - main
    paths:
      - 'infra/**'

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    
    - name: Azure Login
      uses: azure/login@v1
      with:
        creds: ${{ secrets.AZURE_CREDENTIALS }}
    
    - name: Deploy Bicep
      uses: azure/arm-deploy@v1
      with:
        subscriptionId: ${{ fromJson(secrets.AZURE_CREDENTIALS).subscriptionId }}
        resourceGroupName: my-resource-group
        template: ./infra/main.bicep

セキュリティ管理のフロー

セキュリティのベストプラクティス

  1. 最小権限の原則の適用

    • 必要最小限の権限を設定
    • 特定のリソースグループへの限定
  2. 定期的な認証情報管理

    • 定期的な認証情報のローテーション
    • 不要な認証情報の削除
  3. 監査とモニタリング

    • アクセスログの確認
    • 異常な操作の監視

注意すべき落とし穴

  • シークレットは完全に安全ではない
  • CI/CDログでの情報漏洩に注意
  • 個人アクセストークンは特に慎重に

トラブルシューティングのポイント

  1. 認証エラー時のチェックリスト
    • 権限の正確性
    • サブスクリプションIDの確認
    • サービスプリンシパルの有効性

まとめ

Azure と GitHub Secrets の統合は、クラウドデプロイメントのセキュリティと効率を大幅に向上させます。継続的な注意と定期的な見直しが成功の鍵となります。

効率的で安全なデプロイメントをお楽しみください!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?