Product Advertising API(PA-API)에 전용 IAM으로 액세스

6054 단어 루비아마존AWS
옛날 아직 AWS가 되어 얼마 지나지 않았던 시대(겨우 S3가 있었던 정도)에 PA-API를 사용한 앱을 만들고 있었습니다만, 최근 또 PA-API를 사용할까라고 생각해 조사한 결과, 아직 PA-API를 사용하는 앱에서는 인증에 아마존의 루트 계정 액세스 키와 비밀을 사용할 수 있다는 기사가 나왔습니다.

PA-API 이외에 사용하는 것이 별로 없었던 시대라면 막상, AWS가 이렇게 사용되고 있는 현상에서도 아직도 PA-API에 그것용의 권한이라든지 존재하지 않는 것인가… ? 라고 생각해 자주(잘) 조사해 보면, 최근 그것용의 IAM 폴리시가 생긴 것(언제 할 수 있었는지는 불명)이므로, 그것을 설정해 사용하기로 했습니다.

이것이 없었다면, 과연 AWS를 바리바리 사용하고 있는 계정의 루트 계정을 PA-API의 앱에 사용하고 싶지 않았기 때문에, 전용의 AWS 계정을 만드는 곳이었습니다.

이게 뭐야?



PA-API용 정책을 작성해, PA-API용의 IAM 유저에 연결하는 순서, 및 그 유저의 액세스 키 및 비공개키를 사용해 PA-API로부터 값을 취득할 수 있는지 확인.

정책 만들기



먼저 AWS 웹 콘솔에서 PA-API 전용 정책을 만듭니다.



고유한 정책 만들기를 선택합니다.



PA-API에 대한 FullAccess 권한을 설정한 정책으로 설정합니다. 정책명은 적당한 것을.
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ProductAdvertisingAPI:*",
            "Resource": "*"
        }
    ]
}



만약을 위해 정책의 검증을 해 두고, 문제 없으면 정책의 작성입니다.

PA-API 액세스용 사용자 만들기



다음으로 위에서 만든 정책을 연결하는 사용자를 만듭니다.



적당한 이름을 붙여 「프로그램에 의한 액세스」에 체크를 넣습니다.



'기존 정책에 직접 연결'을 선택하고 방금 만든 PA-API에 대한 정책을 선택합니다.



다음 화면에서 확인하고 문제가 없으면 다음 화면에서 credentials.csv를 다운로드하십시오.

실제로 액세스 가능한 확인



취득한 액세스키와 비밀키가 실제로 PA-API에의 액세스에 사용할 수 있는지 염려를 위해 체크해 둡시다.

ruby라면 amazon-ecs 이라는 gem이 PA-API에 액세스하는데 자주 사용되는 것 같습니다.
associate_tag , AWS_access_key_id , AWS_secret_key 는 자신의 것으로 대체하십시오.
require 'amazon/ecs'

Amazon::Ecs.options = {
  associate_tag: 'xxxxxxxxxxxxxx',
  AWS_access_key_id: 'xxxxxxxxxxxxxxxxxx',
  AWS_secret_key: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
  country: :jp
}

# Nintendo SwitchのASINを指定してみます
res = Amazon::Ecs.item_lookup('B01NCXFWIZ', response_group: 'Small')

p res.items.map {|item| item.get('ItemAttributes/Title') }
# => ["Nintendo Switch Joy-Con (L) ネオンブルー/ (R) ネオンレッド"]

OK, 제대로 잡히는 것 같습니다.

참고


  • Becoming a Product Advertising API Developer - Product Advertising API
  • Amazon Product Advertising API가 IAM 사용자를 지원했습니다 - 프로그래머가되고 싶습니다.
  • jugend/amazon-ecs: Ruby Amazon Product Advertising API
  • 좋은 웹페이지 즐겨찾기