2

STS を使用して作成された連合ユーザーの正規ユーザー ID は存在しますか? boto を使用する場合、バケットにアクセス許可を付与するには正規のユーザー ID が必要です。

これが私のコードの簡単なツアーです:

  1. boto の STS モジュール (「マスター」アカウントを使用) を使用して一時的な資格情報を正常に作成しました。

    • federated_user_arn
    • federated_user_id
    • pack_policy_size
    • アクセスキー
    • secret_key
    • session_token
    • 有効期限
  2. 次に、boto を使用してバケットを作成します。

    バケット = self.s3_connection.create_bucket('%s_store' % (app_id))

  3. アクセス許可を付与したいのですが、boto には次の 2 つの選択肢があります。

    add_email_grant(パーミッション, email_address, recursive=False, headers=None)

    add_user_grant(permission, user_id, recursive=False, headers=None, display_name=None)

フェデレーション ユーザーに電子メールが添付されていないため、最初の方法はオプションではありません。そのため、2 番目の方法を検討します。ここで、2 番目のパラメーター ("userid") は、"アクセス許可を付与する AWS アカウントに関連付けられた正規ユーザー ID" になります。しかし、連合ユーザーのためにこれを実現する方法を見つけることができないようです。

フェデレーテッド・ユーザー用の正規ユーザー ID は存在しますか? フェデレーション ユーザーにアクセス許可を付与する簡単な方法を見落としていませんか?

4

1 に答える 1

1

boto の作成者に連絡して、次のことを知りました。

S3Connection クラスの get_canonical_user_id()。

これにより、接続に関連付けられた資格情報の正規ユーザー ID が得られます。接続は何らかの操作に使用されている必要があります (例: バケットの一覧表示)。

非常に厄介ですが、可能です。

于 2011-11-10T03:54:58.127 に答える