2

私は初めてですAWS。私のクライアントはAWS、インスタンスをホストするために使用しEC2ます。現在、API アクセスを取得しようとしています。明らかに、これを行うには認証の詳細が必要です。

彼は自分のアカウントで IAM ID をセットアップしてくれたので、AWSWeb コンソールにログインして EC2 インスタンスを構成できます。しかし、API アクセス キーがどこに表示されているのか、一生わかりません。「マイ アカウント」を表示する権限がありません。表示される場所だと思います。

それで、私が尋ねているのは、どうすれば彼のアカウントから API アクセスを許可できるのでしょうか? IAM ID を使用して AWS API にアクセスするにはどうすればよいですか?

4

2 に答える 2

4

Michael - sqlbot の答えは正しい (+1) ですが、比較的最近ではあるが非常に有用な変数が AWS アクセス コントロール ポリシーに追加されたことを考えると、完全ではありません。

本日、AWS アクセス ポリシー言語を拡張して、変数のサポートを含めます。ポリシー変数を使用すると、個別のアクセス制御を含む一般的なポリシーを簡単に作成および管理できます。

これにより、「IAM Credentials Self Management」グループ ポリシーの実装が可能になります。これは通常、一般的な「ユーザー」などの最も基本的な IAM グループに割り当てられます。

  • 次のソリューションは、AWS アカウントの所有者 (または IAM 自体を管理する権限を持つ IAM ユーザー) が実装する必要がありますが、他のユーザーによる資格情報の自己管理を有効にするために一度だけ実行する必要があることに注意してください。

公式ソリューション

それぞれの例は、紹介ブログ投稿に含まれています(また、 IAMドキュメントでユーザーが自分のセキュリティ資格情報を管理できるようにすることもできます -更新: この例は、おそらく次を使用したカスタム ソリューションを介して適用できるため、再び消えました。 API のみであり、混乱を招きます):

また、変数置換により、ユーザーが自分の資格情報を管理できるようになります。多くのユーザーがいる場合、ユーザーが独自の資格情報を作成およびローテーションできる個別のポリシーを作成するのは現実的ではない場合があります。変数置換を使用すると、これをグループ ポリシーとして簡単に実装できます。次のポリシーは、すべての IAM ユーザーが自分の資格情報に対してキーおよび証明書関連のアクションを実行することを許可します。[鉱山を強調]

{
  "Version": "2012-10-17",
  "Statement": [{
      "Effect": "Allow",
      "Action":["iam:*AccessKey*","iam:*SigningCertificate*"],
      "Resource":["arn:aws:iam::123456789012:user/${aws:username}"]
    }
  ]
}

リソース スコープarn:aws:iam::123456789012:user/${aws:username}により、すべてのユーザーが自分の資格情報へのアクセスのみを効果的に許可されることが保証されます。

このソリューションには、ユーザーが AWS リソースにアクセスする方法 (API、CLI、AWS マネジメント コンソールなど) に応じて、使いやすさの問題が残ることに注意してください(後者には、追加のアクセス許可が必要です)。

また、さまざまな*文字がワイルドカードであるため、これiam:*AccessKey*を含むすべての IAM アクションに対応しますAccessKey(詳細については、「IAM ポリシー要素リファレンス」を参照してください)。

拡張バリエーション

免責事項:特に IAM アクセスに影響を与える IAM ポリシーの正しい構成は明らかに繊細であるため、次のソリューションのセキュリティへの影響についてはご自身で判断してください。

以下は、 AWS 多要素認証 (MFA)デバイスの自己管理と、AWS マネジメント コンソールを使いやすくするためのいくつかの使いやすさの強化を含む、より明示的でわずかに拡張されたバリエーションです。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "iam:CreateAccessKey",
        "iam:DeactivateMFADevice",
        "iam:DeleteAccessKey",
        "iam:DeleteSigningCertificate",
        "iam:EnableMFADevice",
        "iam:GetLoginProfile",
        "iam:GetUser",
        "iam:ListAccessKeys",
        "iam:ListGroupsForUser",
        "iam:ListMFADevices",
        "iam:ListSigningCertificates",
        "iam:ListUsers",
        "iam:ResyncMFADevice",
        "iam:UpdateAccessKey",
        "iam:UpdateLoginProfile",
        "iam:UpdateSigningCertificate",
        "iam:UploadSigningCertificate"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:iam::123456789012:user/${aws:username}"
      ]
    },
    {
      "Action": [
        "iam:CreateVirtualMFADevice",
        "iam:DeleteVirtualMFADevice",
        "iam:ListVirtualMFADevices"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:iam::123456789012:mfa/${aws:username}"
    }
  ]
}
于 2013-11-10T15:52:21.920 に答える
2

「あなた」はできませんが、

IAM の [ユーザー] でユーザーを選択した後、[セキュリティ資格情報] > [アクセス キーの管理] をクリックし、[アクセス キーの作成] を選択して、IAM ユーザーに関連付けられた API キーとそれに関連付けられたシークレットを作成する必要があります。次の画面に、次のメッセージがあります。

アクセス キーが正常に作成されました。

これらのユーザー セキュリティ資格情報をダウンロードできるのは、これが最後です。

これらの認証情報はいつでも管理および再作成できます。

ここで、「管理」は「非アクティブ化または削除」を意味し、「再作成」は「新しいものからやり直す」ことを意味します。その後、IAM 管理者はキーを確認できますが、関連するシークレットは確認できません。

その画面から、その画面からのみ、そのときだけ、IAM 管理者はキーとキーに関連付けられたシークレットの両方を表示したり、それらを CSV ファイルにダウンロードしたりできます。その後、適切な権限を持つユーザーは IAM 内のユーザーのキーを表示できますが、この 1 回のチャンスの後、シークレットを再度表示することはできません (可能であれば非常にばかげています)。

したがって、クライアントは、作成したユーザーの下で IAM にアクセスし、API キーとシークレットのペアを作成し、キーとシークレットを保存し、適切に保護されたチャネルを介してその情報を転送する必要があります...作成したが、関連付けられたシークレットを保存しなかった場合、キーを削除して、ユーザー名に関連付けられた新しいキーを作成する必要があります。

自分の AWS アカウントを持っていない場合は、アカウントにサインアップして、自分自身として完全なアクセス許可でコンソールに入り、フローを理解できるようにする必要があります... 私の説明よりも理にかなっているかもしれません.

于 2013-11-09T20:38:46.720 に答える