AWS CodeBuild での Identity and Access Management - AWS CodeBuild

AWS CodeBuild での Identity and Access Management

AWS CodeBuild へのアクセスには、認証情報が必要です。認証情報は、S3 バケットのビルドアーティファクトを保存、取得したり、ビルドのために Amazon CloudWatch Logs を表示したりするために、AWS リソースへのアクセス許可を必要とします。以下のセクションでは、AWS Identity and Access Management (IAM) と CodeBuild を使用してリソースに安全にアクセスする方法について説明します。

Authentication

AWS には、次のタイプのアイデンティティでアクセスできます。

  • AWS アカウントのルートユーザー – AWS にサインアップするときは、AWS アカウントに関連付けられた E メールアドレスとパスワードを指定します。これらはルート認証情報であり、これらの情報を使用すると、すべての AWS リソースへの完全なアクセスが可能になります。

    重要

    セキュリティ上の理由から、AWS アカウントへの完全なアクセス権限を持つ管理者ユーザー (IAM ユーザー) を作成するためにのみ、ルート認証情報を使用することをお勧めします。その後、この管理者ユーザーを使用して、制限されたアクセス権限を持つ他の IAM ユーザーとロールを作成できます。詳細については、「IAM のベストプラクティス」と「管理者のユーザーおよびグループの作成」 (IAM ユーザーガイド) を参照してください。

  • IAM ユーザーIAM ユーザーは、カスタム権限 (たとえば、CodeBuild でビルドプロジェクトを作成するアクセス許可) を持つ AWS アカウントの ID です。のユーザー名とパスワードを使用して、IAMAWS、AWS マネジメントコンソールAWS ディスカッションフォーラム などのセキュリティ保護された ウェブページにサインインできます。AWS Support Center

    ユーザー名とパスワードに加えて、各ユーザーのアクセスキーを生成することもできます。いずれかの AWS または AWS (SDKs) を使ってプログラムで サービスにアクセスするときに、これらのキーを使用します。AWS Command Line InterfaceAWS CLIAWS および SDKs ツールは、アクセスキーを使用してリクエストに暗号で署名します。AWS CLIAWS ツールを使用しない場合は、リクエストを自分で署名する必要があります。CodeBuild では、署名バージョン 4 がサポートされています。これは、インバウンド API リクエストを認証するためのプロトコルです。リクエストの認証の詳細については、https://docs.aws.amazon.com/general/latest/gr/signature-version-4.htmlの「AWS General Reference署名バージョン 4 の署名プロセス」を参照してください。

  • IAM ロールIAMロールは IAM ユーザーに似ていますが、特定のユーザーに関連付けられていません。IAM ロールでは、AWS のサービスおよびリソースにアクセスできる一時的なアクセスキーを取得することができます。IAM ロールと一時的な認証情報は、次の状況で役立ちます。

    • フェデレーティッドユーザーアクセス – IAM ユーザーを作成するのではなく、AWS Directory Service、エンタープライズユーザーディレクトリ、またはウェブアイデンティティプロバイダーの既存のユーザーアイデンティティを使用することもできます。このようなユーザーはフェデレーティッドユーザーと呼ばれます。AWS では、ID プロバイダーを通じてアクセスがリクエストされたとき、フェデレーティッドユーザーにロールを割り当てます。フェデレーティッドユーザーの詳細については、https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_access-management.html#intro-access-rolesの「IAM ユーザーガイドフェデレーティッドユーザーとロール」を参照してください。

    • クロスアカウントアクセス – アカウントで IAM ロールを使って、お客様のアカウントのリソースへアクセスするためのアクセス許可を別の AWS アカウントに付与できます。例については、「チュートリアル:」を参照してください。 の「AWS ロールを使用した IAM アカウント間のアクセスの委任IAM ユーザーガイド

    • AWS サービスのアクセス – アカウントで IAM ロールを使って、お客様のアカウントのリソースにアクセスするための AWS サービスのアクセス許可を付与できます。たとえば、Amazon Redshift がユーザーに代わって S3 バケットにアクセスし、バケットに保存されたデータを Amazon Redshift クラスターにロードすることを許可するためのロールを作成できます。詳細については、AWSの「IAM ユーザーガイド ユーザーにアクセス権限を委任するロールの作成」を参照してください。

    • Amazon EC2 で実行されるアプリケーション – インスタンスで実行し、AWS API リクエストを作成するアプリケーションで使用されるアクセスキーを Amazon EC2 インスタンス内に保存する代わりに、IAM ロールを使用して、これらのアプリケーション用の一時認証情報を管理できます。AWS ロールを Amazon EC2 インスタンスに割り当て、そのすべてのアプリケーションでの使用を許可するには、インスタンスにアタッチされたインスタンスプロファイルを作成します。インスタンスプロファイルにはロールが含まれ、Amazon EC2 インスタンスで実行されるプログラムは一時認証情報を取得することができます。詳細については、『Amazon EC2』の「IAM ユーザーガイド 上のアプリケーションに対するロールの使用」を参照してください。

アクセスコントロール

有効な認証情報があればリクエストを認証できますが、許可を持っていないかぎり AWS CodeBuild リソースの作成やアクセスはできません。たとえば、ビルドプロジェクトの作成、表示、削除、および、ビルドの開始、停止、表示には、アクセス許可が必要です。

以下のセクションでは、CodeBuild のアクセス許可を管理する方法について説明します。最初に概要のセクションを読むことをお勧めします。